276 Commits
Author SHA1 Message Date
FUJITA Tomonori 4df939a3c9 docs: fix typo
Signed-off-by: FUJITA Tomonori <[email protected]>
2021-03-06 21:15:21 +09:00
FUJITA Tomonori 5b7e123820 docs: add next-hop action examples
Signed-off-by: FUJITA Tomonori <[email protected]>
2021-03-06 20:58:35 +09:00
Faicker MoandFUJITA Tomonori cd5671baee policy: add nexthop unchanged
Support config set-next-hop = "unchanged" and also cli command.

Signed-off-by: Faicker Mo <[email protected]>
2021-03-03 09:47:50 +09:00
Serguei BezverkhiandFUJITA Tomonori 283659d8b7 fix linting errors
Signed-off-by: Serguei Bezverkhi <[email protected]>
2020-12-02 07:21:01 +09:00
Serguei BezverkhiandFUJITA Tomonori 57068b16fd Add documentation, fix typo in proto and add marshal for tunne encal sub tlvs
Signed-off-by: Serguei Bezverkhi <[email protected]>
2020-12-02 07:21:01 +09:00
Serguei BezverkhiandFUJITA Tomonori ffe50e85d4 Add SR policy documentatiom
Signed-off-by: Serguei Bezverkhi <[email protected]>
2020-12-02 07:21:01 +09:00
Hitoshi Irino b55c32ce65 Support of FRR7.5
This commit works with FRR7.5 when "version = 6" is specified in zebra.config
- Changes Zebra internal API commands to FRR7.5 which is incompatible with older version.
- Changes SendHello() to include AFI
- Changes SendRouteIDAdd() to include AFI
- Changes decodeFromBytes/serialize of IPRouteBody and NexthopUpdateBody, because size of MESSAGE_FALG is changed.
2020-11-29 12:23:28 +09:00
Hitoshi Irino 7d6b9e78b0 Update zebra.md to fix markdownlint error 2020-07-27 07:06:52 +09:00
Hitoshi Irino efeb8c51fb zebra: refactoring and fix bug and add processing messageBackupNexthop (added in frr7.4)
- Move function for checking softwareName from internal/pkg/config/default.go to internal/pkg/zebra/zapi.go.
- Delete support for frr7.1.
- Fix bug by inverse processing MessageMTU and messageTag, and add messageTableId in decodeFromBytes and serialize of IPRouteBody.
- Add processing messageBackupNexthop (which is added in frr7.4) in decodeFromBytes and serialize of IPRouteBody.
- Update document.
2020-07-26 22:37:04 +09:00
Randy LamandGitHub ffa47a6c7e fix fragment with ether-type
Should be ether-type instead of fragment
2020-07-10 16:12:23 +08:00
FUJITA Tomonori 03f864a23f docs: update cli output
Signed-off-by: FUJITA Tomonori <[email protected]>
2020-03-05 14:28:44 +09:00
Hitoshi Irino 05a7e0e993 Supporting FRR7.2 2020-01-13 18:55:51 +09:00
FUJITA Tomonori 79a9e20096 docs: update python grpc code generation
Signed-off-by: FUJITA Tomonori <[email protected]>
2019-11-07 15:05:00 +09:00
FUJITA Tomonori a464d93cb3 docs: update bmp verification section
gobgmp was removed long ago. Add a pointer to other BMP server
implementations.

Signed-off-by: FUJITA Tomonori <[email protected]>
2019-10-18 10:13:08 +09:00
FUJITA Tomonori 03f8fb262c docs: update rpki config
Signed-off-by: FUJITA Tomonori <[email protected]>
2019-09-09 14:16:06 +09:00
Kevin KirscheandGitHub a7e6068fbd Fix error in BGP Confederation syntax
Sorry about this, I had forgot that TOML subtables require the name of the parent table in their path's. I've validated this configuration:

