summaryrefslogtreecommitdiffhomepage
path: root/pkg/server/server.go
AgeCommit message (Collapse)Author
2021-10-15server: Do not crash the server if an empty request over gRPCDonatas Abraitis
goroutine 11 [running]: github.com/osrg/gobgp/pkg/server.newNeighborFromAPIStruct(0x0, 0xb5dd20, 0xc0000b3aa0, 0xc0002d4048) /home/donatas/projects/gobgp/pkg/server/grpc_server.go:643 +0x57 github.com/osrg/gobgp/pkg/server.(*BgpServer).AddPeer.func1(0x4a38c9, 0xb40bc0) /home/donatas/projects/gobgp/pkg/server/server.go:2940 +0x36 github.com/osrg/gobgp/pkg/server.(*BgpServer).handleMGMTOp(0xc0000f3680, 0xc0004e4348) /home/donatas/projects/gobgp/pkg/server/server.go:240 +0x47 github.com/osrg/gobgp/pkg/server.(*BgpServer).Serve(0xc0000f3680) /home/donatas/projects/gobgp/pkg/server/server.go:422 +0x735 created by main.main /home/donatas/projects/gobgp/cmd/gobgpd/main.go:153 +0x3cf To replicate: from __future__ import absolute_import from __future__ import print_function import grpc from google.protobuf.any_pb2 import Any import gobgp_pb2 import gobgp_pb2_grpc import attribute_pb2 _TIMEOUT_SECONDS = 1000 def run(): channel = grpc.insecure_channel('localhost:50051') stub = gobgp_pb2_grpc.GobgpApiStub(channel) peers = stub.AddPeer( gobgp_pb2.AddPeerRequest( ), _TIMEOUT_SECONDS, ) for peer in peers: print(peer) if __name__ == '__main__': run() Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-08-08server: fix ListVrf api to handle Name memberFUJITA Tomonori
Currently, just ignored. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2021-04-22Do not suppress initial non-established peer state in MonitorPeerCarl Baldwin
The issue with the initial update was that sometimes a connection had not yet been established. Trying to get remote and local connection data caused a segmentation violation because `fsm.conn` was nil. Also adds a flag to MonitorPeerRequest in the GRPC API to enable the new behavior to avoid backward incompatibility. fixes #2047
2021-03-29Added ListDynamicNeighbor message to APIMarcus Wichelmann
2021-03-29Added DeleteDynamicNeighbor message to APIMarcus Wichelmann
2021-03-29Added ListPeerGroup message to APIMarcus Wichelmann
2021-02-13feat: add option to bind listener to a (VRF) deviceMilan Lenco
Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
2020-11-29set shutdownWG to nil after stopBGP finishedDuan Jiong
otherwise gobgp will panic in handlefsmMsg when handle error condition Signed-off-by: Duan Jiong <duanjiong@yunify.com>
2020-11-06Adding gRPC support for modified logging levelSteve Shaw
Signed-off-by: Steve Shaw <shaw38@gmail.com>
2020-11-06Use MonitorTableRequest.Name to filter by peerAlistair King
Filter returned Paths based on provided peer address (similar to GetTable). This should improve performance when using MonitorTable with ADJ_IN and Current for a single peer.
2020-10-21api: add ListPathRequest's option to get binary of nlri and attributesFUJITA Tomonori
put the binary of nlri and path attribute to the response. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2020-10-20server: fix ListPolicyAssignment to handle empty policyFUJITA Tomonori
fix ListPolicyAssignment() return an assignment response even if the response doesn't have any policy. The assignment has default action policy so it's useful without any policy. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2020-09-16remove incomingCh when deleting dynamic peerChris Balmain
2020-04-26Refactoring Zebra and supporting frr7.3Hitoshi Irino
- Change const values to camel case from snake case to make zero golint's warnigns - Introduce convert functions (toEach, toCommon) between the newest version to older versions - Merge code about decode nexthop to reduce lines of code - Add frr7.3 statemet in allowable software for config - Rename and Update generated file by stringer
2020-02-19add support GetTable method for vrfs #2235Pavel Vorontsov
2020-01-05gobgpd: use map for validation tableToshiki Tsuchiya
`Table.destinations` is a map, so the order changes. This commit allows to get validate information from path by using map for validate table Fix: https://github.com/osrg/gobgp/issues/2223 Signed-off-by: Toshiki Tsuchiya <taruta0811@gmail.com>
2019-11-01bgp: fix dynamic neighbors with prefix "0.0.0.0/0"Faicker Mo
support prefix "0.0.0.0/0". Signed-off-by: Faicker Mo <faicker.mo@ucloud.cn>
2019-10-26avoid installing routes with originator ID to global when softresetinFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-10-23Split Reset into three methodsCarl Baldwin
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.
2019-10-22move roa table code to table/ from server/FUJITA Tomonori
As the name implies, table/ is more appropriate for roa table code. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
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-04Maintain unique vrf IDs in watchEventBestPath vrf mapmageshgv
Fixes missing route propagation to proper vrfs in zapi
2019-10-01Fix crash on nonexistent vrf deleteMagesh GV
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-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-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-07-02BGP connection on a speecified interface (including which is associated VRF) ↵Hitoshi Irino
using syscall SO_BINDTODEVICE
2019-06-08Support ipv4-flowspec for VRF enslaved neighborMichael Lechner
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-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>
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-29server: fix ListPath handle UseMultiPath optionFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-03-25support BMP sysName and sysDescr configurationJieJhih Jhang
2019-03-24server: broadcast BMPPeerDownMessage for peer deletionFUJITA Tomonori
Sends peerdown message when a peer is de-condigured and down. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-03-24fix race of peer deletionFUJITA Tomonori
Fixed a race bug that causes the unittest failure. Also fixed StopBgp() to block until all the peers are deleted cleanly. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
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-14pkg/server: fix global rib summary commandFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
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-15reset eor state on graceful-restart peer downwanghonghao
2019-02-15[Fix #1972] Fix returning of double list size, half nil valuesThomas Rosenstein
2019-01-27server: fix ListPolicyAssignmet() with empty nameFUJITA Tomonori
if the name isn't specified, the assignment of the global and route server clients. Non route server client doesn't have the assignment. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-01-25server: dynamic neighbor deletion panicFUJITA Tomonori
https://github.com/osrg/gobgp/commit/318a91e31b8baed86bb66a3767525da68ae49a5d The above commit added a bug to close a closed channel; after deleting a dynamic neighbor, handleFSMMessage() must return. Otherwise cleanInfiniteChannel() is called twice. https://travis-ci.org/osrg/gobgp/jobs/483896487 Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-01-17Allow graceful restart for dynamic neighborsFoivos Filippopoulos
2019-01-09silence staticcheck warningsFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>