summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
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>
2019-08-21travis: drop goreleaseFUJITA Tomonori
replaced with github actions. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-08-21release automation by github actionsFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-08-21Support connecting zebra of cumulus linuxHitoshi Irino
2019-08-20Fix tools testCarl Baldwin
This changes the test to no longer reference $GOPATH. Instead, it removes `github.com/osrg/gobgp/` fore calling grep from the package name before calling grep so that it greps a location relative to wherever the script was located when it was called. This should work regardless of $GOPATH. The problem was that in a Travis CI run, the repository is not cloned to the correct spot under $GOPATH and the grep fails because it is looking in the wrong place. The repository is cloned to `/home/travis/build/osrg/gobgp` and GOPATH is set to `/home/travis/gopath` during a Travis run which don't match up.
2019-08-20test: fix the versions of fabric and invokeFUJITA Tomonori
Seems that the latest versions change the APIs so CI tests fails. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-08-06server: add addpath api leak testFUJITA Tomonori
test uuid map leak with implict withdraw. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-08-06Added CLI option to parser to allow setting MPLSoUDP (mpls-in-udp) as an ↵Peter Hill
encap type.
2019-08-05server: fix DeletePath() memory leakFUJITA Tomonori
DeletePath() doesn't delete the entry of the map for UUID. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-08-01v2.7.0FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-08-01docs: add aspath attribute to library usageFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-07-26pkg/packet/bgp: fix PathAttributeAs4Path to accept empty AS_PATHFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-07-26fix PeerGroup AFI handlingFUJITA Tomonori
This fixes a bug that the duplicated AFI is configured with the peer group. OverwriteNeighborConfigWithPeerGroup() appends the peer group's AFI configuration to the existing one instead overwriting. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-07-21Avoid panic by receiving vpnv6 prefixes with zebra reported in issue #2113Hitoshi Irino
- Additionally bug fix which avoid panic caused by displaying vpnv6 prefixes using gobgp vrf rib - Supporting FRRouting 7.1.x
2019-07-16gRPC docs: include all needed pathsGeorge Melikov
Signed-off-by: George Melikov <mail@gmelikov.ru>
2019-07-12use tha standard comment for machine-generated filesFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-07-02BGP connection on a speecified interface (including which is associated VRF) ↵Hitoshi Irino
using syscall SO_BINDTODEVICE
2019-07-01update goreleaser config fileFUJITA Tomonori
works with version 0.111.0. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-07-01v2.6.0FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-06-22Python3 support to gobgp testsFranza Cavalcante
This PR removes dependencies on old Fabric version, as it's not supported by Python3. The current Fabric versions don't support the colors and indent used previously, so we found substitute methods from other libraries and defined these in the library files. The local function from fabric is now just a wrapper to invoke's run function. All the files were processed through 2to3 command. All the tests were executed and we don't see any difference on the outputs when running Python2 or Python3. The creation of gobgp container is removed from base.py into fabfile.py, in order to comply with Fabric2 changes and simplify dependencies.
2019-06-17fix MPLS L3VPN functionality of zapiHitoshi Irino
2019-06-08Support ipv4-flowspec for VRF enslaved neighborMichael Lechner
2019-06-04rm VERSION fileFUJITA Tomonori
replaced by internal/pkg/version/version.go Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-06-03Add Versioning supportEmil Palm
2019-06-03travis: use longer timeoutFUJITA Tomonori
sometimes the unittest fails due to 120s timeout. The travis-ci might be overloaded? Let's see what happens with the longer timeout. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-06-02fix bug pointed out by issue #2089Hitoshi Irino
2019-06-01v2.5.0FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-05-26docs: remove obsolete rpki commandFUJITA Tomonori
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 <fujita.tomonori@gmail.com>
2019-05-16fix markdownlint warningsFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-05-16Fix cli crash when showing neighbor stats as list.Christoph Heiss
If the gRPC-server has TLS enabled, but the cli is used without TLS, it crashes when listing neighbors with a segfault due to an unhandled error.
2019-05-08zebra: fix unit test failure on non linuxFUJITA Tomonori
syscall.AF_INET/AF_INET6 are os/architecture specific. On some non Linux x86 architectures, failures like the following happen: --- FAIL: Test_NexthopRegisterBody (0.00s) Error Trace: zapi_test.go:893 Error: Not equal: 0x1e (expected) != 0xa (actual) Error Trace: zapi_test.go:894 Error: Not equal: net.IP{0x20, 0x1, 0xd, 0xb8, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1} (expected) != net.IP(nil) (actual) Diff: --- Expected +++ Actual @@ -1,2 +1,2 @@ -(net.IP) (len=16 cap=16) 2001:db8:1:1::1 +(net.IP) <nil> looks like that frr uses os/os/architecture specific values in the zapi message. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-05-08server: replace github.com/satori/go.uuidFUJITA Tomonori
satori/go.uuid broke the API without the major version updated. We could work around this with the module feature but looks like there is a better option, google/uuid, so let's replace it. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-05-08zebra: supporting FRRouting version 7Hitoshi Irino
- 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-02Consolidate duplicate code blocks both updating peer groupsCarl Baldwin
There were only two differences: 1) the first block updates `updatePolicy` and 2) the log statements are a little bit different (`pg.State` vs `pg.Config` and `%v` vs `%s`). To be consistent with the other blocks above it, changed to use `pg.Config` rather than `pg.State`.
2019-05-02v2.4.0FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-05-01zebra: using LABEL_MANAGER_CONNECT_ASYNC instead of LABEL_MANAGER_CONNECTHitoshi Irino
2019-04-16server: make ListPath API show filtered pathsFUJITA Tomonori
This adds the feature to show filtered paths by policies to ListPath API. with EnableFiltered in ListPathRequest enabled: - ListPath for adj-in sets filtered on paths filtered by policys - ListPath for adj-out includes paths filtered by policys with filtered set. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>