```
root@kkirsche-dev:/home/kkirsche# ./gobgpd -f config.toml
{"level":"info","msg":"gobgpd started","time":"2019-08-28T18:32:23Z"}
{"Topic":"Config","level":"info","msg":"Finished reading the config file","time":"2019-08-28T18:32:23Z"}
{"level":"info","msg":"Peer 10.0.0.2 is added","time":"2019-08-28T18:32:23Z"}
{"Topic":"Peer","level":"info","msg":"Add a peer configuration for:10.0.0.2","time":"2019-08-28T18:32:23Z"}
```

```
root@kkirsche-dev:# cat config.toml
[global]
  [global.config]
    as = 65001
    router-id = "10.0.0.1"
  [global.confederation.config]
    enabled = true
    identifier = 30
    member-as-list = [ 65002 ]
```
2019-08-28 14:33:00 -04:00
Kevin Kirsche bf2df3ec6f Add BGP Confederation documentation
Fix #2146
2019-08-27 15:36:48 -04:00
Hitoshi IrinoandFUJITA Tomonori 82f6a7c699 Support connecting zebra of cumulus linux 2019-08-21 08:58:25 +09:00
FUJITA Tomonori c17003e71b docs: add aspath attribute to library usage
Signed-off-by: FUJITA Tomonori <[email protected]>
2019-08-01 14:34:55 +09:00
Hitoshi Irino 7284d4cf8b Avoid panic by receiving vpnv6 prefixes with zebra reported in issue #2113
- Additionally bug fix which avoid panic caused by displaying vpnv6 prefixes using gobgp vrf rib
- Supporting FRRouting 7.1.x
2019-07-21 15:25:50 +09:00
George Melikov 4267098933 gRPC docs: include all needed paths
Signed-off-by: George Melikov <[email protected]>
2019-07-16 16:30:04 +03:00
FUJITA Tomonori 8fb71943c3 docs: remove obsolete rpki command
Long ago gobgp stored the validation results in memory but for reduce
memory usage, the cache was removed. Currently, every time you request
the validation result, gobgp validates paths with the latest ROAs.

Signed-off-by: FUJITA Tomonori <[email protected]>
2019-05-26 19:39:43 +09:00
FUJITA Tomonori 25428e881e fix markdownlint warnings
Signed-off-by: FUJITA Tomonori <[email protected]>
2019-05-16 20:59:53 +09:00
Hitoshi IrinoandFUJITA Tomonori 7d2823d4c0 zebra: supporting FRRouting version 7
- the "version" parameter (which means ZAPI) 6 in zebra config changes supporting FRRouting version 7 instead of FRRouting version 6.
 - the "software-name" parameter which supports backward compatibility is added in zebra config.
   (GoBGP support FRRouting version 6 when "version = 6" and "software-name = frr6" is configured.)
