Loading go-apps/meep-tc-engine/routing-engine.go +3 −1 Original line number Original line Diff line number Diff line Loading @@ -94,7 +94,9 @@ func (re *RoutingEngine) RefreshLbRules() { // Set load balanced MG Service instance // Set load balanced MG Service instance for _, svcMap := range netElem.ServiceMaps { for _, svcMap := range netElem.ServiceMaps { podInfo.MgSvcMap[svcMap.MgSvcName] = svcInfoMap[svcMap.LbSvcName] if svcInfo, found := svcInfoMap[svcMap.LbSvcName]; found { podInfo.MgSvcMap[svcMap.MgSvcName] = svcInfo } } } } } Loading go-apps/meep-tc-sidecar/main.go +56 −41 Original line number Original line Diff line number Diff line Loading @@ -278,8 +278,8 @@ func initMeepSidecar() (err error) { // Initialize latency results // Initialize latency results latestLatencyResultsMap = make(map[string]int32) latestLatencyResultsMap = make(map[string]int32) // Refresh Ping destinations // Refresh destinations refreshPingDests() refreshDests() return nil return nil } } Loading Loading @@ -335,8 +335,8 @@ func refreshNcRules() { elapsed := time.Since(currentTime) elapsed := time.Since(currentTime) log.Debug("refreshNcRules: execution time for ", nbAppliedOperations, " updates, elapsed time: ", elapsed) log.Debug("refreshNcRules: execution time for ", nbAppliedOperations, " updates, elapsed time: ", elapsed) // Refresh ping destinations // Refresh destinations refreshPingDests() refreshDests() } } func refreshLbRules() { func refreshLbRules() { Loading Loading @@ -569,22 +569,38 @@ func refreshLbRulesHandler(key string, fields map[string]string, userData interf return nil return nil } } // refreshPingDests - Refresh ping destinations to match valid DB entries // refreshDests - Refresh destinations to match valid DB entries func refreshPingDests() { func refreshDests() { // Get list of destinations with valid IP addresses // Get list of destinations with valid IP addresses var pingDests []DestElement var destElems []DestElement keyName := baseKey + typeNet + ":" + PodName + ":filter*" keyName := baseKey + typeNet + ":" + PodName + ":filter*" err := rc.ForEachEntry(keyName, refreshPingDestsHandler, &pingDests) err := rc.ForEachEntry(keyName, refreshDestsHandler, &destElems) if err != nil { if err != nil { log.Error("Failed to update dest pod list. Error: ", err) log.Error("Failed to update dest pod list. Error: ", err) } } // Create new dest list semOptsDests.Lock() dests := []*destination{} defer semOptsDests.Unlock() for _, pingDest := range pingDests { remotes, err := resolve(pingDest.ipAddr, opts.resolverTimeout) // Find existing elements or add new elements var dests []*destination for _, destElem := range destElems { // Find existing destination found := false for _, d := range opts.dests { if destElem.name == d.remoteName && destElem.ipAddr == d.host && destElem.IfbNumber == d.ifbNumber { dests = append(dests, d) found = true break } } // Create a new destination if not found if !found { remotes, err := resolve(destElem.ipAddr, opts.resolverTimeout) if err != nil { if err != nil { log.Debug("error resolving host ", pingDest.name, "(", pingDest.ipAddr, ") err: ", err) log.Debug("error resolving host ", destElem.name, "(", destElem.ipAddr, ") err: ", err) continue continue } } Loading @@ -594,13 +610,13 @@ func refreshPingDests() { } } ipaddr := remote // need to create a copy ipaddr := remote // need to create a copy name := pingDest.name name := destElem.name dest := destination{ dest := destination{ host: pingDest.ipAddr, host: destElem.ipAddr, hostName: PodName, hostName: PodName, remote: &ipaddr, remote: &ipaddr, remoteName: name, remoteName: name, ifbNumber: pingDest.IfbNumber, ifbNumber: destElem.IfbNumber, history: &history{ history: &history{ results: make([]time.Duration, opts.statBufferSize), results: make([]time.Duration, opts.statBufferSize), }, }, Loading @@ -614,15 +630,14 @@ func refreshPingDests() { dests = append(dests, &dest) dests = append(dests, &dest) } } } } } // Update ping dest list // Update dests semOptsDests.Lock() opts.dests = dests opts.dests = dests semOptsDests.Unlock() } } func refreshPingDestsHandler(key string, fields map[string]string, userData interface{}) error { func refreshDestsHandler(key string, fields map[string]string, userData interface{}) error { pingDests := userData.(*[]DestElement) dests := userData.(*[]DestElement) var dest DestElement var dest DestElement dest.name = fields["srcName"] dest.name = fields["srcName"] dest.ipAddr = fields["srcIp"] dest.ipAddr = fields["srcIp"] Loading @@ -630,7 +645,7 @@ func refreshPingDestsHandler(key string, fields map[string]string, userData inte // Append valid pods only // Append valid pods only if dest.ipAddr != ipAddrNone { if dest.ipAddr != ipAddrNone { *pingDests = append(*pingDests, dest) *dests = append(*dests, dest) } } return nil return nil } } Loading Loading
go-apps/meep-tc-engine/routing-engine.go +3 −1 Original line number Original line Diff line number Diff line Loading @@ -94,7 +94,9 @@ func (re *RoutingEngine) RefreshLbRules() { // Set load balanced MG Service instance // Set load balanced MG Service instance for _, svcMap := range netElem.ServiceMaps { for _, svcMap := range netElem.ServiceMaps { podInfo.MgSvcMap[svcMap.MgSvcName] = svcInfoMap[svcMap.LbSvcName] if svcInfo, found := svcInfoMap[svcMap.LbSvcName]; found { podInfo.MgSvcMap[svcMap.MgSvcName] = svcInfo } } } } } Loading
go-apps/meep-tc-sidecar/main.go +56 −41 Original line number Original line Diff line number Diff line Loading @@ -278,8 +278,8 @@ func initMeepSidecar() (err error) { // Initialize latency results // Initialize latency results latestLatencyResultsMap = make(map[string]int32) latestLatencyResultsMap = make(map[string]int32) // Refresh Ping destinations // Refresh destinations refreshPingDests() refreshDests() return nil return nil } } Loading Loading @@ -335,8 +335,8 @@ func refreshNcRules() { elapsed := time.Since(currentTime) elapsed := time.Since(currentTime) log.Debug("refreshNcRules: execution time for ", nbAppliedOperations, " updates, elapsed time: ", elapsed) log.Debug("refreshNcRules: execution time for ", nbAppliedOperations, " updates, elapsed time: ", elapsed) // Refresh ping destinations // Refresh destinations refreshPingDests() refreshDests() } } func refreshLbRules() { func refreshLbRules() { Loading Loading @@ -569,22 +569,38 @@ func refreshLbRulesHandler(key string, fields map[string]string, userData interf return nil return nil } } // refreshPingDests - Refresh ping destinations to match valid DB entries // refreshDests - Refresh destinations to match valid DB entries func refreshPingDests() { func refreshDests() { // Get list of destinations with valid IP addresses // Get list of destinations with valid IP addresses var pingDests []DestElement var destElems []DestElement keyName := baseKey + typeNet + ":" + PodName + ":filter*" keyName := baseKey + typeNet + ":" + PodName + ":filter*" err := rc.ForEachEntry(keyName, refreshPingDestsHandler, &pingDests) err := rc.ForEachEntry(keyName, refreshDestsHandler, &destElems) if err != nil { if err != nil { log.Error("Failed to update dest pod list. Error: ", err) log.Error("Failed to update dest pod list. Error: ", err) } } // Create new dest list semOptsDests.Lock() dests := []*destination{} defer semOptsDests.Unlock() for _, pingDest := range pingDests { remotes, err := resolve(pingDest.ipAddr, opts.resolverTimeout) // Find existing elements or add new elements var dests []*destination for _, destElem := range destElems { // Find existing destination found := false for _, d := range opts.dests { if destElem.name == d.remoteName && destElem.ipAddr == d.host && destElem.IfbNumber == d.ifbNumber { dests = append(dests, d) found = true break } } // Create a new destination if not found if !found { remotes, err := resolve(destElem.ipAddr, opts.resolverTimeout) if err != nil { if err != nil { log.Debug("error resolving host ", pingDest.name, "(", pingDest.ipAddr, ") err: ", err) log.Debug("error resolving host ", destElem.name, "(", destElem.ipAddr, ") err: ", err) continue continue } } Loading @@ -594,13 +610,13 @@ func refreshPingDests() { } } ipaddr := remote // need to create a copy ipaddr := remote // need to create a copy name := pingDest.name name := destElem.name dest := destination{ dest := destination{ host: pingDest.ipAddr, host: destElem.ipAddr, hostName: PodName, hostName: PodName, remote: &ipaddr, remote: &ipaddr, remoteName: name, remoteName: name, ifbNumber: pingDest.IfbNumber, ifbNumber: destElem.IfbNumber, history: &history{ history: &history{ results: make([]time.Duration, opts.statBufferSize), results: make([]time.Duration, opts.statBufferSize), }, }, Loading @@ -614,15 +630,14 @@ func refreshPingDests() { dests = append(dests, &dest) dests = append(dests, &dest) } } } } } // Update ping dest list // Update dests semOptsDests.Lock() opts.dests = dests opts.dests = dests semOptsDests.Unlock() } } func refreshPingDestsHandler(key string, fields map[string]string, userData interface{}) error { func refreshDestsHandler(key string, fields map[string]string, userData interface{}) error { pingDests := userData.(*[]DestElement) dests := userData.(*[]DestElement) var dest DestElement var dest DestElement dest.name = fields["srcName"] dest.name = fields["srcName"] dest.ipAddr = fields["srcIp"] dest.ipAddr = fields["srcIp"] Loading @@ -630,7 +645,7 @@ func refreshPingDestsHandler(key string, fields map[string]string, userData inte // Append valid pods only // Append valid pods only if dest.ipAddr != ipAddrNone { if dest.ipAddr != ipAddrNone { *pingDests = append(*pingDests, dest) *dests = append(*dests, dest) } } return nil return nil } } Loading