addressing review comments

This commit is contained in:
Murali Reddy committed 2018-09-24 17:53:28 +05:30
1 parent 62758ca337
commit b3cb38eda4
2 files changed
+23 -11

No files matched your search

+18 -5
View File
@@ -583,10 +583,10 @@ type fastDatapathForwarder struct {
stopChan chan struct{}
stopped bool
healthy bool
establishedChan chan struct{}
errorChan chan error
healthChan chan bool
established bool
establishedChan chan struct{}
errorChan chan error
healthChan chan bool
}
func (fastdp fastDatapathOverlay) PrepareConnection(params mesh.OverlayConnectionParams) (mesh.OverlayConnection, error) {
@@ -725,6 +725,15 @@ func (fwd *fastDatapathForwarder) doHeartbeats() {
// that Forwarder is un-healthy so it can pick next best forwarder
fwd.healthChan <- false
// switch from fast-heartbeat to slow-heartbeat to avoid aggressive heartbeats
// when there is no estbalished session with peer yet
if fwd.heartbeatInterval != SlowHeartbeat {
fwd.heartbeatInterval = SlowHeartbeat
if fwd.heartbeatTimer != nil {
fwd.heartbeatTimer.Reset(fwd.heartbeatInterval)
}
}
if fwd.healthy {
fwd.healthy = false
} else {
@@ -860,8 +869,12 @@ func (fwd *fastDatapathForwarder) Attrs() map[string]interface{} {
func (fwd *fastDatapathForwarder) handleHeartbeatAck() {
log.Debug(fwd.logPrefix(), "handleHeartbeatAck")
if fwd.heartbeatInterval != SlowHeartbeat {
if !fwd.established {
close(fwd.establishedChan)
fwd.established = true
}
if fwd.heartbeatInterval != SlowHeartbeat {
fwd.heartbeatInterval = SlowHeartbeat
if fwd.heartbeatTimer != nil {
fwd.heartbeatTimer.Reset(fwd.heartbeatInterval)
+5 -6
View File
@@ -172,7 +172,7 @@ type subForwarderEvent struct {
err error
// event to indicate if forwarder is in healthy state to be considered for best forwarded
healthy bool
healthy *bool
}
func (osw *OverlaySwitch) PrepareConnection(params mesh.OverlayConnectionParams) (mesh.OverlayConnection, error) {
@@ -246,7 +246,6 @@ func (osw *OverlaySwitch) PrepareConnection(params mesh.OverlayConnectionParams)
func monitorForwarder(index int, eventsChan chan<- subForwarderEvent, stopChan <-chan struct{}, fwd OverlayForwarder) {
establishedChan := fwd.EstablishedChannel()
healthChan := fwd.HealthChannel()
loop:
for {
e := subForwarderEvent{index: index}
@@ -256,8 +255,8 @@ loop:
e.established = true
establishedChan = nil
case healthy := <-healthChan:
e.healthy = healthy
case healthy := <-fwd.HealthChannel():
e.healthy = &healthy
case err := <-fwd.ErrorChannel():
e.err = err
@@ -293,8 +292,8 @@ loop:
fwd.established(e.index)
case e.err != nil:
fwd.error(e.index, e.err)
default:
fwd.healthCheck(e.index, e.healthy)
case e.healthy != nil:
fwd.healthCheck(e.index, *e.healthy)
}
}
}