From: David Lamparter <equinox@diac24.net>
To: Amine Kherbouche <amine.kherbouche@6wind.com>
Cc: David Lamparter <equinox@diac24.net>,
netdev@vger.kernel.org, roopa@cumulusnetworks.com
Subject: Re: [PATCH 4/6] mpls: VPLS support
Date: Mon, 21 Aug 2017 18:18:27 +0200 [thread overview]
Message-ID: <20170821161827.GX773745@eidolon> (raw)
In-Reply-To: <4cf89536-2d14-e2aa-cad9-bd13976d6fb3@6wind.com>
On Mon, Aug 21, 2017 at 05:14:46PM +0200, Amine Kherbouche wrote:
> > +#include <net/ip_tunnels.h>
>
> some headers are not needed.
Which ones? net/ip_tunnels.h is needed for ip_tunnel_get_stats64().
> > +static netdev_tx_t vpls_xmit(struct sk_buff *skb, struct net_device *dev)
> > +{
> > + int err = -EINVAL, ok_count = 0;
> > + struct vpls_priv *priv = netdev_priv(dev);
> > + struct vpls_info *vi;
> > + struct pcpu_sw_netstats *stats;
> > + size_t len = skb->len;
> > +
> > + rcu_read_lock();
> > + vi = skb_vpls_info(skb);
> > +
> > + skb_orphan(skb);
> > + skb_forward_csum(skb);
> > +
> > + if (vi) {
> > + err = vpls_xmit_wire(skb, dev, priv, vi->pw_label);
> > + if (err)
> > + goto out_err;
> > + } else {
>
> the rcu_read_lock() is just needed for the else statement right ?
Yeah, it's leftover from an earlier version where it was used for what
is now skb_vpls_info(). Fixed in next version.
> > +int vpls_rcv(struct sk_buff *skb, struct net_device *in_dev,
> > + struct packet_type *pt, struct mpls_route *rt,
> > + struct mpls_shim_hdr *hdr, struct net_device *orig_dev)
> > +{
> > + struct net_device *dev = rt->rt_vpls_dev;
> > + struct mpls_entry_decoded dec;
[...]
> > + dec = mpls_entry_decode(hdr);
>
> we can get dec.bos from mpls stack as a function param, no need to
> decode the mpls header again.
I didn't do that for 2 reasons:
- mpls_entry_decode is a very small inlined function
- for future OAM GAL label support, it will need to decode a 2nd label
> > +static const struct net_device_ops vpls_netdev_ops = {
> > + .ndo_init = vpls_dev_init,
> > + .ndo_open = vpls_open,
> > + .ndo_stop = vpls_close,
> > + .ndo_start_xmit = vpls_xmit,
> > + .ndo_change_mtu = vpls_change_mtu,
> > + .ndo_get_stats64 = ip_tunnel_get_stats64,
> > + .ndo_set_rx_mode = vpls_set_multicast_list,
> > + .ndo_set_mac_address = eth_mac_addr,
> > + .ndo_features_check = passthru_features_check,
> > +};
>
> can you add .ndo_get_stats64 function ?
It uses the same stats as ip tunnels:
+ .ndo_get_stats64 = ip_tunnel_get_stats64,
I don't think copypasting improves code quality here(???)
Cheers,
-David
next prev parent reply other threads:[~2017-08-21 16:18 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-16 17:01 [RFC net-next] VPLS support David Lamparter
2017-08-16 17:01 ` [PATCH 1/6] bridge: learn dst metadata in FDB David Lamparter
2017-08-16 20:38 ` [Bridge] " Nikolay Aleksandrov
2017-08-16 20:38 ` Nikolay Aleksandrov
2017-08-17 11:03 ` [Bridge] " David Lamparter
2017-08-17 11:03 ` David Lamparter
2017-08-17 11:39 ` [Bridge] " Nikolay Aleksandrov
2017-08-17 11:39 ` Nikolay Aleksandrov
2017-08-17 11:51 ` [Bridge] " Nikolay Aleksandrov
2017-08-17 11:51 ` Nikolay Aleksandrov
2017-08-17 12:10 ` [Bridge] " David Lamparter
2017-08-17 12:10 ` David Lamparter
2017-08-17 12:19 ` [Bridge] " Nikolay Aleksandrov
2017-08-17 12:19 ` Nikolay Aleksandrov
2017-08-17 12:20 ` [Bridge] " David Lamparter
2017-08-17 12:20 ` David Lamparter
2017-08-17 12:45 ` [Bridge] " David Lamparter
2017-08-17 12:45 ` David Lamparter
2017-08-17 13:04 ` [Bridge] " Nikolay Aleksandrov
2017-08-17 13:04 ` Nikolay Aleksandrov
2017-08-17 16:16 ` [Bridge] " David Lamparter
2017-08-17 16:16 ` David Lamparter
2017-08-16 17:01 ` [PATCH 2/6] mpls: split forwarding path on rx/tx boundary David Lamparter
2017-08-19 17:10 ` kbuild test robot
2017-08-19 17:42 ` kbuild test robot
2017-08-16 17:01 ` [PATCH 3/6] mpls: add VPLS entry points David Lamparter
2017-08-19 18:27 ` kbuild test robot
2017-08-21 14:01 ` Amine Kherbouche
2017-08-21 15:55 ` David Lamparter
2017-08-21 16:13 ` Amine Kherbouche
2017-08-16 17:02 ` [PATCH 4/6] mpls: VPLS support David Lamparter
2017-08-21 15:14 ` Amine Kherbouche
2017-08-21 16:18 ` David Lamparter [this message]
2017-08-21 16:11 ` Amine Kherbouche
2017-08-16 17:02 ` [PATCH 5/6] bridge: add VPLS pseudowire info in fdb dump David Lamparter
2017-08-16 17:02 ` [PATCH 6/6] mpls: pseudowire control word support David Lamparter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170821161827.GX773745@eidolon \
--to=equinox@diac24.net \
--cc=amine.kherbouche@6wind.com \
--cc=netdev@vger.kernel.org \
--cc=roopa@cumulusnetworks.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.