MCPcopy
hub / github.com/osrg/gobgp / loop

Method loop

pkg/server/bfd_server.go:183–219  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

181}
182
183func (s *bfdServer) loop() {
184 defer s.shutdownWait.Done()
185
186 for {
187 select {
188 case <-s.eventStartStop.C:
189 success := true
190
191 s.peersMutex.RLock()
192 peersLen := len(s.peers)
193 s.peersMutex.RUnlock()
194
195 if peersLen > 0 {
196 success = s.start()
197 } else {
198 s.stop()
199 }
200
201 if success {
202 s.eventStartStop.Stop()
203 }
204 case ev := <-s.eventConfig:
205 s.config = ev
206 case ev := <-s.eventPeerUpdate:
207 if ev.isAdd {
208 s.addBfdPeer(ev.peerAddress, ev.config, ev.bindInterface)
209 } else {
210 s.deleteBfdPeer(ev.peerAddress)
211 }
212
213 s.eventStartStop.Reset(time.Second)
214 case <-s.eventShutdown:
215 s.shutdown()
216 return
217 }
218 }
219}
220
221func (s *bfdServer) start() bool {
222 if s.udpServer == nil {

Callers 1

NewBfdServerFunction · 0.95

Calls 7

startMethod · 0.95
stopMethod · 0.95
addBfdPeerMethod · 0.95
deleteBfdPeerMethod · 0.95
shutdownMethod · 0.95
StopMethod · 0.45
ResetMethod · 0.45

Tested by

no test coverage detected