summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2019-10-18Fix adj-out display with add path enabledmageshgv
2019-10-17Transition to graceful restart state on hold timer expiry if applicablemageshgv
2019-10-15Support vrfs in zapi multipathmageshgv
2019-10-15Avoid locking in cases that return immediatelyCarl Baldwin
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.
2019-10-15Keep Lock and defer Unlock togetherCarl Baldwin
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.
2019-10-11Remove policy from FSMCarl Baldwin
The `policy` member of fsm is apparently never used. Clean it up to avoid confusion. Policy is still set on the server and peers.
2019-10-06gobgp: fix rpki table printingFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-10-04Maintain unique vrf IDs in watchEventBestPath vrf mapmageshgv
Fixes missing route propagation to proper vrfs in zapi
2019-10-02Update adjrib for LLGR and preserve aslooped attrMagesh GV
Fixes LLGR community cleared on softreset. Fixes AS Path looped routes added back to rib on Graceful Restart.
2019-10-01v2.9.0FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-10-01Fix crash on nonexistent vrf deleteMagesh GV
2019-09-26table: add NewSingleAsPathMatch unittestFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-09-23table: fix SingleAsPathMatch pre compiled patternTatsushi Demachi
2019-09-17table: add more tests for adjFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-09-17table: implement adj-in table use routing table structuresFUJITA Tomonori
rib and adj-in use the same data strcutures. Needs more clean up. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-09-17server: improve ListPath's performanceFUJITA Tomonori
send large data rather than sending small repeatedly. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-09-12table: improve table.Info for global ribFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-09-09docs: update rpki configFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-09-08execute rpki validation for policy only when it's necessaryFUJITA Tomonori
currently, validate is executed even if the result is not necessary. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-09-02server: fix mrt injection raceFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-09-01Fix nexhop overwrite with gobgp mrt inject --no-ipv6 --nexthop x.x.x.xAmit Nishry
Signed-off-by: Amit Nishry <amit.nishry@gmail.com>
2019-09-01v2.8.0FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-08-29github: workaround for action trigger bugFUJITA Tomonori
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>
2019-08-28Fix error in BGP Confederation syntaxKevin Kirsche
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-28README: add link to confederation docFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-08-28Document config API and provide examplesCarl Baldwin
2019-08-28Pass context through configuration codeCarl Baldwin
2019-08-28Rename c to currentConfig to follow naming patternCarl Baldwin
2019-08-28Replace for and select with single for rangeCarl Baldwin
2019-08-28Remove loop functionCarl Baldwin
2019-08-28Move ReadConfigFileOnSighup to gobgpd mainCarl Baldwin
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.
2019-08-28Remove last remants of internal_cfgCarl Baldwin
2019-08-28Switch away from channel for one-off dry runCarl Baldwin
2019-08-28Split creation of config reading channelCarl Baldwin
2019-08-28Remove a reference to internalCarl Baldwin
2019-08-28config -> internal_configCarl Baldwin
2019-08-28Factor out stopServerCarl Baldwin
2019-08-28Move code to new public config packageCarl Baldwin
2019-08-28Allow simple one-shot reading of the config fileCarl Baldwin
2019-08-28Improve logic around applying configurationCarl Baldwin
The initial configuration is only applied once right at the very beginning. Everything after that is an update. This makes that clearer.
2019-08-28Extract methods to apply and update configCarl Baldwin
2019-08-28Create a clearer line between initial config and updating configCarl Baldwin
2019-08-28Factor out helpers for peer group and neighbor configCarl Baldwin
2019-08-28Move assignement of current config to the endCarl Baldwin
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.
2019-08-28Use newConfig more consistently when apply initial configurationCarl Baldwin
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.
2019-08-27Add BGP Confederation documentationKevin Kirsche
Fix #2146
2019-08-27fix duplicated local path id bugFUJITA Tomonori
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>
2019-08-27table: delete unused deleteDestByNlri()FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-08-26table: remove unused validation in originInfo structFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-08-26table: kill GetPathListByPeer()FUJITA Tomonori
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>