From 834200830bd0a27c09465b6e23941364a149b9a3 Mon Sep 17 00:00:00 2001 From: Leonard Herve Date: Tue, 11 Aug 2009 15:51:52 -0300 Subject: [pim] igmpv3: specific query interval set to 1 second (RFC 3376 8.8.) [pim] pim messages: encoded source address format with Sparse bit=1 (RFC 4601 4.9.1.) [pim] and Mask Len MUST be equal to 32 [pim] dr election: new traces [pim] fix triggered_hello_delay_msec randomization --- pimd/pim_join.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'pimd/pim_join.c') diff --git a/pimd/pim_join.c b/pimd/pim_join.c index ce4ec4e6..6b46759a 100644 --- a/pimd/pim_join.c +++ b/pimd/pim_join.c @@ -239,6 +239,19 @@ int pim_joinprune_recv(struct interface *ifp, if (addr_offset < 1) { return -7; } + + /* + RFC 4601: 4.9.1 Encoded Source and Group Address Formats + + Encoded-Source Address + (...) + The mask length MUST be equal to the mask length in bits for the + given Address Family and Encoding Type (32 for IPv4 native and + 128 for IPv6 native). A router SHOULD ignore any messages + received with any other mask length. + */ + if (msg_source_addr.prefixlen!=32) return; + buf += addr_offset; recv_join(ifp, neigh, msg_holdtime, @@ -257,6 +270,19 @@ int pim_joinprune_recv(struct interface *ifp, if (addr_offset < 1) { return -8; } + + /* + RFC 4601: 4.9.1 Encoded Source and Group Address Formats + + Encoded-Source Address + (...) + The mask length MUST be equal to the mask length in bits for the + given Address Family and Encoding Type (32 for IPv4 native and + 128 for IPv6 native). A router SHOULD ignore any messages + received with any other mask length. + */ + if (msg_source_addr.prefixlen!=32) return; + buf += addr_offset; recv_prune(ifp, neigh, msg_holdtime, -- cgit v1.2.3