diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2011-10-06 10:28:31 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-10-18 23:22:07 -0400 |
commit | bc416d9768aa9a2e46eb11354a9c58399dafeb01 (patch) | |
tree | a3ecf948353d11d199dfb64b0c4302c5b4aaccb6 /include/net/ip.h | |
parent | f7ba35da583cf6aefba887a8dcf86acec4f3a350 (diff) |
macvlan: handle fragmented multicast frames
Fragmented multicast frames are delivered to a single macvlan port,
because ip defrag logic considers other samples are redundant.
Implement a defrag step before trying to send the multicast frame.
Reported-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/ip.h')
-rw-r--r-- | include/net/ip.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/net/ip.h b/include/net/ip.h index aa76c7a4d9c..c7e066a1c61 100644 --- a/include/net/ip.h +++ b/include/net/ip.h @@ -406,9 +406,18 @@ enum ip_defrag_users { IP_DEFRAG_VS_OUT, IP_DEFRAG_VS_FWD, IP_DEFRAG_AF_PACKET, + IP_DEFRAG_MACVLAN, }; int ip_defrag(struct sk_buff *skb, u32 user); +#ifdef CONFIG_INET +struct sk_buff *ip_check_defrag(struct sk_buff *skb, u32 user); +#else +static inline struct sk_buff *ip_check_defrag(struct sk_buff *skb, u32 user) +{ + return skb; +} +#endif int ip_frag_mem(struct net *net); int ip_frag_nqueues(struct net *net); |