mcast.c (29a26a56803855a79dbd028cd61abee56237d6e5) mcast.c (0c4b51f0054ce85c0ec578ab818f0631834573eb)
1/*
2 * Multicast support for IPv6
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * Based on linux/ipv4/igmp.c and linux/ipv4/ip_sockglue.c

--- 1632 unchanged lines hidden (view full) ---

1641 skb_dst_set(skb, dst);
1642 if (err)
1643 goto err_out;
1644
1645 payload_len = skb->len;
1646
1647 err = NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT,
1648 net, net->ipv6.igmp_sk, skb, NULL, skb->dev,
1/*
2 * Multicast support for IPv6
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * Based on linux/ipv4/igmp.c and linux/ipv4/ip_sockglue.c

--- 1632 unchanged lines hidden (view full) ---

1641 skb_dst_set(skb, dst);
1642 if (err)
1643 goto err_out;
1644
1645 payload_len = skb->len;
1646
1647 err = NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT,
1648 net, net->ipv6.igmp_sk, skb, NULL, skb->dev,
1649 dst_output);
1649 dst_output_okfn);
1650out:
1651 if (!err) {
1652 ICMP6MSGOUT_INC_STATS(net, idev, ICMPV6_MLD2_REPORT);
1653 ICMP6_INC_STATS(net, idev, ICMP6_MIB_OUTMSGS);
1654 IP6_UPD_PO_STATS(net, idev, IPSTATS_MIB_OUTMCAST, payload_len);
1655 } else {
1656 IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTDISCARDS);
1657 }

--- 347 unchanged lines hidden (view full) ---

2005 if (IS_ERR(dst)) {
2006 err = PTR_ERR(dst);
2007 goto err_out;
2008 }
2009
2010 skb_dst_set(skb, dst);
2011 err = NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT,
2012 net, sk, skb, NULL, skb->dev,
1650out:
1651 if (!err) {
1652 ICMP6MSGOUT_INC_STATS(net, idev, ICMPV6_MLD2_REPORT);
1653 ICMP6_INC_STATS(net, idev, ICMP6_MIB_OUTMSGS);
1654 IP6_UPD_PO_STATS(net, idev, IPSTATS_MIB_OUTMCAST, payload_len);
1655 } else {
1656 IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTDISCARDS);
1657 }

--- 347 unchanged lines hidden (view full) ---

2005 if (IS_ERR(dst)) {
2006 err = PTR_ERR(dst);
2007 goto err_out;
2008 }
2009
2010 skb_dst_set(skb, dst);
2011 err = NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT,
2012 net, sk, skb, NULL, skb->dev,
2013 dst_output);
2013 dst_output_okfn);
2014out:
2015 if (!err) {
2016 ICMP6MSGOUT_INC_STATS(net, idev, type);
2017 ICMP6_INC_STATS(net, idev, ICMP6_MIB_OUTMSGS);
2018 IP6_UPD_PO_STATS(net, idev, IPSTATS_MIB_OUTMCAST, full_len);
2019 } else
2020 IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTDISCARDS);
2021

--- 931 unchanged lines hidden ---
2014out:
2015 if (!err) {
2016 ICMP6MSGOUT_INC_STATS(net, idev, type);
2017 ICMP6_INC_STATS(net, idev, ICMP6_MIB_OUTMSGS);
2018 IP6_UPD_PO_STATS(net, idev, IPSTATS_MIB_OUTMCAST, full_len);
2019 } else
2020 IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTDISCARDS);
2021

--- 931 unchanged lines hidden ---