Age | Commit message (Collapse) | Author |
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
|
|
It is possible that gobgp's v4 path structure contains mpreach or
mpunreach attribute. (we store entire path attributes in path structure as
they are received)
Since we use a NLRI field of BGP update message for v4 updates and don't
aggregate update/withdrawal messages for other address families, we need
to exclude these attribute before sending out v4 updates.
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
some implementations send a mpunreach attribute piggy backed on an
update message. Since it is stored in pathattrs of gobgp's path structure,
we need to exclude it before sending out update messages.
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
allocating 256 bytes per prefix isn't a good idea. Let's allocate 8
bytes by default and expand dynamically if necessary.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
With addpath support, two paths from API without AS_PATH attribute
could be compared.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
A certain bgp implementation crushes when receiving them.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
The local identifier for path is sent to remote peers.
To simplify the implementation,
1) the local identifier is unique per prefix not peer.
2) always assign the local identifier even without addpath-rx-capable peer.
In the future, we might need to improve 2) to avoid the unnecessary
overhead.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
$ gobgp neighbor <neighbor address>
ID Network Next Hop AS_PATH Age Attrs
2 10.0.0.10/32 10.10.1.2 01:05:35 [{Origin: i} {LocalPref: 100}]
1 10.0.0.10/32 10.10.1.1 01:05:35 [{Origin: i} {LocalPref: 100}]
3 10.1.0.10/32 10.10.1.3 01:05:35 [{Origin: i} {LocalPref: 100}]
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
|
|
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 <fujita.tomonori@lab.ntt.co.jp>
|
|
By introducing dynamic neighbor feature,
GoBGP can have dynamic neighbors,
and corresponding Config.NeighboAddress can be empty.
This patch sets State.NeighborAddress for all neighbors,
and gets the neighbor's address from them.
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
The usage of "github.com/sirupsen/logrus" is recommended.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
|
|
In NewDestination we add additional path to AddrToRadixkey to check
the concrete type of nlri.
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
we use the term replace-peer-as instead of as-override
since openconfig is using it.
cli
```
$ gobgp n add <neighbor-addr> as <asn> replace-peer-as
```
config
```
neighbor:
config:
peer-as: <asn>
neighbor-address: <neighbor-addr>
as-path-options:
config:
replace-peer-as: true
```
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
cli
```
$ gobgp n add <neighbor-addr> as <asn> remove-private-as (all|replace)
```
config
```
neighbor:
config:
peer-as: <asn>
neighbor-address: <neighbor-addr>
remove-private-as: all
```
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
At importing a path from an external peer, LOCAL_PREF can be set by an
import policy but at exporting a best path to an internal peer, this
learned, calculated LOCAL_PREF is never used and every time overwritten
by a default value 100.
According to RFC 4271 "5.1.5. LOCAL_PREF" and "9.1.1. Phase 1:
Calculation of Degree of Preference", the learned value should be
advertised to other internal peers.
This fixes it by just removing resetting a non-local path's LOCAL_PREF
by the default value.
|
|
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
when a peer having lots of routes goes down, the cloning paths consume
too much memory.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
|
|
since BGP unnumbered peers are typically trusted, skip asn negotiation
for easy configuration.
from configuration file:
```toml
[[neighbors]]
[[neighbors.config]]
neighbor-interface = "eth0"
```
from cli:
```
$ gobgp neighbor add interface eth0
```
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
|
|
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 <ishida.wataru@lab.ntt.co.jp>
|
|
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 <ishida.wataru@lab.ntt.co.jp>
|
|
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 <ishida.wataru@lab.ntt.co.jp>
|
|
$ gobgp g r 168.181.21.128/25 shorter-prefixes
Network not in table
$ gobgp g r 168.181.21.0/25 shorter-prefixes
Network Next Hop AS_PATH Age Attrs
*> 168.181.21.0/24 187.16.221.202 61580 04:17:41 [{Origin: i}]
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
|
|
Currently, Prefix structure wrongly handles IPv4-Mapped IPv6 Address
as v4.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
For BGP Nexthop Tracking, this patch enables table package to evaluate
the best path based on the nexthop reachability which validated by IGB.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
currently wrongly try to match prefixset for v4 to v6 routes, and vice versa.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
len(cur)-len(ps) is negative if the caller tries to remove more than
currently assigned policies.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
also, use it for zebra integration
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
|
|
old filtered value could be POLICY_DIRECTION_IMPORT
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
|
|
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
|
|
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
|
|
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
when multiple policies with modification actions are configured, use a path
structure which was applied to the previous policy.
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
when rpki validation condition is not configured ( c == "" ), don't
create an instance for validation.
this bug was breaking all policy mechanism when rpki server is configured.
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
before:
```yaml
actions:
route-disposition:
accept-route: true
reject-route: false
```
after
```yaml
action:
router-disposition: accept-route
```
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
move ROA under table package
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|
|
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
|