Hi Ryu developers,
We're currently working on implementing the dynamic routing for external
networks with BGP targeting OpenStack Juno. Please refer the following
specs and a blueprint for more details.
http://docs-draft.openstack.org/33/90833/9/check/gate-neutron-specs-docs/c283d48/doc/build/html/specs/juno/bgp-dynamic-routing.html
https://blueprints.launchpad.net/neutron/+spec/bgp-dynamic-routing
https://wiki.openstack.org/wiki/Neutron/DynamicRoutingUseCases
We're thinking about to use Ryu's BGP libraries for the implementation. I
started looking at the code and a question came to my mind after several
code walkings.
BGPSpeaker requires router_id, a string representation of an IPv4 address,
in it's __init__ but I couldn't find where the router_id was used. So I'd
like to ask why BGPSpeaker takes the router_id as an argument of its
initialiser. Is it actually used anywhere and am I missing anything?
Otherwise, are you planning to use it in the future?
I list my walking paths below to make it clear how I thought the router_id
was not used:
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/bgpspeaker.py#L218
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/bgpspeaker.py#L257
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/bgpspeaker.py#L261
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/bgpspeaker.py#L291
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/api/core.py#L41-L43
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/lib/hub.py#L62
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/core_manager.py#L73
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/base.py#L243
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/core_manager.py#L37
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/core_manager.py#L41-L43
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/core.py#L75
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/core.py#L87
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/core_managers/table_manager.py
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/core.py#L96
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/core_managers/peer_manager.py
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/core.py#L104
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/core_managers/configuration_manager.py
https://github.com/osrg/ryu/blob/5bbc3c21656395420ffcc0430e5ae9ab2193d211/ryu/services/protocols/bgp/core.py#L148
/Users/tfukushima/py/ryu/ryu% grep -rI "router_id(" .
./services/protocols/bgp/core.py: def router_id(self):
./services/protocols/bgp/processor.py: best_path =
_cmp_by_router_id(local_asn, path1, path2)
./services/protocols/bgp/processor.py:def _cmp_by_router_id(local_asn,
path1, path2):
./services/protocols/bgp/processor.py: def get_router_id(path_source,
local_bgp_id):
./services/protocols/bgp/processor.py: router_id1 =
get_router_id(path_source1, local_bgp_id)
./services/protocols/bgp/processor.py: router_id2 =
get_router_id(path_source2, local_bgp_id)
./services/protocols/bgp/rtconf/common.py:def validate_router_id(router_id):
./services/protocols/bgp/rtconf/common.py: def router_id(self):
/Users/tfukushima/py/ryu/ryu% grep -rI "router_id()" .
/Users/tfukushima/py/ryu/ryu%
Best regards,
Taku Fukushima
------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel