This fixes the ae7e572550 commit
regression. gobgp neighbor command takes a bogus neighbor name like
the following:
fujita@ubuntu:~/go/src/github.com/osrg/gobgp/gobgp$ ./gobgp n 1
BGP neighbor is 172.17.0.2, remote AS 65001
BGP version 4, remote router ID unknown
BGP state = active, up for 17496d 14:21:50
BGP OutQ = 0, Flops = 0
Hold time is 0, keepalive interval is 0 seconds
Configured hold time is 60, keepalive interval is 20 seconds
Signed-off-by: FUJITA Tomonori <[email protected]>
According to RFC7432, the ES-Import RT can be derived automatically
when using the ESI Types 1, 2 and 3.
This patch enables to derive automatically the ES-Import RT for the
given path from BgpServer's API.
Signed-off-by: IWASE Yusuke <[email protected]>
Currently, the config of PeerGroup members are not set properly.
For example, if LocalAs of the neighbor is not set in the config file,
LocalAs will be set to Global.As as a default value.
After this, however, if the neighbor is a member of a peer group,
LocalAs will be unexpectedly overwritten by the peer group config.
This commit fixes this by setting default values after
applying the peer group config.
Adding to this, this commit avoids unnecessary applying
the peer group config.
Signed-off-by: Satoshi Fujimoto <[email protected]>
RFC 5065 says that:
"It is a error for a BGP speaker to receive an update message from a
confederation peer that is not in the same Member-AS that does not
have AS_CONFED_SEQUENCE as the first segment."
Signed-off-by: Satoshi Fujimoto <[email protected]>
In neighbor config, there are some parameters whose
default value can be changed depending on the global config.
This commit modifies the argument of config.SetDefaultNeighborConfigValues()
to pass the global config. It enables to change the default
settings of neighbor depending on the global config.
Signed-off-by: Satoshi Fujimoto <[email protected]>
Currently, with iBGP peering, the CLI injected path will not be withdrawn
when the deletion if any other path exists on RIB, then the CLI injected
path will be left on iBGP peers even if the route is deleted on the
originator router.
This problem can cause routing loops in some case.
This patch fixes to withdraw the old best path when it was the CLI (or
gRPC) injected path.
Signed-off-by: IWASE Yusuke <[email protected]>
Currently, zclient registers only nexthops which bound for the best
path, this patch enables to register all nexthops which contained in
RIBs in order to detect nexthops down faster.
Signed-off-by: IWASE Yusuke <[email protected]>
This patch enables to unregister nexthop when received NEXTHOP_UPDATE
message and there is no path bound for the updated nexthop.
Signed-off-by: IWASE Yusuke <[email protected]>
The function for notifying WATCH_EVENT_TYPE_PRE_UPDATE event hasn't been
defined yet, this patch defines a function for it.
Signed-off-by: IWASE Yusuke <[email protected]>
After Shutdown() is called, the main goroutine waits for peers'
goroutines to stop then dies. But if no peer is configured, the main
goroutines never dies.
Signed-off-by: FUJITA Tomonori <[email protected]>
Currently, UpdatePath() of BgpServer will apply policy multiply, and
this causes the unexpected result of policy configurations.
This patch avoids this multiple policy application.
Signed-off-by: IWASE Yusuke <[email protected]>
This patch adds a field of config.Neighbor into WatchEventUpdate in
order to get config/state info of the neighbor which sent the UPDATE
message.
Signed-off-by: IWASE Yusuke <[email protected]>
The variable "m" in mrtWriter.loop() collides its receiver "m *mrtWriter".
This patch renames this variable name.
Signed-off-by: IWASE Yusuke <[email protected]>
This patch enables mrtWriter to directly access config.MrtConfig values
in case that some new options will be introduced.
Signed-off-by: IWASE Yusuke <[email protected]>
This patch introduce "add-paths" structure per AFI-SAFI in order to
enable to store add-paths feature config/state per AFI-SAFI.
Also, this patch renames a few variables to avoid the name collisions.
Signed-off-by: IWASE Yusuke <[email protected]>
This patch enables GoBGP to keep the session established
even if the received BGPUpdate message contains some errors,
and to handle these errors according to what defined in RFC7606.
This feature is enabled when 'treat-as-withdraw' in
'neighbors.error-handling.config' is specified to true
in the GoBGP config file.
Signed-off-by: Satoshi Fujimoto <[email protected]>
To reduce the translations of "AfiSafiName" into "bgp.RouteFamily", this
patch introduces "Family" field into "AfiSafiState" and stores the
translated value.
Signed-off-by: IWASE Yusuke <[email protected]>
A new socket was created so we must close it before this function
returns _either_ on failure or success. On success, net.FileConn() in
newTCPConn() increases the refcount of the socket so this fi.Close()
doesn't destroy the socket; the caller can use it (and needs to close
it later).
Signed-off-by: FUJITA Tomonori <[email protected]>
RS peers and non RS peers uses different tables so no need to filter
paths from rs clients for non rs clients.
Signed-off-by: FUJITA Tomonori <[email protected]>
With Destination struct, multiple Paths can be moved from the table
package to the server package in a cleaner way; for features such as
add-path.
Signed-off-by: FUJITA Tomonori <[email protected]>
currently, route server peers and non route server peers use the
single global rib. To support deterministic-med for non route server
peers, this splits the rib into two; easier to handle the best path
selection in different ways.
Signed-off-by: FUJITA Tomonori <[email protected]>
Like "ttl" configuration of Junos OS, this patch enables to set static
TTL value for outgoing BGP packets.
Signed-off-by: IWASE Yusuke <[email protected]>
If State.NeighborAddress is not set, setting default configs
for the dynamic peers will fail. This patch set State.NeighborAddress
before setting default configs.
And this patch avoids overwriting State.NeighborAddress if it is set.
Signed-off-by: Satoshi Fujimoto <[email protected]>