This patch fixes a bug of export policy and implicit withdrawal.
When a path is filtered by export policy, we need to check whether the
old path (implicit withdrawn path) was sent before the new path.
If it has been sent, we need to send a withdrawal message.
Signed-off-by: ISHIDA Wataru <[email protected]>
According to "draft-evens-grow-bmp-local-rib", the L flag in the Peer
Flags is NOT used for the locally sourced routes and the F flag is
defined into the same bit.
This patch removes "policy" argument and add "flags" argument for
BMPPeerHeader and NewBMPPeerHeader in order to distinguish which flag
is set (the L flag or the F flag).
Then introduce IsPostPolicy() func to show if the L flag is set or not.
Signed-off-by: IWASE Yusuke <[email protected]>
config.Neighbor.Transport.State.LocalAddress may have zone info and
not be valid ip address format.
Use PeerInfo.LocalAddress instead.
Signed-off-by: ISHIDA Wataru <[email protected]>
config.TransportState.LocalAddress may have zone info with ipv6 address
like "fe80::x%eth0".
In this case, net.ParseIP() returns <nil>, which leads to set <nil> to
PeerInfo.LocalAddress.
Signed-off-by: ISHIDA Wataru <[email protected]>
Currently, the Zebra message version used by ZClient is configurable
(default 2), but if the given version is miss-matched with that of
Zebra daemon, ZCient will fail to connect.
This patch fixes ZClient to retry the version negotiation.
For example, if failed with the version 2, retry with the version 3.
Note: In order to receive the first message from Zebra daemon when
instantiating ZClient, this patch fixes ZClient to send HELLO and
ROUTER_ID_ADD messages automatically.
Signed-off-by: IWASE Yusuke <[email protected]>
This patch enables server/zclient to update the metric or the reachability
state to the nexthop for implementing the Nexthop Tracking features.
Signed-off-by: IWASE Yusuke <[email protected]>
with two ibgp peers (a and b), when peer a advertizes one route and
then withdraw it, there are two bugs:
- gobgp sends withdrawal to peer a.
- gobgp sends withdrawal to peer b.
this fixes both.
Signed-off-by: FUJITA Tomonori <[email protected]>
Test a scenario where peer A and B advertized the same prefix, and A's
one was best then peer A withdraws. peer B should get withdrawal.
Signed-off-by: FUJITA Tomonori <[email protected]>
Since Quagga 1.0.20160309, it implements per-route MTU handling which
adds MTU attribute to every ZEBRA_IPV4_ROUTE_ADD and
ZEBRA_IPV6_ROUTE_ADD messages. It causes "message length invalid" error
when GoBGP receives messages from Zebra and as the result, routes from
Zebra are no longer added to GoBGP.
This fixes the issue by decoding/encoding MTU attribute properly.
Now parsed MTU attribute is not used anywhere, just kept in an internal
structure.
When a path is rejected by in-policy, the prefix must be withdrawn
since it might already exist in the rib.
Signed-off-by: ISHIDA Wataru <[email protected]>
This patch adds "--reason" option support into the disable neighbor command
which can specify "Administrative Shutdown Communication" on the BGP Cease
NOTIFICATION message.
Usage:
$ gobgp neighbor <neighbor address> disable --reason "some messages"
Signed-off-by: IWASE Yusuke <[email protected]>
This patch enable to log the body of the Cease NOTIFICATION message
with "Administrative Shutdown" and "Administrative Reset" subcodes.
Signed-off-by: IWASE Yusuke <[email protected]>
- All of EoR except IPv4 unicast have MP_UNREACH only. (RFC4724)
- length of the MP_UNREACH attr. should be 3bytes.
- length of the value should be 0bytes.
- Should send EoR marker in initial exchange of BMP Route Monitoring. (RFC7854)
when using named return for management operations, we need to substitute
the return value of (*BgpServer).mgmtOperation() to a valiable 'err' for
proper error propagation.
close #1215
Signed-off-by: Wataru Ishida <[email protected]>
AdjRibOut isn't in memory so needs to be calculated on the fly.
Doing such for multiple neighbors consumes too much CPU (especially
there are lots of routes).
Signed-off-by: FUJITA Tomonori <[email protected]>