1
0
Fork 0
alistair23-linux/include/net
David L Stevens 5ab4a6c81e [IPV6] mcast: Fix multiple issues in MLDv2 reports.
The below "jumbo" patch fixes the following problems in MLDv2.

1) Add necessary "ntohs" to recent "pskb_may_pull" check [breaks
        all nonzero source queries on little-endian (!)]

2) Add locking to source filter list [resend of prior patch]

3) fix "mld_marksources()" to
        a) send nothing when all queried sources are excluded
        b) send full exclude report when source queried sources are
                not excluded
        c) don't schedule a timer when there's nothing to report

NOTE: RFC 3810 specifies the source list should be saved and each
  source reported individually as an IS_IN. This is an obvious DOS
  path, requiring the host to store and then multicast as many sources
  as are queried (e.g., millions...). This alternative sends a full, 
  relevant report that's limited to number of sources present on the
  machine.

4) fix "add_grec()" to send empty-source records when it should
        The original check doesn't account for a non-empty source
        list with all sources inactive; the new code keeps that
        short-circuit case, and also generates the group header
        with an empty list if needed.

5) fix mca_crcount decrement to be after add_grec(), which needs
        its original value

These issues (other than item #1 ;-) ) were all found by Yan Zheng,
much thanks!

Signed-off-by: David L Stevens <dlstevens@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-12-27 14:03:00 -08:00
..
bluetooth [Bluetooth]: Remove the usage of /proc completely 2005-11-08 09:57:38 -08:00
irda [IRDA]: IrDA prototype fixes 2005-09-05 18:08:11 -07:00
netfilter [NETFILTER]: Add nf_conntrack subsystem. 2005-11-09 16:38:16 -08:00
sctp [SCTP]: Include ulpevents in socket receive buffer accounting. 2005-11-11 16:08:24 -08:00
tc_act [PKT_SCHED]: Introduce simple actions. 2005-04-24 20:10:16 -07:00
act_api.h [NET]: Kill skb->tc_classid 2005-08-29 15:31:18 -07:00
act_generic.h [PKT_SCHED]: Fixup simple action define. 2005-05-19 12:42:39 -07:00
addrconf.h [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
af_unix.h [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
ah.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
arp.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
atmclip.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ax25.h drivers/net: Remove pointless checks for NULL prior to calling kfree() 2005-10-28 16:53:13 -04:00
checksum.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compat.h [NET]: Need struct sock forward decl in net/compat.h 2005-09-08 12:32:46 -07:00
datalink.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
dn.h [DECNET]: add memory buffer settings 2005-12-05 13:42:06 -08:00
dn_dev.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dn_fib.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dn_neigh.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dn_nsp.h [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
dn_route.h [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
dsfield.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dst.h [IPSEC]: Kill obsolete get_mss function 2005-10-26 00:48:45 -02:00
esp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
flow.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gen_stats.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
genetlink.h [NETLINK]: Generic netlink family 2005-11-10 02:26:41 +01:00
icmp.h [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
ieee80211.h [PATCH] git-netdev-all-ieee80211_get_payload-warning-fix 2005-11-18 13:33:31 -05:00
ieee80211_crypt.h ieee80211: cleanup crypto list handling, other minor cleanups. 2005-11-09 01:01:04 -05:00
ieee80211_radiotap.h [PATCH] ieee80211: Added ieee80211_radiotap.h 2005-09-21 23:03:55 -04:00
if_inet6.h [IPV6] mcast: Fix multiple issues in MLDv2 reports. 2005-12-27 14:03:00 -08:00
inet6_hashtables.h [INET]: speedup inet (tcp/dccp) lookups 2005-10-03 14:13:38 -07:00
inet_common.h [INET]: Move the TCP hashtable functions/structs to inet_hashtables.[ch] 2005-08-29 15:38:39 -07:00
inet_connection_sock.h [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
inet_ecn.h [NET]: Introduce INET_ECN_set_ce() function 2005-11-05 22:02:24 +01:00
inet_hashtables.h [TCP/DCCP]: Randomize port selection 2005-11-05 21:23:15 -02:00
inet_timewait_sock.h [TWSK]: Grab the module refcount for timewait sockets 2005-10-10 21:25:23 -07:00
inetpeer.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip.h [IP]: Introduce ip_options_get_from_user 2005-08-29 16:01:39 -07:00
ip6_checksum.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip6_fib.h [IPV6]: V6 route events reported with wrong netlink PID and seq number 2005-06-21 13:51:04 -07:00
ip6_route.h [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
ip6_tunnel.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_fib.h [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
ip_mp_alg.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_vs.h [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
ipcomp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipconfig.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipip.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipv6.h Merge git://git.skbuff.net/gitroot/yoshfuji/linux-2.6.14+advapi-fix/ 2005-11-20 20:52:16 -08:00
ipx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iw_handler.h [PATCH] WE-19 for kernel 2.6.13 2005-09-06 22:40:24 -04:00
lapb.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc.h [LLC]: Fix sparse warnings 2005-09-22 05:14:33 -03:00
llc_c_ac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_c_ev.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_c_st.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_conn.h [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
llc_if.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_pdu.h [LLC]: Fix typo 2005-11-14 21:58:18 -08:00
llc_s_ac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_s_ev.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_s_st.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_sap.h [LLC]: Fix the accept path 2005-09-22 07:57:21 -03:00
ndisc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
neighbour.h [NET]: Store skb->timestamp as offset to a base timestamp 2005-08-29 15:58:24 -07:00
netlink.h [NETLINK]: Generic netlink receive queue processor 2005-11-10 02:26:40 +01:00
netrom.h drivers/net: Remove pointless checks for NULL prior to calling kfree() 2005-10-28 16:53:13 -04:00
p8022.h [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
pkt_act.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pkt_cls.h [NET]: Remove explicit initializations of skb->input_dev 2005-08-29 15:33:26 -07:00
pkt_sched.h [PKT_SCHED]: Cleanup qdisc creation and alignment macros 2005-07-05 14:15:09 -07:00
protocol.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
psnap.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
raw.h [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
rawv6.h [IPV4/6]: Check if packet was actually delivered to a raw socket to decide whether to send an ICMP unreachable 2005-08-29 15:37:22 -07:00
red.h [PKT_SCHED]: Generic RED layer 2005-11-05 22:02:24 +01:00
request_sock.h [ICSK]: Move generalised functions from tcp to inet_connection_sock 2005-08-29 15:49:50 -07:00
rose.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
route.h [IPV4]: Fix secondary IP addresses after promotion 2005-11-22 14:47:37 -08:00
sch_generic.h [PKT_SCHED]: Cleanup qdisc creation and alignment macros 2005-07-05 14:15:09 -07:00
scm.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
slhc_vj.h [NET]: Remove __ARGS from include/net/slhc_vj.h 2005-07-05 15:12:04 -07:00
snmp.h [PATCH] smp_processor_id() cleanup 2005-06-21 18:46:13 -07:00
sock.h [TCP]: speed up SACK processing 2005-11-10 17:14:59 -08:00
syncppp.h [PATCH] drivers/net/wan/: possible cleanups 2005-09-14 08:36:54 -04:00
tcp.h [TCP]: More spelling fixes. 2005-11-15 15:17:10 -08:00
tcp_ecn.h [NET]: Introduce inet_connection_sock 2005-08-29 15:43:19 -07:00
tcp_states.h [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
transp_v6.h [IPV6]: Support IPV6_{RECV,}TCLASS socket options / ancillary data. 2005-09-08 10:19:03 +09:00
udp.h [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
x25.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
x25device.h [NET]: Remove explicit initializations of skb->input_dev 2005-08-29 15:33:26 -07:00
xfrm.h [IPSEC]: Perform SA switchover immediately. 2005-12-19 14:23:23 -08:00