Loading go-apps/meep-mg-manager/server/mg-manager.go +6 −0 Original line number Diff line number Diff line Loading @@ -941,6 +941,9 @@ func mgAppCreate(mgName string, mgApp *mgModel.MobilityGroupApp) error { // Store & Apply latest MG Service mappings applyMgSvcMapping() // Inform TC Engine of LB rules updatge publishLbRulesUpdate() return nil } Loading Loading @@ -1038,6 +1041,9 @@ func mgUeCreate(mgName string, appID string, mgUe *mgModel.MobilityGroupUe) erro // Store & Apply latest MG Service mappings applyMgSvcMapping() // Inform TC Engine of LB rules updatge publishLbRulesUpdate() } return nil } Loading go-apps/meep-tc-engine/routing-engine.go +17 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,17 @@ const typeMeSvc string = "ME-SVC" const typeIngressSvc string = "INGRESS-SVC" const typeEgressSvc string = "EGRESS-SVC" const fieldSvcType string = "svc-type" const fieldSvcName string = "svc-name" const fieldSvcIp string = "svc-ip" const fieldSvcProtocol string = "svc-protocol" const fieldSvcPort string = "svc-port" const fieldLbSvcName string = "lb-svc-name" const fieldLbSvcIp string = "lb-svc-ip" const fieldLbSvcPort string = "lb-svc-port" const fieldLbPodName string = "lb-pod-name" const fieldLbPodIp string = "lb-pod-ip" const DEFAULT_LB_RULES_DB = 0 // LbRulesStore - Loading Loading @@ -143,6 +154,8 @@ func (re *RoutingEngine) applyLbRules() { fields[fieldLbSvcName] = svcInfo.Name fields[fieldLbSvcIp] = tce.ipManager.GetSvcIp(svcInfo.Name) fields[fieldLbSvcPort] = portInfo.Port fields[fieldLbPodName] = svcInfo.Node fields[fieldLbPodIp] = tce.ipManager.GetPodIp(svcInfo.Node) // Make unique key key := tce.netCharStore.baseKey + typeLb + ":" + podInfo.Name + ":" + Loading Loading @@ -178,6 +191,8 @@ func (re *RoutingEngine) applyLbRules() { fields[fieldLbSvcName] = svcInfo.Name fields[fieldLbSvcIp] = tce.ipManager.GetSvcIp(svcInfo.Name) fields[fieldLbSvcPort] = svcMap.SvcPort fields[fieldLbPodName] = svcInfo.Node fields[fieldLbPodIp] = tce.ipManager.GetPodIp(svcInfo.Node) // Make unique key key := tce.netCharStore.baseKey + typeLb + ":" + podInfo.Name + ":" + Loading @@ -200,6 +215,8 @@ func (re *RoutingEngine) applyLbRules() { fields[fieldLbSvcName] = svcMap.SvcName fields[fieldLbSvcIp] = svcMap.SvcIp fields[fieldLbSvcPort] = svcMap.SvcPort fields[fieldLbPodName] = "n/a" fields[fieldLbPodIp] = IP_ADDR_NONE // Make unique key key := tce.netCharStore.baseKey + typeLb + ":" + podInfo.Name + ":" + Loading go-apps/meep-tc-engine/tc-engine.go +0 −9 Original line number Diff line number Diff line Loading @@ -40,15 +40,6 @@ const tcEngineKey string = "tc-engine:" const mgManagerKey string = "mg-manager:" const typeNet string = "net" const fieldSvcType string = "svc-type" const fieldSvcName string = "svc-name" const fieldSvcIp string = "svc-ip" const fieldSvcProtocol string = "svc-protocol" const fieldSvcPort string = "svc-port" const fieldLbSvcName string = "lb-svc-name" const fieldLbSvcIp string = "lb-svc-ip" const fieldLbSvcPort string = "lb-svc-port" // MQ payload fields const fieldEventType = "event-type" Loading go-apps/meep-tc-sidecar/main.go +14 −2 Original line number Diff line number Diff line Loading @@ -70,8 +70,11 @@ const fieldSvcName string = "svc-name" const fieldSvcIp string = "svc-ip" const fieldSvcProtocol string = "svc-protocol" const fieldSvcPort string = "svc-port" const fieldLbSvcName string = "lb-svc-name" const fieldLbSvcIp string = "lb-svc-ip" const fieldLbSvcPort string = "lb-svc-port" const fieldLbPodName string = "lb-pod-name" const fieldLbPodIp string = "lb-pod-ip" const DEFAULT_SIDECAR_DB = 0 Loading Loading @@ -509,8 +512,17 @@ func refreshLbRulesHandler(key string, fields map[string]string, userData interf "-m", "comment", "--comment", service) // Ignore rules with missing IP addresses if fields[fieldSvcIp] == ipAddrNone || fields[fieldLbSvcIp] == ipAddrNone { log.Debug("Missing IP address for service: ", service) if fields[fieldSvcIp] == ipAddrNone { log.Debug("Missing MG Svc IP address for service: ", service) return nil } if fields[fieldLbSvcIp] == ipAddrNone { log.Debug("Missing LB Svc IP address for service: ", fields[fieldLbSvcName]) return nil } // For ME Svc & Ingress rules, verify LB pod IP as well if (fields[fieldSvcType] == typeMeSvc || fields[fieldSvcType] == typeIngressSvc) && fields[fieldLbPodIp] == ipAddrNone { log.Debug("Missing LB Pod IP address for pod: ", fields[fieldLbPodName]) return nil } Loading Loading
go-apps/meep-mg-manager/server/mg-manager.go +6 −0 Original line number Diff line number Diff line Loading @@ -941,6 +941,9 @@ func mgAppCreate(mgName string, mgApp *mgModel.MobilityGroupApp) error { // Store & Apply latest MG Service mappings applyMgSvcMapping() // Inform TC Engine of LB rules updatge publishLbRulesUpdate() return nil } Loading Loading @@ -1038,6 +1041,9 @@ func mgUeCreate(mgName string, appID string, mgUe *mgModel.MobilityGroupUe) erro // Store & Apply latest MG Service mappings applyMgSvcMapping() // Inform TC Engine of LB rules updatge publishLbRulesUpdate() } return nil } Loading
go-apps/meep-tc-engine/routing-engine.go +17 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,17 @@ const typeMeSvc string = "ME-SVC" const typeIngressSvc string = "INGRESS-SVC" const typeEgressSvc string = "EGRESS-SVC" const fieldSvcType string = "svc-type" const fieldSvcName string = "svc-name" const fieldSvcIp string = "svc-ip" const fieldSvcProtocol string = "svc-protocol" const fieldSvcPort string = "svc-port" const fieldLbSvcName string = "lb-svc-name" const fieldLbSvcIp string = "lb-svc-ip" const fieldLbSvcPort string = "lb-svc-port" const fieldLbPodName string = "lb-pod-name" const fieldLbPodIp string = "lb-pod-ip" const DEFAULT_LB_RULES_DB = 0 // LbRulesStore - Loading Loading @@ -143,6 +154,8 @@ func (re *RoutingEngine) applyLbRules() { fields[fieldLbSvcName] = svcInfo.Name fields[fieldLbSvcIp] = tce.ipManager.GetSvcIp(svcInfo.Name) fields[fieldLbSvcPort] = portInfo.Port fields[fieldLbPodName] = svcInfo.Node fields[fieldLbPodIp] = tce.ipManager.GetPodIp(svcInfo.Node) // Make unique key key := tce.netCharStore.baseKey + typeLb + ":" + podInfo.Name + ":" + Loading Loading @@ -178,6 +191,8 @@ func (re *RoutingEngine) applyLbRules() { fields[fieldLbSvcName] = svcInfo.Name fields[fieldLbSvcIp] = tce.ipManager.GetSvcIp(svcInfo.Name) fields[fieldLbSvcPort] = svcMap.SvcPort fields[fieldLbPodName] = svcInfo.Node fields[fieldLbPodIp] = tce.ipManager.GetPodIp(svcInfo.Node) // Make unique key key := tce.netCharStore.baseKey + typeLb + ":" + podInfo.Name + ":" + Loading @@ -200,6 +215,8 @@ func (re *RoutingEngine) applyLbRules() { fields[fieldLbSvcName] = svcMap.SvcName fields[fieldLbSvcIp] = svcMap.SvcIp fields[fieldLbSvcPort] = svcMap.SvcPort fields[fieldLbPodName] = "n/a" fields[fieldLbPodIp] = IP_ADDR_NONE // Make unique key key := tce.netCharStore.baseKey + typeLb + ":" + podInfo.Name + ":" + Loading
go-apps/meep-tc-engine/tc-engine.go +0 −9 Original line number Diff line number Diff line Loading @@ -40,15 +40,6 @@ const tcEngineKey string = "tc-engine:" const mgManagerKey string = "mg-manager:" const typeNet string = "net" const fieldSvcType string = "svc-type" const fieldSvcName string = "svc-name" const fieldSvcIp string = "svc-ip" const fieldSvcProtocol string = "svc-protocol" const fieldSvcPort string = "svc-port" const fieldLbSvcName string = "lb-svc-name" const fieldLbSvcIp string = "lb-svc-ip" const fieldLbSvcPort string = "lb-svc-port" // MQ payload fields const fieldEventType = "event-type" Loading
go-apps/meep-tc-sidecar/main.go +14 −2 Original line number Diff line number Diff line Loading @@ -70,8 +70,11 @@ const fieldSvcName string = "svc-name" const fieldSvcIp string = "svc-ip" const fieldSvcProtocol string = "svc-protocol" const fieldSvcPort string = "svc-port" const fieldLbSvcName string = "lb-svc-name" const fieldLbSvcIp string = "lb-svc-ip" const fieldLbSvcPort string = "lb-svc-port" const fieldLbPodName string = "lb-pod-name" const fieldLbPodIp string = "lb-pod-ip" const DEFAULT_SIDECAR_DB = 0 Loading Loading @@ -509,8 +512,17 @@ func refreshLbRulesHandler(key string, fields map[string]string, userData interf "-m", "comment", "--comment", service) // Ignore rules with missing IP addresses if fields[fieldSvcIp] == ipAddrNone || fields[fieldLbSvcIp] == ipAddrNone { log.Debug("Missing IP address for service: ", service) if fields[fieldSvcIp] == ipAddrNone { log.Debug("Missing MG Svc IP address for service: ", service) return nil } if fields[fieldLbSvcIp] == ipAddrNone { log.Debug("Missing LB Svc IP address for service: ", fields[fieldLbSvcName]) return nil } // For ME Svc & Ingress rules, verify LB pod IP as well if (fields[fieldSvcType] == typeMeSvc || fields[fieldSvcType] == typeIngressSvc) && fields[fieldLbPodIp] == ipAddrNone { log.Debug("Missing LB Pod IP address for pod: ", fields[fieldLbPodName]) return nil } Loading