summaryrefslogtreecommitdiffhomepage
path: root/server/fsm_test.go
AgeCommit message (Collapse)Author
2017-05-17server/fsm_test.go: fix race condition during testsChris Stockton
Add sync.Mutex to guard access to MockConnection to prevent tests ran with -race from failing. In addition change the calls to the fmt package to use t.Log show they only show with the -v flag to prevent unwanted noise between test runs. It has the added benefit of providing a file and line number as well.
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>
2016-11-17add go vet testWataru Ishida
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2016-10-09*: Notification support for BGP GRWataru Ishida
implement draft-ietf-idr-bgp-gr-notification-07 Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2016-06-23server: delete unused functions and variablesFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-06-15server: fix unit testFUJITA Tomonori
somehow travis-ci didn't catch Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-05-09server: fix to send more appropriate notification code/subcodeISHIDA Wataru
admin-down : 6/2 peer-as/neighbor-address : 6/3 other : 6/6 Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-04-19peer: remove redundant config structsISHIDA Wataru
preparation for #597 stop messing up where neighbor configuration is stored just keep it in each peers' fsm struct Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-04-10server: serialize in fsm send loopISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-03-31move packet/*.go to packet/bgp/*.go for Go's conventionFUJITA Tomonori
Later, we move non-bgp protocol stuff like mrt under their own direcotries. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-03-07server: make rx goroutine reading from socket never sleepFUJITA Tomonori
Currently, the rx goroutine reading from socket (recvMessageloop funciton) sleeps if msgCh is full. The problem is that if the rx goroutine stops reading from a socket, keepalives are ignored, the holdtime on gobgp expires even if a peer properly sends keepalives. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2016-02-10packet: improve graceful restart cap usabilityISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-01-29server: remove a redundant FSM negotiatedHoldtime fieldISHIDA Wataru
use config.TimerState struct instead Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-01-25fsm: add type FsmStateReason to track reason of state transitionISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2016-01-04server: handle open message only in fsmISHIDA Wataru
we don't need to spread this handling to peer.go and server.go Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-12-28config: make config/state variable name simpleISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-12-08server/table: use only one rib for multiple route server clientsISHIDA Wataru
speed up and reduce memory footprint Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-11-11server: expose fsmMsgType, fsmMsgISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-11-09server: move POLICY_DIRECTION_IN processing from peer to fsmFUJITA Tomonori
For parallel processing. Each peer's rx goroutine can process IN policy. Note that RWLock() should be called in looking at policies via grpc too but such operaitons are done in the main goroutine so not called. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-09-08api: kill api.CapabilityISHIDA Wataru
keep protobuf structures simple Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-12bgp/cli: support flowspec (RFC5575)ISHIDA Wataru
draft-ietf-idr-flowspec-redirect-rt-bis-05 is also implmented. TODO: draft-ietf-idr-flow-spec-v6-06 Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-31config: use the latest openconfig yangHiroshi Yokoi
2015-07-14server: fix fsm.keepaliveTicker raceFUJITA Tomonori
When fsm state goes to idle from established, fsm.keepaliveTicker is set to nil. This can happen before <-h.t.Dying() case in sendMessageloop(). This removes fsm.keepaliveTicker. Ticker is created locally. With this, a keepalive message could be sent from openconfirm to established with a shorter interval. But it should not break anything. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-06-10server: use write deadlineFUJITA Tomonori
Seems that write() is blocked forever when a connection is not cleanly closed. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-06-09server: kill peerMsgFUJITA Tomonori
Peers send and receive messages via channels, which could lead to a deadlock. With this patch, multiple goroutines are used for network I/Os per peer but one goroutine handle all ribs (including the global rib). So there is no messages via channels between peers. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-05-12fsm: fix homemade readAll()FUJITA Tomonori
Fix a received data corruption bug when a partial read happens. Let's use io.ReadFull() rather than the homemade one. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-25server: support active connectionISHIDA Wataru
md5 auth is not supported yet for active conntion Signed-off-by: ISHIDA Wataru <ishida.wataru@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-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-16peer: support enable/disableHiroshi Yokoi
2015-02-15test: not rely on the type check auto conversion in assert.EqualHiroshi Yokoi
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>