summaryrefslogtreecommitdiffhomepage
path: root/internal/pkg
AgeCommit message (Collapse)Author
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-28Allow simple one-shot reading of the config fileCarl Baldwin
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-21Support connecting zebra of cumulus linuxHitoshi Irino
2019-08-01v2.7.0FUJITA 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-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-01v2.6.0FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-06-08Support ipv4-flowspec for VRF enslaved neighborMichael Lechner
2019-06-03Add Versioning supportEmil Palm
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-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-01zebra: using LABEL_MANAGER_CONNECT_ASYNC instead of LABEL_MANAGER_CONNECTHitoshi Irino
2019-04-12table: delete unused reason in Path structFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-04-02add secondary-route feature for router serverFUJITA Tomonori
if an export policy rejects a selected route, try the next route in order until one that is accepted is found or all routes for the peer are rejected. the default is disabled. You can enable this feature in the following way: [neighbors.route-server.config] route-server-client = true secondary-route = true Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-03-25support BMP sysName and sysDescr configurationJieJhih Jhang
2019-03-24table: fix Path.SetLargeCommunities not to set vacant communities valueNasato Goto
2019-03-17Deleteing goroutine for assignMplsLabel and moveing code relating MPLS L3VPN ↵Hitoshi Irino
(introduced from PR osrg#1992, commit 3a79ad3) from table_manager.go to zclient.go
2019-03-16Fixed typoszabio3
2019-03-14Refactoring source code for BGP/MPLS L3VPN with ZAPI 6Hitoshi Irino
- 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.
2019-03-14Fix bug using variable of zclient in AddVrf of server.go.Hitoshi Irino
2019-03-14Supporting BGP/MPLS L3VPNs with Frrouting Zebra API 6Hitoshi Irino
- 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")
2019-02-03Fix spells for keywords (vrfid, labelnum) in sprintf lineHitoshi Irino
2019-02-02Fix bug: processing MPLS label in nexthop update messageHitoshi Irino
2019-01-26Add experimental BGP-LS featureArtur Makutunowicz
2019-01-09silence staticcheck warningsFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2018-12-30zebra: Introducing MIN_ZAPIVER and MAX_ZAPIVER. And avoiding double close ↵Hitoshi Irino
channel when sequential retry to connect zebra. - Introducing MIN_ZAPIVER and MAX_ZAPIVER for avoiding editing files except for zapi.go when new ZAPI version will be supported in future. - Fix a bug avoiding panic by double close for a channel. - Changing algorithm for sequential retry to connect zebra.
2018-12-28fix bmp statisticsFUJITA Tomonori
fix the regression of the adj counter due to 301b48532d4a5510c9d4ffdc44eb2754fdd1a3d1 Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2018-12-23make the usage of type name in protobuf consistentFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2018-12-23make Add/Delete/ListPath APIs symmetricFUJITA Tomonori
- 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>
2018-12-19server: use Dialer Control method instead of hack to modify connection ↵FUJITA Tomonori
before dialing Use the feature of go 1.11 to remove the hack. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-12-16fix typo in zapi.go: LABLE -> LABELHitoshi Irino
2018-11-29server: fix nil pointer error when apply policyoc
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
2018-11-26support received, accepted, and advertised counters per familyFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-11-25api: remove AddPaths from Peer and PeerGroupFUJITA Tomonori
AddPaths in AfiSafi should be used; it can handle configuration per family. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-11-25api: move RouterId to PeerState from PeerConfFUJITA Tomonori
It's not configuration. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-11-24minor cleanup: update Gopkg.lock and erase redundant nil setSergey Elantsev
2018-11-23api: move remote_cap and local_cap to PeerState from PeerConfFUJITA Tomonori
Both should be in PeerState like OpenConfig. Also remove unused supported_capabilities. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-11-16api: rename NlriAny in api.Path to NlriFUJITA Tomonori
Also rename PathAttrsAny to PathAttrs. Both are the first choice rather than the binary format members. Support SortType member to ListPathRequest to add an option to return unordered paths. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-11-16use google/protobuf/timestamp.protoFUJITA Tomonori
use google/protobuf/timestamp.proto instead of our own way to represent time. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-11-12Support AdminDown from configEiichiro Watanabe
2018-11-07api: fix regression that match set option has no default valueoc
The commit 000589f3c "api: Implement UpdatePolicy()" introduced a regression: if match-set-options is not defined in config file, gobgpd starts with error: failed to get policy info: not found... This fix set match-set-options to default when needed.
2018-10-28move NewAPIRoutingPolicyFromConfigStruct() from server/FUJITA Tomonori
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>
2018-10-28move NewAPIPolicyAssignmentFromTableStruct() from server/FUJITA Tomonori
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>
2018-10-28move exported functions to generate api structs from config struct in server/FUJITA Tomonori
NewPeerFromConfigStruct() NewPeerGroupFromConfigStruct() NewGlobalFromConfigStruct() The config is an internal package so they should not be exported. We will remove the usage of the config in server/. This is a part of the goal. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>