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
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
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
>
>
>
> .
>