Age | Commit message (Collapse) | Author |
|
|
|
in gobgp policy.
|
|
so we can safely remove the MP_REACH_NLRI from ipv4_uc with ipv4 nexthop
|
|
Support config set-next-hop = "unchanged" and also cli command.
Signed-off-by: Faicker Mo <faicker.mo@ucloud.cn>
|
|
|
|
non-MP-capable peer
whereby MP-capable peer uses MP_REACH_NLRI to send updates to gobgp
gobgp accepts it but without setting NEXT_HOP pathattr
then gobgp propagates the paths to the non-MP-capable peer with update.NLRI set but without NEXT_HOP
the non-MP-capable peer will treat the update as withdraw message cause routes cannot propagate properly
|
|
probably regression due to the introduction of critbitgo.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
faster and less memory usage.
Now go-radix has gone.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
faster and less memory usage.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
There is no duplication of local id in the rib.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
faster and less memory usage.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
The Reset method was difficult to understand. The reason is that it
was called in three different ways and did different things in each
case. It is easier to read when the three different modes are each
their own method.
This came up as I was looking deeper into the threading model around
policies. I think this change makes it easier to understand the code.
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
As the name implies, table/ is more appropriate for roa table code.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
|
|
This just defers the read lock over some of the code that doesn't
inspect or modify any RoutingPolicy data. It allows the early returns
to happen without ever taking the read lock.
|
|
The best way to ensure that a lock will always get unlocked is to
defer the unlock immediately after locking. Otherwise, adding a return
statement in the middle somewhere *could* result in forgetting to
release the lock. One of these two cases has that.
This technique uses an anonymous function/closure within the larger
method to confine the scope of the lock and ensure that it will be
unlocked in every case.
|
|
Fixes LLGR community cleared on softreset.
Fixes AS Path looped routes added back to rib on Graceful Restart.
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
rib and adj-in use the same data strcutures. Needs more clean up.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
currently, validate is executed even if the result is not necessary.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
Fix a bug that the same path id is assigned to two paths. The bug
happens in the following way:
1. a new path is assigned to a local path id.
2. an import policy dropping the path from the master rib is added and
execute softreset in.
3. the path still exists in the adj but doesn't in the master. the
path id was freed (marked as unused).
5. a new path with the same prefix comes from another peer. The same
id is assigned to the new path.
6 deleted the policy and execute softreset in.
7 there are two paths in the master with the same path id.
This path guarantees that only when a path is removed in the adj, the
id for path is freed.
Note that this doesn't fatten Path strcuture, which should be avoided
for any reason.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
when a peer is down, use paths in its adj table instead of searching
for the global table.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
|
|
(introduced from PR osrg#1992, commit 3a79ad3) from table_manager.go to zclient.go
|
|
- Deleting receiveVrfId (which is introduced on 2 previous commit 90eeb5de870b95345650e3ee98741e040a0b6e93) from Path struct and Introducing pathVrf Map in zclient.
- Recovering logic (which is changed on 1 previous commit acfd5bedb6d94775392200db597a5ac420b31b2e) to use assignMplsLabel in server.go.
- Refectoring zclient's newIPRouteBody for deleating duplicate logic for IPv4 and IPv6.
|
|
|
|
- This commit aims to solve reported problem on issues #1611, #1648 and #1912
- Partial changes of this commit duplicate with changes on PR #1587 (not merged) and PR #1766 (not merged and already closed)
- This commit is tested with only FRRouting version 6.0.2 (which uses Zebra API 6)
- This commit fixes lack of LABEL_MANAGER_CONNECT_ASYNC for ZAPI6.
(This bug is introduced on commit 2bdb76f2dcf24b891f2b6327a57c31b26463b2dd "Supporting Zebra API version 6 which is used in FRRouting version 6")
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
- AddPath() with an api.Path object then DeletePath() works with the same api.Path object.
- ListPath() returns an api.Path object then DeletePath() works with the same api.Path object.
The above is guaranteed with and without PeerInfo (SourceAsn and SourceId).
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
this error can be reproduced by:
gobgp p statement s1 add action as-prepend 65001 1
gobgp p add p1 s1
gobgp n 192.168.0.5 p import add p1
gobgp n 192.168.0.5 softresetin
then:
panic: runtime error: invalid memory address or nil pointer dereference
|
|
|
|
The config is an internal package so it should not be exported.
NewAPIPolicyAssignmentFromTableStruct() is approprate for config/.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
The table is an internal package so it should not be exported.
NewAPIPolicyAssignmentFromTableStruct() is approprate for table/.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
|