summaryrefslogtreecommitdiffhomepage
path: root/server
AgeCommit message (Collapse)Author
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>
2015-01-15server: fix a bug that conneciton is closed before sending notificationFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-14server: close the connection after sending notificationFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-12server: fix recvMessageloop() error handlingFUJITA Tomonori
We could get errors from Read(). Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-11packet: rename PacketParseError to MessageErrorFUJITA Tomonori
Handle not only parsing error. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-11packet: add data length check and notificationHiroshi Yokoi
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-09server: fix MessageStateUpdate UsageFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-08server: drop all paths in adj-in when peer is downFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-08server: clean up logging messagesFUJITA Tomonori
Use Fields. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-07server: set ttl to 1FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-07server: dump bgp message with peer addresssFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-07table: fix UpdatePathAttrs2ByteASFUJITA Tomonori
Fix the bug that UpdatePathAttrs2ByteAS modifies the _ORIGINAL_ path attributes in rib. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-06cli: improve the capability representationFUJITA Tomonori
Show both advertised and received caps like: fujita@ubuntu:~/git/gobgp$ ./cli/gobgpcli show neighbor 10.0.0.2 BGP neighbor is 10.0.0.2, remote AS 64515 BGP version 4, remote router ID 192.168.0.2 BGP state = BGP_FSM_ESTABLISHED, up for 0:09:28.011988 Neighbor capabilities: MULTIPROTOCOL: advertised and received ROUTE_REFRESH: advertised and received FOUR_OCTET_AS_NUMBER: advertised and received ROUTE_REFRESH_CISCO: received Message statistics: Sent Rcvd Opens: 2 1 Notifications: 0 0 Updates: 0 0 Keepalives: 18 1 Route Refesh: 0 0 Total: 20 2 Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-05cli: improve the state of neighborFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-04table: remove Path's source versionFUJITA Tomonori
Even if a connection with peer is down and up, table code gets BGPmessages belonging the first connection before the event of the peer down in order. So we don't need source version stuff inherent from Ryu BGP code. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-03server: fix PEER_MSG_PATH about rfFUJITA Tomonori
send PEER_MSG_PATH to only peers that have the same rf. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-03server: properly handle peer configured laterFUJITA Tomonori
- send adj-in in all the existing peers to a peer configured after gobgpd started. - peer sends update message information (path) to another peer directly instead of via gobgpd (this improves the performance) Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-03server: merge eventCh and incoming channelsFUJITA Tomonori
We need the order of events on two channles so this patch merges two channels. For example, we need to get received OpenMessage before moving to establish state. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-01server: clean up channel usage for network IOFUJITA Tomonori
- use peer.incoming channel directly. - remove state checking for outgoing messages since peer.go does. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-01-01server: move peerInfo to peer.go from fsm.goFUJITA Tomonori
No good reason to keep peerInfo in fsm.go Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-31server: merge bgp update messages if possibleFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-31server: handle peer not capable of four byte AS numberFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-30table: make path.Clone privateFUJITA Tomonori
table_manager.go clones withdraw path before passing it to peer.go clone() doesn't clone pathattributes. This patch adds a helper funciton to clone PathAttributes to message.go (it is used by createing BGPUpdate message to withdraw ipv6. later it will be used for 2 byte AS peer). Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-30serve: move functions about path and bgp message to table/message.goFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-30table: use Path as API instead of destinationFUJITA Tomonori
ProcessPaths and DeletePathsforPeer API uses both Path and Destination for outside. There is no good reason to use Destination. Let's use Path. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-27RouteFamily cleanupFUJITA Tomonori
RouteFamily is defined in two files. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-27support IPv6_UC route familyFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-25rest: use []byte instead of interface{} for REST responseFUJITA Tomonori
Some Marshall method is not thread-safe. They can't be called by a goroutine for a REST client. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-25server: update state and counter properlyFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-25rest: kill RestResponse interfaceFUJITA Tomonori
We can use RestResponse struct for all request types. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-25server: support /neighbors URLFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-25rest: use interface{} for REST responseFUJITA Tomonori
Then rest.go can use an appropriate format. Likelly we support only JSON though. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-25peer: add MarshalJSON functionHiroshi Yokoi
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-25rest: support local-rib URLFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-23server: update Uptime and UpdateRecvTimeFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-23server: increment EstablisedCountFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-23server: delete obsolete commentFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-23server: support ROUTE_REFRESHFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2014-12-23packet: define FSMStateFUJITA Tomonori
Then we can use stringer nicely. Now FSMstate shows nicely like: DEBU[0081] Peer (10.0.0.1) state changed from BGP_FSM_ACTIVE to BGP_FSM_OPENSENT Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>