Age | Commit message (Collapse) | Author |
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
access
|
|
|
|
In case that GoBGP is used as Go native library, calling os.Exit() can
cause unexpected termination including application which uses GoBGP.
This patch removes calls of os.Exit() derived from BgpServer.Shutdown().
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
|
|
|
|
|
|
|
|
When multiple RTM NLRIs are composed in a single MP_REACH_NLRI, the
current implementation will fail to decode those NLRIs because
RouteTargetMembershipNLRI.DecodeFromBytes() tests the length of the
given bytes even if including the subsequent bytes.
This patch fixes to cut the bytes by using the prefix length before
testing the byte length.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
The current formats of the remote/local capabilities in message PeerConf
are the binary type representation, this patch fixes to use the
structures defined in capability.proto file.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Example of protoc command:
$ export PROTOBUF=${HOME}/protobuf/src
$ export GOBGP=${GOPATH}/src/github.com/osrg/gobgp
$ protoc \
-I ${PROTOBUF} \
-I ${GOBGP}/api \
--go_out=plugins=grpc:${GOBGP}/api \
${GOBGP}/api/gobgp.proto \
${GOBGP}/api/attribute.proto \
${GOBGP}/api/capability.proto
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
The current formats of the RD and import/export RTs in message Vrf are
the binary type representation, this patch fixes to use the structures
defined in attribute.proto file.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
|
|
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
|
|
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
Currently, StartServerAPI accepts few parameters
and setting such as BGP confederation and graceful restart
cannot be configured via gRPC API.
This commit fixes this API to accept all the parameters
which is configurable in a configuration file/
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
In order to integarate the setting via configuration files and via gRPC API,
This commit fixes gobgpd to use gRPC APIs
instead of using BgpServer functions directly, for consistency.
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
RedistributeRouteTypeList is []InstallProtocolType,
but InstallProtocolType only defines limited number of protocols,
And currently, EnableZebra() in gRPC API validates its request
with the protocols defined by InstallProtocolType,
so the protocols such as "babel" or "lldp" could not be configured
to Zebra, via gRPC API.
This patch fixes RedistributeRouteTypeList to be []string,
and fixes EnableZebra() to validate with the protocols defined
in zapi.go.
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
This reduces the table.Path size from 88 to 72 which adds up considerably
since it is the most allocated persistent object.
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Example of protoc command:
$ export PROTOBUF=${HOME}/protobuf/src
$ export GOBGP=${GOPATH}/src/github.com/osrg/gobgp
$ protoc \
-I ${PROTOBUF} \
-I ${GOBGP}/api \
--go_out=plugins=grpc:${GOBGP}/api \
${GOBGP}/api/gobgp.proto \
${GOBGP}/api/attribute.proto
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
"gobgp/lib" can be independent from "gobgpapi" package, this patch
removes the usage of utility function "ToPathApi()" in this package.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
CreateUpdateMsgFromPaths() assumes that a path has a proper hash
value. If a path doesn't, the function takes too long.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Otherwise, we get something like this:
BGP neighbor is 2001:db8:4::2, remote AS 65000
BGP version 4, remote router ID unknown
BGP state = active, up for 17692d 16:53:12
|
|
Since the RFC is only a draft, IANA didn't attribute a code yet.
However, Juniper is supporting this feature since a long time and is
using 71. I don't know if Cisco is using the same value. BIRD will
ship soon with this capability too and will use 71 too. Wireshark also
understands capability code 71 as LLGR.
Tested with Juniper vRR 16.1 and this configuration:
```yaml
peer-groups:
- config:
peer-group-name: others
peer-as: 65000
ttl-security:
config:
enabled: true
ttl-min: 255
graceful-restart:
config:
enabled: true
long-lived-enabled: true
notification-enabled: true
restart-time: 1
afi-safis:
- config:
afi-safi-name: ipv6-unicast
mp-graceful-restart:
config:
enabled: true
long-lived-graceful-restart:
config:
enabled: true
restart-time: 120
```
Enabling regular graceful restart for the appropriate AFI/SAFI is
needed to make LLGR work on the Juniper side. Unfortunately, GoBGP
doesn't allow to set restart-time to 0 (this is the same as using the
default value of 90s), therefore we have a small delay before LLGR
kicks in (during which routes are preserved). A way to set restart
time to 0 would be welcome.
|
|
fix a bug that doesn't return validation results at all.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
It is possible for a call from other Table methods for an interface that does
not match the tables route family to reach the type assertion and panic. This
change better reflects the intention of the code by checking the concrete type
using a type switch instead.
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Currently, only IPv4 address is acceptable for the CLUSTER_ID setting,
this patch enables to specify the CLUSTER_ID as a 32-bit unsigned
integer.
With this expansion, "Config.RouteReflectorClusterId" stores the raw
configured value for the CLUSTER_ID and "State.RouteReflectorClusterId"
stores the value used for construct the CLUSTER_LIST attribute.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Adds an unit test for ed3f7b711c92c69bf231bc9e6a06312b23270db0
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
|
|
uppercase letter as is required for Ruby constants"
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
We should do stricter validation. Probably, we should use
packet/bgp/validate.go.
close #1660
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Adds a user-friendly error message on gRPC connection error.
Resolves: #1701
Signed-off-by: Paul Greenberg <greenpau@outlook.com>
|
|
the commit 8c453bc9369e4cd96d19b9598bebb0ea2e23e991 fixes
NewROAListFromApiStructList() to check an error strictly. However,
this breaks the rpki table command:
$ gobgp rpki table
invalid CIDR address: 1.0.16.0
NewROAListFromApiStructList() has a bug about getting the address
family from an IP address. The address family was not used (other
information are used though) so before the commit, the command worked.
This fixes the bug in NewROAListFromApiStructList().
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
This patch adds checks to confirm the stale paths are also removed from
the adj-RIB-in table.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
This patch fixes to assert the Graceful Restart time is not expired
while waiting for re-establishing peer connection.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|