2019-05-08 08:48:26 +09:00
JieJhih JhangandFUJITA Tomonori 42feaea2a0 cmd/gobgp: Parse evpn IPMSI parameter 2019-04-11 07:30:35 +09:00
FUJITA Tomonori fa5878f6f3 docs: add how policy and soft reset works
Signed-off-by: FUJITA Tomonori <[email protected]>
2019-04-10 22:06:40 +09:00
Nasato GotoandFUJITA Tomonori 20d3254d3b docs: update image of route server policy model
Corresponding to Single RIB structure.
2019-03-29 16:11:00 +09:00
Hitoshi IrinoandFUJITA Tomonori b7189a6aca Updating documet integrating with FRRouting and use of mpls-label-range-size. 2019-03-14 21:20:31 +09:00
Vincent BernatandGitHub dc4d9c6d1b doc: fix "del" command for removing a neighbor
`gobgp neighbor delete` doesn't work. We need to use `gobgp neighbor del`.
2019-03-05 18:06:56 +01:00
FUJITA Tomonori 259d9b5264 docs: add v6 route example to lib
Signed-off-by: FUJITA Tomonori <[email protected]>
2019-02-19 12:37:27 +09:00
FUJITA Tomonori 662b711d32 docs: delete the description of obsolete mrt cli commands
Signed-off-by: FUJITA Tomonori <[email protected]>
2019-02-18 17:48:05 +09:00
Thomas RosensteinandFUJITA Tomonori 483a0b6e7d [Doc #1968] Add NeighborSet Warning 2019-02-16 18:16:00 +09:00
Artur Makutunowicz 48508c7f3d Add BGP-LS usage example 2019-01-31 12:21:16 -08:00
FUJITA Tomonori d2da513e32 docs: fix outdated comment of the gRPC API examples
Signed-off-by: FUJITA Tomonori <[email protected]>
2018-12-25 06:34:07 +09:00
FUJITA Tomonori 48fa25d06c docs: delete outdated java/nodejs/ruby gRPC API examples
Signed-off-by: FUJITA Tomonori <[email protected]>
2018-12-24 23:20:35 +09:00
FUJITA Tomonori bb1bbdd197 docs: update C++ gRPC API example
Signed-off-by: FUJITA Tomonori <[email protected]>
2018-12-24 23:18:37 +09:00
FUJITA Tomonori 28d96f985b docs: update python gRPC API example
Signed-off-by: FUJITA Tomonori <[email protected]>
2018-12-24 21:41:54 +09:00
FUJITA Tomonori 6b05d9db0f api: rename NlriAny in api.Path to Nlri
Also rename PathAttrsAny to PathAttrs. Both are the first choice
rather than the binary format members.

Support SortType member to ListPathRequest to add an option to return
unordered paths.

Signed-off-by: FUJITA Tomonori <[email protected]>
2018-11-16 16:49:49 +09:00
FUJITA Tomonori 99556f9cfc server: change monitor API design
https://github.com/osrg/gobgp/issues/1763#issuecomment-437594975

Follow Chris's proposal; consistent with the rest of the APIs.

Signed-off-by: FUJITA Tomonori <[email protected]>
2018-11-12 09:30:20 +09:00
FUJITA Tomonori 076d019b75 make gRPC server private
No need to be exported.

Signed-off-by: FUJITA Tomonori <[email protected]>
2018-11-09 19:10:43 +09:00
FUJITA Tomonori 809f941df9 docs/lib.md: add PeerMonitor API
Signed-off-by: FUJITA Tomonori <[email protected]>
2018-11-09 08:55:11 +09:00
FUJITA Tomonori 97ad6b32ee api: change Family
fixes #1812

Avoid the cast and use strightforward data strcuture; two variables
for afi and safi instead of squashing two into one variable.

Signed-off-by: FUJITA Tomonori <[email protected]>
2018-08-28 15:36:50 +09:00
FUJITA Tomonori 834fb80a88 fix library usage example
also enable the CI for it again.

Signed-off-by: FUJITA Tomonori <[email protected]>
2018-08-10 13:38:13 +09:00
[email protected]andFUJITA Tomonori 179824221b cmd: implement ebgp-multihop-ttl option when add neighbor
Signed-off-by: Chen Haiquan <[email protected]>
2018-07-14 15:27:53 +09:00
FUJITA Tomonori e4031c14a5 api: decrease the dependency
move grpc_server.go to server/

Signed-off-by: FUJITA Tomonori <[email protected]>
2018-07-06 23:56:54 +09:00
Marcin Ptaszyński 5fbd0cb243 table: support AfiSafiIn Policy Condition match 2018-06-13 20:53:17 -07:00
urbanandFUJITA Tomonori 5d15b3f290 table: support nexthop match policy 2018-06-05 19:57:21 +09:00
IWASE YusukeandFUJITA Tomonori 32f7faa8e7 config: Enable to configure VRF via config file
This patch enables to configure VRF tables by using config file. This
feature is useful when using VRF-Neighbor feature.

Example of Usage:

```toml
[[vrfs]]
  [vrfs.config]
    name = "vrf1"
    id = 1
    rd = "65000:100"
    both-rt-list = ["65000:100"]
```

Signed-off-by: IWASE Yusuke <[email protected]>
2018-05-10 21:12:30 +09:00
Paul GreenbergandFUJITA Tomonori 97eea7aac6 gobgp/cmd: add router-mac option for BGP EVPN Type 2
The `router-mac` option in `gobgp` CLI allows sending Router's
MAC Extended Community via BGP EVPN Type 2 and Type 5 advertisements.

As explained in below RFC draft, this community is used to carry the
MAC address of the VTEP where MAC-IP pair resides.

More info: For example, GoBGP router (R1) peers with Cisco router (R2).
R1 is used by an orchestraction platform, e.g. OpenStack, Docker Swarm,
etc., to advertise container MAC-IP bindings. When R1 advertises the
binding it also sets next hop for the route as the host where the MAC-IP
binding (i.e. container) resides. When R2 receives the route, it will
not install it unless Router's MAC Extended Community is present. R2
will use the MAC address in the community to create an entry in MAC
address table of R2 pointint to NVE interface.

```
gobgp global rib -a evpn add macadv e9:72:d7:aa:1f:b4 \
    172.16.100.100 etag 0 label 34567 rd 10.1.1.1:100 \
    rt 65001:100 encap vxlan nexthop 10.10.10.10 \
    origin igp router-mac e9:72:d7:aa:1f:b4

gobgp global rib -a evpn add nexthop 10.10.10.10 origin igp \
    prefix 172.16.100.100/32 esi 0 etag 0 rd 10.1.1.1:100 \
    rt 65001:100 gw 10.10.10.10 label 34567 encap vxlan \
    router-mac e9:72:d7:aa:1f:b4
```

In the above example, a host with IP of `10.10.10.10` runs a
container connected to an Open vSwitch instance. The container's IP
address is `172.16.100.100` and MAC address `e9:72:d7:aa:1f:b4`.
The Open vSwitch is VTEP with `tunnel_key=34567`, i.e. VNID `34567`.

GoBGP (R1) and Cisco (R2) routers are in BGP AS 65001. R1's IP is
`10.1.1.1`. R2 used RT of `65001:100` to import routes and place
them into appropriate VRF. In this case the VRF is associated with
L2VNI from VLAN 300. Upon the receipt of the above BGP EVPN
Type 2 and Type 5 routes, R2 will create create a MAC address
entry pointing to it's NVE interface with destination IP address
of `10.10.10.10`.

```
Legend:
        * - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC
        age - seconds since last seen,+ - primary entry using vPC Peer-Link,
        (T) - True, (F) - False, C - ControlPlane MAC
   VLAN     MAC Address      Type      age     Secure NTFY Ports
---------+-----------------+--------+---------+------+----+------------------
*  300     e972.d7aa.1fb4   static   -         F      F    nve1(10.10.10.10)
```

The R2 will use the `router-mac e9:72:d7:aa:1f:b4` as the destination MAC
address of the inner VXLAN packet. For example, an underlay host `20.20.20.20`
ping the container. The inner VXLAN L2 destination address is
`e9:72:d7:aa:1f:b4`. The inner VXLAN L2 source address is R2's MAC. The outer
VXLAN L3 source address, i.e. `10.2.2.2` is R2' NVE address.

```
OUTER VXLAN L2: 10:20:08:d0:ff:23 > b2:0e:19:6a:8d:51
OUTER VXLAN L3: 10.2.2.2.45532 > 10.10.10.10.4789: VXLAN, flags [I] (0x08), vni 34567
INNER VXLAN L2: 4e:f4:ca:aa:f6:7b > e9:72:d7:aa:1f:b4
INNER VXLAN L3: 20.20.20.20 > 172.16.100.100: ICMP echo reply, id 66, seq 1267, length 64
```

See also: https://tools.ietf.org/html/draft-sajassi-l2vpn-evpn-inter-subnet-forwarding-05#section-6.1

Signed-off-by: Paul Greenberg <[email protected]>
2018-05-08 09:57:33 +09:00
FUJITA Tomonori 34382909f0 docs: update policy about route server setup
Signed-off-by: FUJITA Tomonori <[email protected]>
2018-05-07 21:18:04 +09:00