]> git.proxmox.com Git - mirror_frr.git/commit
ripngd: add VRF support
authorRenato Westphal <renato@opensourcerouting.org>
Fri, 4 Jan 2019 21:08:10 +0000 (19:08 -0200)
committerRenato Westphal <renato@opensourcerouting.org>
Fri, 18 Jan 2019 18:15:41 +0000 (16:15 -0200)
commitdde7b15b83513b5883378ba1d4f2298ef451450b
tree2130501acfc20fe071d92ee93ee4cd75eec17998
parent14f17e6362fdc36428883c8557df6c681c9bceb4
ripngd: add VRF support

* Turn the "instance" YANG presence-container into a YANG list keyed
  by the new "vrf" leaf. This is a backward incompatible change but
  this should be ok for now.

* RIPng VRF instances can be configured even when the corresponding
  VRF doesn't exist. And a RIPng VRF instance isn't deleted when
  the corresponding VRF is deleted. For this to work, implement the
  ripng_instance_enable() and ripng_instance_disable() functions
  that are called to enable/disable RIPng routing instances when
  necessary. A RIPng routing instance can be enabled only when the
  corresponding VRF is enabled (this information comes from zebra
  and depends on the underlying VRF backend). Routing instances are
  stored in the new ripng_instances rb-tree (global variable).

* Add a vrf pointer to the ripng structure instead of storing vrf_id
  only. This is much more convenient than using vrf_lookup_by_id()
  every time we need to get the vrf pointer from the VRF ID. The
  ripng->vrf pointer is updated whenever the VRF enable/disable hooks
  are called.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
ripngd/ripng_cli.c
ripngd/ripng_interface.c
ripngd/ripng_main.c
ripngd/ripng_memory.c
ripngd/ripng_memory.h
ripngd/ripng_northbound.c
ripngd/ripng_zebra.c
ripngd/ripngd.c
ripngd/ripngd.h
vtysh/vtysh.c
yang/frr-ripngd.yang