]> git.proxmox.com Git - mirror_frr.git/commit - zebra/main.c
zebra: maintain the router-id per VRF
authorFeng Lu <lu.feng@6wind.com>
Fri, 22 May 2015 09:40:07 +0000 (11:40 +0200)
committerVipin Kumar <vipin@cumulusnetworks.com>
Fri, 30 Oct 2015 07:19:15 +0000 (00:19 -0700)
commitc6ffe64543f9a5b8d26ce9274911882dda07065b
tree9c88d7e9d199609a0131519a01fa26a6212c1201
parent8f527c5e7e6888a7fced25928ea22899259ab49f
zebra: maintain the router-id per VRF

A router may need different identifier among the VRFs. So move the
maintenance of router-id per VRF.

* rib.h:

  Move the previous global variables in router-id.c into the
  "struct zebra_vrf":
  - struct list _rid_all_sorted_list/*rid_all_sorted_list
  - struct list _rid_lo_sorted_list/*rid_lo_sorted_list
  - struct prefix rid_user_assigned

* router-id.c/router-id.h:

  A new parameter "vrf_id" is added to all the router-id APIs.
  Their operations are done only within the specified VRF.

  A new command "router-id A.B.C.D vrf N" is added to allow
  manual router-id for any VRF.

  The old router_id_init() function is splitted into two:
  - router_id_cmd_init(): it only installs the commands
  - router_id_init(): this new one initializes the variables for
                      a specified VRF

* zebra_rib.c: Add new functions zebra_vrf_get/lookup() called
               from router-id.c.

* main.c: Replace router_id_init() with router_id_cmd_init() and
          call the new router_id_init() in zebra_vrf_new().

Signed-off-by: Feng Lu <lu.feng@6wind.com>
Reviewed-by: Alain Ritoux <alain.ritoux@6wind.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Acked-by: Vincent JARDIN <vincent.jardin@6wind.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Conflicts:
zebra/rib.h

Conflicts:
zebra/rib.h
zebra/router-id.c
zebra/zserv.h
zebra/main.c
zebra/rib.h
zebra/router-id.c
zebra/router-id.h
zebra/zserv.c
zebra/zserv.h