when a path has IPv4 NLRI and IPv6 nexthop, handle it in MPBGP manner.
(use mp-reach-nlri path attribute instead of nexthop path attibute)
Signed-off-by: ISHIDA Wataru <[email protected]>
RFC4760 says:
An UPDATE message that contains the MP_UNREACH_NLRI is not required to
carry any other path attributes.
Signed-off-by: FUJITA Tomonori <[email protected]>
Fix the following commit:
commit de58be4411
Author: FUJITA Tomonori <[email protected]>
Date: Sun Jun 26 23:18:23 2016 +0900
support AGGREGATOR and AS4_AGGREGATOR conversion
Signed-off-by: FUJITA Tomonori <[email protected]>
Fix a bug that gobgp creates a wrong update message from path having
MP_REACH with multiple NLRIs. gobgp always allocates a path per NRLI
(that is, multiple paths from an update message having MP_REACH with
multiple NLRIs).
Signed-off-by: FUJITA Tomonori <[email protected]>
post-policy code creates paths from bgp update and then create the
message from the modified paths. MP_UNREACH needs to be handled
diffently.
Signed-off-by: FUJITA Tomonori <[email protected]>
Actually comapring all the attributes to see if packing NLRIs. It
takes long but gobgpd sends minimum messages.
Signed-off-by: FUJITA Tomonori <[email protected]>
With this patch, bobgpd packs multiple NLRIs into one BGP update
message (IOW, multiple paths into one update message).
We do only with ipv4 since we could have lots of routes. If you don't
have lots, it's not worth having the complicated logic for such route
families.
Signed-off-by: FUJITA Tomonori <[email protected]>
this patch fixes the wrong behavior shown below
$ gobgp global rib add 10.0.0.0/24
$ gobgp global rib del 10.0.0.0/24
$ gobgp global rib
Network Next Hop AS_PATH Age Attrs
*> 10.0.0.0/24 0.0.0.0 65000 00:05:48 [{Origin: IGP}]
since we used to compare path's source by PeerInfo's pointer, locally
originated routes is considered as a different route even if they have
same prefix.
this patch introduce Equal() method to compare PeerInfo's content and
fix this wrong behavior.
Signed-off-by: ISHIDA Wataru <[email protected]>
add rtc route
$ gobgp global rib add 65000 77 -a rtc
check it
$ gobgp global rib -a rtc
Network Next Hop AS_PATH Age Attrs
*> 65001:65000:75 0.0.0.0 [65001] 00:15:35 [{Origin: IGP}]
Signed-off-by: ISHIDA Wataru <[email protected]>
add encap end point route(10.0.0.1) with vni 20
$ gobgp global rib add 10.0.0.1 20 -a encap
check it
$ gobgp global rib -a encap
Please specify one command of: add or del
Network Next Hop AS_PATH Age Attrs
*> 10.0.0.1 0.0.0.0 [64512] 00:00:01 [{Origin: IGP} {Encap: < VXLAN | color: 20 >}]
Signed-off-by: ISHIDA Wataru <[email protected]>
table_manager.go clones withdraw path before passing it to peer.go
clone() doesn't clone pathattributes. This patch adds a helper
funciton to clone PathAttributes to message.go (it is used by
createing BGPUpdate message to withdraw ipv6. later it will be used
for 2 byte AS peer).
Signed-off-by: FUJITA Tomonori <[email protected]>