]> git.puffer.fish Git - mirror/frr.git/commit
Zebra: Make RA socket operation on a per-NS basis
authorvivek <vivek@cumulusnetworks.com>
Fri, 19 Feb 2016 22:28:25 +0000 (14:28 -0800)
committervivek <vivek@cumulusnetworks.com>
Fri, 19 Feb 2016 22:55:36 +0000 (14:55 -0800)
commit43459b1f095770b20d5701af836cc937858f6c09
tree903c2c009ec148216668f2a410413f6ef55b6ead
parentc3c06a51aaa0b0371831915681cbaefd04717cca
Zebra: Make RA socket operation on a per-NS basis

This patch reorganizes the RA handling to be per namespace rather than per
VRF. The VRF library by 6wind had done the original change to make the RA
data structures (socket information) per VRF, but this was correct only if
each VRF represented a NS. In our reorganization, we have created a NS
structure (struct zebra_ns) and VRFs don't correspond to namespaces (i.e.,
all VRFs exist in the default namespace). So, the RA handling should be
done under 'struct zebra_ns'.

With the changes, there is a single raw socket per NS (=> 1 for us) on which
we will receive and handle RAs for all interfaces. The interface information
is available through cmsg and the processing will then happen for that interface.

There is a problem with transmitting RAs over a VRF interface. This is
tracked by CM-9398.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Ticket: CM-9206
Reviewed By: CCR-4217
Testing Done: Manual testing
zebra/main.c
zebra/rib.h
zebra/rtadv.c
zebra/rtadv.h