diff options
author | Toshiki Tsuboi <t.tsubo2000@gmail.com> | 2014-11-23 14:14:14 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2014-11-25 11:21:21 +0900 |
commit | aa497ed5d9f27f61f5153c3ef3e3632b6d6f5fc0 (patch) | |
tree | 1929dcc53b5ffd30764fbc6b77fc65e996aaa781 | |
parent | 00b84aa3c041e71c2d252264dbe6efa411c71ded (diff) |
bgp: bug fix of handling nexthop for eBGP peering
RyuBGP doesn't work properly becase of handling wrong nexthop address.
Therefore, in spite of receiving BGP UPDATE Message in the peering router,
the router fails to learn a new route entry from RyuBGP in BGP table.
(Memo: this issue has not occurred in Vpnv4/mpBGP environment.)
(1) register route entry as prefix_add(prefix='x,x,x,x', next_hop='y.y.y.y')
static eBGP
------- R1 ------------ RyuBGP ---------> Router
x.x.x.x y.y.y.y z.z.z.z => Drop UPDATE(Nexthop: y.y.y.y)
(2) receiving BGP UPDATE Message from iBGP session
iBGP eBGP
------- R1 -----------> RyuBGP ---------> Router
x.x.x.x y.y.y.y z.z.z.z => Drop UPDATE(Nexthop: y.y.y.y)
Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r-- | ryu/services/protocols/bgp/peer.py | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/ryu/services/protocols/bgp/peer.py b/ryu/services/protocols/bgp/peer.py index 48806bcb..d293774f 100644 --- a/ryu/services/protocols/bgp/peer.py +++ b/ryu/services/protocols/bgp/peer.py @@ -802,11 +802,6 @@ class Peer(Source, Sink, NeighborConfListener, Activity): """ route_family = path.route_family - if route_family == RF_IPv4_UC and path.nexthop != '0.0.0.0': - return path.nexthop - if route_family == RF_IPv6_UC and path.nexthop != '::': - return path.nexthop - # By default we use BGPS's interface IP with this peer as next_hop. if self._neigh_conf.next_hop: next_hop = self._neigh_conf.next_hop @@ -857,7 +852,6 @@ class Peer(Source, Sink, NeighborConfListener, Activity): unkown_opttrans_attrs = None nlri_list = [path.nlri] - # MP_REACH_NLRI Attribute. # By default we use BGPS's interface IP with this peer as next_hop. # TODO(PH): change to use protocol's local address. # next_hop = self.host_bind_ip |