summaryrefslogtreecommitdiffhomepage
path: root/server
AgeCommit message (Collapse)Author
2015-03-20api/cli: add show global commandISHIDA Wataru
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-20peer: update pathattr for non-route-server clientISHIDA Wataru
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-20server: add Global Rib to support normal BGP functionalityISHIDA Wataru
We handle Global Rib as a Peer. Normail (non route server client) peer has one sibling, Global Rib peer. Global Rib peer has all normal peers as siblings. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-19table: remove unnecessary distinction of pathsISHIDA Wataru
struct Path has a flag which can tell whether the path is withdrawal path or not. so table.ProcessPaths() needs not to return withdrawal path and non-withdrawal path separetly. this removes such unnecessary distinction. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-14server: fix handing of a connection closed by peerFUJITA Tomonori
When a peer closed a connection (e.g. after we send a notification), rx goroutine finds it immediately since read() returns an error and kills tomb. The problem is that tx goroutine doesn't check if tomb Dying() so tx doesn't die until tx tries to write keepalive to the socket (and it doesn't never happen if keepalive interval is zero). So fsm does't become idle shortly. This fixes tx to check Dying() and makes sure that it sends notification messages befor dying if they exists. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-10server: add helper function to send paths to siblingsFUJITA Tomonori
kill duplicated code. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-09server: handle the route family configuration mismatch with peerFUJITA Tomonori
Even if a peer is configured to support v4/v6, the peer might send only v4 capability with Open message. In this case, we have to send only ipv4 info. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-08server: adj-in/out supports route families rather than v4/v6FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-08server: support multiple route familes per peerFUJITA Tomonori
You can configure like the following: [Global] As = 65032 RouterId = "192.168.255.1" [[NeighborList]] NeighborAddress = "10.0.255.1" PeerAs = 65001 [NeighborList.RouteServer] RouteServerClient = true [[NeighborList.AfiSafiList]] AfiSafiName = "ipv4-unicast" [[NeighborList.AfiSafiList]] AfiSafiName = "ipv6-unicast" Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-07rest: support show table with specified route familyFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-06server: remove rf in ServerMsgFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-06table: NewTableManager takes route familiesFUJITA Tomonori
NewTableManager creates tables for only specified route families. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-06server: check route refresh afi and safiFUJITA Tomonori
If it's not valid, log a warning and ignore. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-06table: remove RF from PeerInfoFUJITA Tomonori
Cleanup for supporting multiple route families. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-03update the whole code for the latest openconfig yang filesFUJITA Tomonori
The modified openconfig yang files are available at: https://github.com/osrg/yang/tree/gobgp Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-03config: remove time.Time in BgpNeighborCommonStateTypeFUJITA Tomonori
This is part of work to remove time.Time in bgp_config.go since no nice way to represent time.Time with yang. We replace time.Time with int64. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-27server: implement softresetin and softresetFUJITA Tomonori
soft-reconfiguration inbound Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-27server: log warning when RouteRefresh but the capability wasn't advertisedFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-27server: handle ROUTE_REFRESH only when the capability is advertizedFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-25server: avoid duplicated logging (debug and warning) for notification messageFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-25server: warning when sending notification messageFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-25server: handle closed passiveConnCh channelFUJITA Tomonori
When a peer is deleted, passiveConnCh is closed implicitly. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-24cli: pretty up State printingFUJITA Tomonori
Explicitly show adminstate idle. fujita@ubuntu:~/git/gobgp$ ./cli/gobgpcli show neighbors Peer AS Up/Down State |#Advertised Received Accepted 10.0.255.1 65001 never Idle(Admin) | 0 0 0 Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-18server: clean up zero holdtimeFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-17peer: support hold time 0Hiroshi Yokoi
2015-02-16server: check the bgp message length before sendingFUJITA Tomonori
if the length is over 4096, the message will be dropped. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-16peer: support enable/disableHiroshi Yokoi
2015-02-16server: support discarded countersFUJITA Tomonori
fujita@ubuntu:~/git/gobgp$ ./cli/gobgpcli show neighbor 10.0.255.7 BGP neighbor is 10.0.255.7, remote AS 65070 BGP version 4, remote router ID 192.168.0.7 BGP state = BGP_FSM_ACTIVE, up for 0:00:01.982115 BGP OutQ = 0, Flops = 4 Neighbor capabilities: MULTIPROTOCOL: advertised and received ROUTE_REFRESH: advertised FOUR_OCTET_AS_NUMBER: advertised and received Message statistics: Sent Rcvd Opens: 4 4 Notifications: 4 0 Updates: 8 0 Keepalives: 4 4 Route Refesh: 0 0 Discarded: 0 4 Total: 20 12 Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-15test: not rely on the type check auto conversion in assert.EqualHiroshi Yokoi
2015-02-08server: always log when sending notificaitonFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-29server: verify OpenMessageFUJITA Tomonori
- BGP version (must be 4) - AS number - holdtime (0 or 3 <= or <= 65535) Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-29server: verify update messageFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-28table: add owner to NewTableManager's argumentsHiroshi Yokoi
2015-01-27server: set #Advertised to zero when peer is downFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-27cli: show the duration since state changedFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-27fsm_test: shorten wait timeHiroshi Yokoi
2015-01-26fsm: add OpenSent and OpenConfirm testcasesHiroshi Yokoi
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-26fsm: check hold timer expiration and add test case for holdtimer expiration ↵Hiroshi Yokoi
at Established state Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-22peer: fix commit a9e55d3bd75fd5dd633fee1ff2c9d45d6d6447ee reggressionFUJITA Tomonori
After became 'establish' state, we have to send update messages to the outstanding channel in _NEW_ fsm. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-19rest: support adj-rib-in/outHiroshi Yokoi
2015-01-18server: make sure peer always read from acceptedConnChFUJITA Tomonori
When acceptedConnCh is full, the server goroutine will be blocked. It's not good even eventually the goroutine will run. This situation happens only with buggy bgp speaerk peers. But let's avoid this anyway. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-18server: fix 'deleted config' raceFUJITA Tomonori
When a config is deleted, goroutine for FSMHandler.h.Dying becomes active. sendMessageloop must send notifcation before dying. So it should not check Dying(). After sending notificaiton, it closes the conneciton and return. It makes sure that rx goroutine will die too. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-18server: support idlehold time after resetFUJITA Tomonori
After resetting a peer, the peer will remain idle for idlehold time (by default 30 seconds). It can be configured via IdleHoldTImeAfterReset. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-18server: move outgoing and incoming channels to FSMHandlerFUJITA Tomonori
This patch solves the problem that old messages in outgoing will be sent in a new established session. Peer goroutine puts some messagages in the outgoing channel. Then the state changes from established. In such case, once the state becomes established, the "stale" messages in the outgoing channel will be sent. With this patch, new outgoing and incoming channels are created at every state change. No more "stale" messages in the channles. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-17server: implement OutQ and Flops supportFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-17cli: update show neighbors outputFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-16server: handle over 4096 byte size messageFUJITA Tomonori
send notification. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-16server: send proper notification when the config is deletedFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-16packet: handle malformed BGP HeaderFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-16api: add reset and shutdown supportFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>