|
Lines 1456-1462
static int br_multicast_ipv6_rcv(struct net_bridge *br,
Link Here
|
| 1456 |
{ |
1456 |
{ |
| 1457 |
struct sk_buff *skb2; |
1457 |
struct sk_buff *skb2; |
| 1458 |
const struct ipv6hdr *ip6h; |
1458 |
const struct ipv6hdr *ip6h; |
| 1459 |
u8 icmp6_type; |
1459 |
struct icmp6hdr *icmp6h; |
| 1460 |
u8 nexthdr; |
1460 |
u8 nexthdr; |
| 1461 |
unsigned len; |
1461 |
unsigned len; |
| 1462 |
int offset; |
1462 |
int offset; |
|
Lines 1502-1510
static int br_multicast_ipv6_rcv(struct net_bridge *br,
Link Here
|
| 1502 |
__skb_pull(skb2, offset); |
1502 |
__skb_pull(skb2, offset); |
| 1503 |
skb_reset_transport_header(skb2); |
1503 |
skb_reset_transport_header(skb2); |
| 1504 |
|
1504 |
|
| 1505 |
icmp6_type = icmp6_hdr(skb2)->icmp6_type; |
1505 |
icmp6h = icmp6_hdr(skb2); |
| 1506 |
|
1506 |
|
| 1507 |
switch (icmp6_type) { |
1507 |
switch (icmp6h->icmp6_type) { |
| 1508 |
case ICMPV6_MGM_QUERY: |
1508 |
case ICMPV6_MGM_QUERY: |
| 1509 |
case ICMPV6_MGM_REPORT: |
1509 |
case ICMPV6_MGM_REPORT: |
| 1510 |
case ICMPV6_MGM_REDUCTION: |
1510 |
case ICMPV6_MGM_REDUCTION: |
|
Lines 1544-1550
static int br_multicast_ipv6_rcv(struct net_bridge *br,
Link Here
|
| 1544 |
|
1544 |
|
| 1545 |
BR_INPUT_SKB_CB(skb)->igmp = 1; |
1545 |
BR_INPUT_SKB_CB(skb)->igmp = 1; |
| 1546 |
|
1546 |
|
| 1547 |
switch (icmp6_type) { |
1547 |
switch (icmp6h->icmp6_type) { |
| 1548 |
case ICMPV6_MGM_REPORT: |
1548 |
case ICMPV6_MGM_REPORT: |
| 1549 |
{ |
1549 |
{ |
| 1550 |
struct mld_msg *mld; |
1550 |
struct mld_msg *mld; |