Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
The `policy` member of fsm is apparently never used. Clean it up to
avoid confusion. Policy is still set on the server and peers.
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
Fixes missing route propagation to proper vrfs in zapi
|
|
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>
|
|
|
|
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>
|
|
send large data rather than sending small repeatedly.
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>
|
|
currently, validate is executed even if the result is not necessary.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
Signed-off-by: Amit Nishry <amit.nishry@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
https://github.community/t5/GitHub-API-Development-and/How-to-restrict-execution-of-GitHub-Actions-workflow-on-tags/td-p/29567
'tags' doesn't work; the action is executed when anything (tag,
branch, etc) is created. Let's work around.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
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 ]
```
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
Reloading the config file on SIGHUP is behavior specific to gobgpd.
Attempts to expose it through the config API was awkward and could
make the api more confusing to use. This change moves that
functionality up into the gobgpd main and out of the library.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The initial configuration is only applied once right at the very
beginning. Everything after that is an update. This makes that
clearer.
|
|
|
|
|
|
|
|
Now that `c` is no longer referenced in the block above, its
assignement can be moved to later. This allows consolidating the two
assignements into one and moving them to the very end to magic the
logic clearer.
|
|
This block of code has for loops that shadow the variable `c` declared
above it. This commit makes the scoping a little clearer by using
newConfig where possible to avoid the ambiguity.
|
|
Fix #2146
|
|
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>
|
|
replaced with github actions.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|