This patch enables BGPSpeaker to advertise MPLS-Based Ethernet VPN (RFC7432) routes and store the advertised BGP EVPN routes from the neighbors. Also, includes the Python3 compatibility improvements and the updates of the API reference of BGPSpeaker.
v2: For Iwamoto-San comment, [PATCH 06/20] was updated. IWASE Yusuke (20): packet/bgp: Enable to parse the entire packet data packet/bgp: Support MPLS-Based Ethernet VPN (RFC7432) test_bgp: Add unit tests for Ethernet VPN BGPSpeaker: Support Python3 on SSH console BGPSpeaker/info_base: Add comparison methods for Python3 packet/bgp: Fix to serialize BGPNotification on Python3 BGPSpeaker: Support Ethernet VPN update messages test_bgpspeaker: Add unit test for the API of EVPN BGPSpeaker: Support VRF Table for Ethernet VPN test_table_manager: Add UTs for the VRF Table API table_manager: Rename internal API for consistency test_table_manager: Add UTs for the Global Table API BGPSpeaker: Reduce Pylint warnings BGPSpeaker: Resolve unused argumet 'multi_exit_disc' BGPSpeaker: Improve validation utility methods BGPSpeaker: Raise exception when validation fails BGPSpeaker: Enable validation for optional arguments test_validation: Add unit tests for validation utilities doc: Update the API Reference for BGPSpeaker BGPSpeaker: Suppress RD in EVPN VRF on SSH console doc/source/library_bgp_speaker.rst | 4 +- ryu/lib/packet/afi.py | 1 + ryu/lib/packet/bgp.py | 915 ++++++++++++++++++++- ryu/lib/packet/bmp.py | 10 +- ryu/lib/packet/safi.py | 1 + ryu/lib/packet/tcp.py | 10 +- ryu/lib/type_desc.py | 1 + ryu/services/protocols/bgp/api/base.py | 18 +- ryu/services/protocols/bgp/api/prefix.py | 134 ++- ryu/services/protocols/bgp/api/rtconf.py | 4 +- ryu/services/protocols/bgp/base.py | 47 +- ryu/services/protocols/bgp/bgpspeaker.py | 342 +++++--- .../protocols/bgp/core_managers/table_manager.py | 231 +++--- ryu/services/protocols/bgp/info_base/base.py | 111 +-- ryu/services/protocols/bgp/info_base/evpn.py | 59 ++ ryu/services/protocols/bgp/info_base/vpn.py | 20 +- ryu/services/protocols/bgp/info_base/vrf.py | 91 +- ryu/services/protocols/bgp/info_base/vrfevpn.py | 58 ++ .../protocols/bgp/operator/commands/show/rib.py | 12 +- .../commands/show/route_formatter_mixin.py | 2 +- .../protocols/bgp/operator/commands/show/vrf.py | 9 +- .../protocols/bgp/operator/internal_api.py | 18 +- ryu/services/protocols/bgp/operator/ssh.py | 5 +- ryu/services/protocols/bgp/rtconf/base.py | 47 +- ryu/services/protocols/bgp/rtconf/neighbors.py | 21 +- ryu/services/protocols/bgp/rtconf/vrfs.py | 30 +- ryu/services/protocols/bgp/speaker.py | 2 +- ryu/services/protocols/bgp/utils/bgp.py | 3 + ryu/services/protocols/bgp/utils/validation.py | 239 +++--- ryu/tests/packet_data/bgp4/evpn_esi_arbitrary.pcap | Bin 0 -> 156 bytes ryu/tests/packet_data/bgp4/evpn_esi_as_based.pcap | Bin 0 -> 156 bytes ryu/tests/packet_data/bgp4/evpn_esi_l2_bridge.pcap | Bin 0 -> 156 bytes ryu/tests/packet_data/bgp4/evpn_esi_lacp.pcap | Bin 0 -> 156 bytes ryu/tests/packet_data/bgp4/evpn_esi_mac_base.pcap | Bin 0 -> 156 bytes ryu/tests/packet_data/bgp4/evpn_esi_router_id.pcap | Bin 0 -> 156 bytes ryu/tests/packet_data/bgp4/evpn_nlri_eth_a-d.pcap | Bin 0 -> 156 bytes ryu/tests/packet_data/bgp4/evpn_nlri_eth_seg.pcap | Bin 0 -> 154 bytes .../bgp4/evpn_nlri_inc_multi_eth_tag.pcap | Bin 0 -> 148 bytes .../packet_data/bgp4/evpn_nlri_mac_ip_ad.pcap | Bin 0 -> 168 bytes ryu/tests/unit/packet/test_bgp.py | 53 +- .../protocols/bgp/core_managers/__init__.py | 0 .../bgp/core_managers/test_table_manager.py | 355 ++++++++ .../unit/services/protocols/bgp/test_bgpspeaker.py | 276 +++++++ .../unit/services/protocols/bgp/utils/__init__.py | 0 .../protocols/bgp/utils/test_validation.py | 203 +++++ 45 files changed, 2787 insertions(+), 545 deletions(-) create mode 100644 ryu/services/protocols/bgp/info_base/evpn.py create mode 100644 ryu/services/protocols/bgp/info_base/vrfevpn.py create mode 100644 ryu/tests/packet_data/bgp4/evpn_esi_arbitrary.pcap create mode 100644 ryu/tests/packet_data/bgp4/evpn_esi_as_based.pcap create mode 100644 ryu/tests/packet_data/bgp4/evpn_esi_l2_bridge.pcap create mode 100644 ryu/tests/packet_data/bgp4/evpn_esi_lacp.pcap create mode 100644 ryu/tests/packet_data/bgp4/evpn_esi_mac_base.pcap create mode 100644 ryu/tests/packet_data/bgp4/evpn_esi_router_id.pcap create mode 100644 ryu/tests/packet_data/bgp4/evpn_nlri_eth_a-d.pcap create mode 100644 ryu/tests/packet_data/bgp4/evpn_nlri_eth_seg.pcap create mode 100644 ryu/tests/packet_data/bgp4/evpn_nlri_inc_multi_eth_tag.pcap create mode 100644 ryu/tests/packet_data/bgp4/evpn_nlri_mac_ip_ad.pcap create mode 100644 ryu/tests/unit/services/protocols/bgp/core_managers/__init__.py create mode 100644 ryu/tests/unit/services/protocols/bgp/core_managers/test_table_manager.py create mode 100644 ryu/tests/unit/services/protocols/bgp/test_bgpspeaker.py create mode 100644 ryu/tests/unit/services/protocols/bgp/utils/__init__.py create mode 100644 ryu/tests/unit/services/protocols/bgp/utils/test_validation.py -- 2.7.4 ------------------------------------------------------------------------------ _______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel