diff options
author | David Lamparter <equinox@opensourcerouting.org> | 2012-11-27 02:10:29 +0100 |
---|---|---|
committer | David Lamparter <equinox@opensourcerouting.org> | 2012-12-12 15:38:07 +0100 |
commit | 318c8040abc1b8a737c941382e8aca82e546da09 (patch) | |
tree | 3eb37c0549c27b1db1a08aadab6166728b663348 /isisd/isis_dlpi.c | |
parent | isisd: save metric-style narrow (diff) | |
download | frr-318c8040abc1b8a737c941382e8aca82e546da09.tar.xz frr-318c8040abc1b8a737c941382e8aca82e546da09.zip |
isisd: always join all IS-IS multicast groups
The socket is only created once when an interface is brought up, and the
multicast groups were joined according to configuration at that point.
This breaks when later switching an interface to another IS-IS level.
Since, for a separate conformance issue (ANVL ISIS-6.4), we should be
inspecting the destination address anyway, the simplest fix here is to
just join all groups unconditionally. There shouldn't be much traffic
on these anyway, worst case we might be picking up some unrelated
multicast groups due to NIC filter aliasing though...
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Tested-by: Martin Winter <mwinter@opensourcerouting.org>
Diffstat (limited to 'isisd/isis_dlpi.c')
-rw-r--r-- | isisd/isis_dlpi.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/isisd/isis_dlpi.c b/isisd/isis_dlpi.c index 73b6d3e7b..0a82718d3 100644 --- a/isisd/isis_dlpi.c +++ b/isisd/isis_dlpi.c @@ -442,13 +442,9 @@ open_dlpi_dev (struct isis_circuit *circuit) * 8.4.2 - Broadcast subnetwork IIH PDUs */ retval = 0; - if (circuit->is_type & IS_LEVEL_1) - { - retval |= dlpimcast (fd, ALL_L1_ISS); - retval |= dlpimcast (fd, ALL_ISS); - } - if (circuit->is_type & IS_LEVEL_2) - retval |= dlpimcast (fd, ALL_L2_ISS); + retval |= dlpimcast (fd, ALL_L1_ISS); + retval |= dlpimcast (fd, ALL_ISS); + retval |= dlpimcast (fd, ALL_L2_ISS); if (retval != 0) { |