2014-01-03 03:13:03

by Libo Chen

[permalink] [raw]
Subject: [RFC PATCH net-next 3/4] veth: backup classid befor switch net_ns


dev_forward_skb will clear skb->sk, so we need save classid
before that, otherwise the skb can not be under control by
net_cls.

Signed-off-by: Libo Chen <[email protected]>
---
drivers/net/veth.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index 2ec2041..ce43a2d 100644
--- a/drivers/net/veth.c
+++ b/drivers/net/veth.c
@@ -18,6 +18,7 @@
#include <net/xfrm.h>
#include <linux/veth.h>
#include <linux/module.h>
+#include <net/cls_cgroup.h>

#define DRV_NAME "veth"
#define DRV_VERSION "1.0"
@@ -123,6 +124,12 @@ static netdev_tx_t veth_xmit(struct sk_buff *skb, struct net_device *dev)
rcv->features & NETIF_F_RXCSUM)
skb->ip_summed = CHECKSUM_UNNECESSARY;

+ /**
+ * dev_forward_sbk will clear skb->sk, so save
+ * skb->sk->sk_classid for Qos
+ */
+ bk_cls_classid(skb);
+
if (likely(dev_forward_skb(rcv, skb) == NET_RX_SUCCESS)) {
struct pcpu_vstats *stats = this_cpu_ptr(dev->vstats);

--
1.8.2.2


2014-01-03 10:45:20

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: [RFC PATCH net-next 3/4] veth: backup classid befor switch net_ns

Hello.

On 03-01-2014 7:11, Libo Chen wrote:

> dev_forward_skb will clear skb->sk, so we need save classid
> before that, otherwise the skb can not be under control by
> net_cls.

> Signed-off-by: Libo Chen <[email protected]>
> ---
> drivers/net/veth.c | 7 +++++++
> 1 file changed, 7 insertions(+)

> diff --git a/drivers/net/veth.c b/drivers/net/veth.c
> index 2ec2041..ce43a2d 100644
> --- a/drivers/net/veth.c
> +++ b/drivers/net/veth.c
[...]
> @@ -123,6 +124,12 @@ static netdev_tx_t veth_xmit(struct sk_buff *skb, struct net_device *dev)
> rcv->features & NETIF_F_RXCSUM)
> skb->ip_summed = CHECKSUM_UNNECESSARY;
>
> + /**

Why you're using kernel-doc style comments out of place? The format of
multi-line comments in the networking code is this:

/* bla
* bla
*/

> + * dev_forward_sbk will clear skb->sk, so save
> + * skb->sk->sk_classid for Qos
> + */
> + bk_cls_classid(skb);
> +

WBR, Sergei

2014-01-06 02:18:24

by Libo Chen

[permalink] [raw]
Subject: Re: [RFC PATCH net-next 3/4] veth: backup classid befor switch net_ns

On 2014/1/3 18:45, Sergei Shtylyov wrote:
> Hello.
>
> On 03-01-2014 7:11, Libo Chen wrote:
>
>> dev_forward_skb will clear skb->sk, so we need save classid
>> before that, otherwise the skb can not be under control by
>> net_cls.
>
>> Signed-off-by: Libo Chen <[email protected]>
>> ---
>> drivers/net/veth.c | 7 +++++++
>> 1 file changed, 7 insertions(+)
>
>> diff --git a/drivers/net/veth.c b/drivers/net/veth.c
>> index 2ec2041..ce43a2d 100644
>> --- a/drivers/net/veth.c
>> +++ b/drivers/net/veth.c
> [...]
>> @@ -123,6 +124,12 @@ static netdev_tx_t veth_xmit(struct sk_buff *skb, struct net_device *dev)
>> rcv->features & NETIF_F_RXCSUM)
>> skb->ip_summed = CHECKSUM_UNNECESSARY;
>>
>> + /**
>
> Why you're using kernel-doc style comments out of place? The format of multi-line comments in the networking code is this:
>
> /* bla
> * bla
> */

thank you

Libo

>
>> + * dev_forward_sbk will clear skb->sk, so save
>> + * skb->sk->sk_classid for Qos
>> + */
>> + bk_cls_classid(skb);
>> +
>
> WBR, Sergei
>
>
>
> .
>