summaryrefslogtreecommitdiffhomepage
path: root/server/server.go
AgeCommit message (Collapse)Author
2017-07-26add addpath send supportFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-26server: remove unnecessary Filter() in rsFUJITA Tomonori
RS peers and non RS peers uses different tables so no need to filter paths from rs clients for non rs clients. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-18server: Set incoming TTL before accepting connectionIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-07-18server: Set outgoing TTL before dialingIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-07-14server: Skip TCP MD5Sig sockopt when empty auth-passwordIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-07-04support addpath recvISHIDA Wataru
2017-07-04use Destination instead of Path for path selection APIFUJITA Tomonori
With Destination struct, multiple Paths can be moved from the table package to the server package in a cleaner way; for features such as add-path. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-04server: split rib into twoFUJITA Tomonori
currently, route server peers and non route server peers use the single global rib. To support deterministic-med for non route server peers, this splits the rib into two; easier to handle the best path selection in different ways. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-20peer: Check errors in creating Dynamic PeersSatoshi Fujimoto
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-06-16server: Support Dynamic NeighborSatoshi Fujimoto
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-06-16config: Use State to get NeighborAddress instead of ConfigSatoshi Fujimoto
By introducing dynamic neighbor feature, GoBGP can have dynamic neighbors, and corresponding Config.NeighboAddress can be empty. This patch sets State.NeighborAddress for all neighbors, and gets the neighbor's address from them. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-06-07replace github.com/Sirupsen/logrus with github.com/sirupsen/logrusFUJITA Tomonori
The usage of "github.com/sirupsen/logrus" is recommended. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-05*: Support Peer-Group ConfigurationSatoshi Fujimoto
This patch enables to create peer-groups, also supports dynamic configuration to peer-groups. Manually set fields in neighbor configs have priority over its peer-group's config, except some fields, like "peer-as", or "minimum-advertisement-interval" and so on. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-06-03server: Implement event for BGP message watcherIWASE Yusuke
This patch enables to watch events for monitoring received BGP messages before the state comparison. Note: Currently, this event nortifies UPDATE message only, because the other messages will be handled in FSMHandler and not received at BgpServer, so BgpServer cannot send event for these messages. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-06-01Fix RouteDistinguisher parsing and VPNV6 VRF rib parsingLamanna
2017-05-14server: avoid sending unwanted withdrawals to iBGP peersWataru Ishida
when the old best was from iBGP, we don't need to send withdrawals to iBGP peers. Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2017-05-09server: ignore routes when local AS is in AS_PATHISHIDA Wataru
RFC4271 9.1.2 Phase 2: Route Selection If the AS_PATH attribute of a BGP route contains an AS loop, the BGP route should be excluded from the Phase 2 decision function. AS loop detection is done by scanning the full AS path (as specified in the AS_PATH attribute), and checking that the autonomous system number of the local system does not appear in the AS path. Operations of a BGP speaker that is configured to accept routes with its own autonomous system number in the AS path are outside the scope of this document. Also this commit adds support for allow-own-as option to relax this. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2017-05-06cli: speed up showing a specific defined-setWataru Ishida
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2017-04-27server: fix handling bgp messages right after moving to idle state from ↵FUJITA Tomonori
established currently gobgpd continues to handle update messages even if becomedidle state from establised. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-04-20improve performance of getting single neighbor informationFUJITA Tomonori
avoid calculation of the number of adjout that will not be used. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-04-18policy: send a withdrawal if export policy blocks an existing routeISHIDA Wataru
This patch fixes a bug of export policy and implicit withdrawal. When a path is filtered by export policy, we need to check whether the old path (implicit withdrawn path) was sent before the new path. If it has been sent, we need to send a withdrawal message. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2017-04-04skip asn negotiation for BGP unnumbered peersISHIDA Wataru
since BGP unnumbered peers are typically trusted, skip asn negotiation for easy configuration. from configuration file: ```toml [[neighbors]] [[neighbors.config]] neighbor-interface = "eth0" ``` from cli: ``` $ gobgp neighbor add interface eth0 ``` Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2017-04-04server: fix bug of wrongly set <nil> to PeerInfo.LocalAddressISHIDA Wataru
config.TransportState.LocalAddress may have zone info with ipv6 address like "fe80::x%eth0". In this case, net.ParseIP() returns <nil>, which leads to set <nil> to PeerInfo.LocalAddress. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2017-04-01server: fix GetRib() to handle error properlyhepeng
fix a bug that GetRib() doesn't return an error even if an error happens.
2017-03-06server/zclient: Dampening for Nexthop TrackingIWASE Yusuke
This patch implents dampening for the Nexthop Tracking as Cisco's routers doing. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-03-06server/zclient: Update nexthop state based on NEXTHOP_UPDATEIWASE Yusuke
This patch enables server/zclient to update the metric or the reachability state to the nexthop for implementing the Nexthop Tracking features. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-03-05server: fix withdraw with ibgpFUJITA Tomonori
with two ibgp peers (a and b), when peer a advertizes one route and then withdraw it, there are two bugs: - gobgp sends withdrawal to peer a. - gobgp sends withdrawal to peer b. this fixes both. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-03-05server: avoid sending withdraw to peer just sent withdrawFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-02-18server: avoid accessing to globalRib before its initializationFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-02-15server: add a current option to WatchBestPath()ISHIDA Wataru
also, use it for zebra integration Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2017-02-03cli: Administrative Shutdown Communication on disable neighborIWASE Yusuke
This patch adds "--reason" option support into the disable neighbor command which can specify "Administrative Shutdown Communication" on the BGP Cease NOTIFICATION message. Usage: $ gobgp neighbor <neighbor address> disable --reason "some messages" Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-02-03cli: Communication on Administrative Shutdown NOTIFICATIONIWASE Yusuke
This patch enable to send an arbitrary message on the Cease NOTIFICATION message with "Administrative Shutdown" and "Administrative Reset" subcodes with "--reason" option. Usage: $ gobgp neighbor <neighbor address> shutdown --reason "some messages" $ gobgp neighbor <neighbor address> reset --reason "some messages" Reference: https://tools.ietf.org/html/draft-ietf-idr-shutdown-04 Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-01-29Fix End of RIB handlingEiichiro Watanabe
- All of EoR except IPv4 unicast have MP_UNREACH only. (RFC4724) - length of the MP_UNREACH attr. should be 3bytes. - length of the value should be 0bytes. - Should send EoR marker in initial exchange of BMP Route Monitoring. (RFC7854)
2017-01-22api: add a UUID field to Path structureWataru Ishida
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2017-01-21server: fix a bug of error handlingWataru Ishida
when using named return for management operations, we need to substitute the return value of (*BgpServer).mgmtOperation() to a valiable 'err' for proper error propagation. close #1215 Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2016-11-06server: refactor mgmt operationISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-11-06server: check server is up before admin operationISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2017-01-16GetVrf() cause bgpd panic if it is not startedksang
2016-12-19bmp: don't send paths already sent in case of softresetin happensWataru Ishida
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2016-12-19server: notify post policy update when soft-reset-in is triggeredWataru Ishida
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2016-12-10server: fix bug when global import policy rejects a routeWataru Ishida
routes rejected by global import policy was not deleted from RIB Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2016-12-02server: fix bug of deleteNeighbor()Wataru Ishida
cleaning outgoing channel while fsm handler is running may cause crash Dec 2 06:14:36 g2 gobgpd[6955]: {"Topic":"Peer","level":"info","msg":"Delete a peer configuration for:10.173.176.211","time":"2016-12-02T06:14:36Z"} Dec 2 06:14:36 g2 gobgpd[6955]: {"Data":"","Key":"10.173.176.211","Topic":"Peer","level":"warning","msg":"sent notification","time":"2016-12-02T06:14:36Z"} Dec 2 06:14:36 g2 gobgpd[6955]: {"Key":"10.173.176.211","Reason":"notification-sent code 6(cease) subcode 3(peer deconfigured)","State":"BGP_FSM_ESTABLISHED","Topic":"Peer","level":"info","msg":"Peer Down","time":"2016-12-02T06:14:36Z"} Dec 2 06:14:36 g2 gobgpd[6955]: panic: interface conversion: interface {} is nil, not *server.FsmOutgoingMsg Dec 2 06:14:36 g2 gobgpd[6955]: goroutine 69 [running]: Dec 2 06:14:36 g2 gobgpd[6955]: panic(0xd26200, 0xc82030c4c0) Dec 2 06:14:36 g2 gobgpd[6955]: /usr/local/go/src/runtime/panic.go:481 +0x3e6 Dec 2 06:14:36 g2 gobgpd[6955]: github.com/osrg/gobgp/server.(*FSMHandler).sendMessageloop(0xc8201a66e0, 0x0, 0x0) Dec 2 06:14:36 g2 gobgpd[6955]: /usr/local/opt/gopath/src/github.com/osrg/gobgp/server/fsm.go:1136 +0x3c3 Dec 2 06:14:36 g2 gobgpd[6955]: github.com/osrg/gobgp/server.(*FSMHandler).(github.com/osrg/gobgp/server.sendMessageloop)-fm(0x0, 0x0) Dec 2 06:14:36 g2 gobgpd[6955]: /usr/local/opt/gopath/src/github.com/osrg/gobgp/server/fsm.go:1175 +0x2e Dec 2 06:14:36 g2 gobgpd[6955]: gopkg.in/tomb%2ev2.(*Tomb).run(0xc8201a66e0, 0xc820278140) Dec 2 06:14:36 g2 gobgpd[6955]: /usr/local/opt/gopath/src/gopkg.in/tomb.v2/tomb.go:163 +0x21 Dec 2 06:14:36 g2 gobgpd[6955]: created by gopkg.in/tomb%2ev2.(*Tomb).Go Dec 2 06:14:36 g2 gobgpd[6955]: /usr/local/opt/gopath/src/gopkg.in/tomb.v2/tomb.go:159 +0x131 Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2016-11-24server: fix Watcher InfiniteChannel leakFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-11-21server: fix memory leak in infinite channel goroutineWataru Ishida
infinite channel has internal goroutine which won't stop until all items in the buffer are dequeued. Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2016-11-18server: disable advertised number calculation with multiple neighborsFUJITA Tomonori
AdjRibOut isn't in memory so needs to be calculated on the fly. Doing such for multiple neighbors consumes too much CPU (especially there are lots of routes). Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-11-17add go vet testWataru Ishida
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2016-11-15client: remove server package dependencyWataru Ishida
move ROA under table package Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2016-11-12server: remove adj-out usageFUJITA Tomonori
With this change, we could send unncessary messages but it's harmless (wastefull though). Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-11-12server: remove adj-out usage in filterpathFUJITA Tomonori
Preparation for removing in-memory adj-out. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-11-12table: use old best path instead of withdrawn pathsFUJITA Tomonori
Preparation for removing in-memory adj-out. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>