Skip to content

Commit 79d1210

Browse files
authored
NETOBSERV-2288: Fix MAC enrichment (#996)
mac is now lower case in flows - make sure both key and lookup input are lower-cased
1 parent b288448 commit 79d1210

File tree

4 files changed

+12
-12
lines changed

4 files changed

+12
-12
lines changed

pkg/pipeline/transform/kubernetes/cni/multus.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ func (m *MultusHandler) buildSNKeys(flow config.GenericMap, rule *api.K8sRule, s
7575
return nil
7676
}
7777

78-
macIP := "~" + ip + "~" + mac
78+
macIP := "~" + ip + "~" + strings.ToLower(mac)
7979
if interfaces == nil {
8080
return []SecondaryNetKey{{NetworkName: sn.Name, Key: macIP}}
8181
}
@@ -137,5 +137,5 @@ func (n *NetStatItem) Keys(snConfig api.SecondaryNetwork) []string {
137137
}
138138

139139
func key(intf, ip, mac string) string {
140-
return intf + "~" + ip + "~" + strings.ToUpper(mac)
140+
return intf + "~" + ip + "~" + strings.ToLower(mac)
141141
}

pkg/pipeline/transform/kubernetes/cni/multus_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@ func TestExtractNetStatusKeys(t *testing.T) {
5757
}
5858
keys, err = multusHandler.GetPodUniqueKeys(&pod, secondaryNetConfig)
5959
require.NoError(t, err)
60-
require.Equal(t, []string{"~~86:1D:96:FF:55:0D"}, keys)
60+
require.Equal(t, []string{"~~86:1d:96:ff:55:0d"}, keys)
6161

6262
// Composed key
6363
secondaryNetConfig[0].Index = map[string]any{"mac": nil, "ip": nil, "interface": nil}
6464
keys, err = multusHandler.GetPodUniqueKeys(&pod, secondaryNetConfig)
6565
require.NoError(t, err)
66-
require.Equal(t, []string{"net1~192.168.1.205~86:1D:96:FF:55:0D"}, keys)
66+
require.Equal(t, []string{"net1~192.168.1.205~86:1d:96:ff:55:0d"}, keys)
6767
}

pkg/pipeline/transform/kubernetes/enrich_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ var ipInfo = map[string]*model.ResourceMetaData{
4646
}
4747

4848
var customKeysInfo = map[string]*model.ResourceMetaData{
49-
"~~AA:BB:CC:DD:EE:FF": {
49+
"~~aa:bb:cc:dd:ee:ff": {
5050
ObjectMeta: v1.ObjectMeta{
5151
Name: "pod-1",
5252
Namespace: "ns-1",
@@ -456,7 +456,7 @@ func TestEnrichUsingMac(t *testing.T) {
456456
// Pod to unknown using MAC
457457
entry := config.GenericMap{
458458
"SrcAddr": "8.8.8.8",
459-
"SrcMAC": "AA:BB:CC:DD:EE:FF", // pod-1
459+
"SrcMAC": "aa:bb:cc:dd:ee:ff", // pod-1
460460
"DstAddr": "9.9.9.9",
461461
"DstMAC": "GG:HH:II:JJ:KK:LL", // unknown
462462
}
@@ -465,7 +465,7 @@ func TestEnrichUsingMac(t *testing.T) {
465465
}
466466
assert.Equal(t, config.GenericMap{
467467
"SrcAddr": "8.8.8.8",
468-
"SrcMAC": "AA:BB:CC:DD:EE:FF",
468+
"SrcMAC": "aa:bb:cc:dd:ee:ff",
469469
"DstAddr": "9.9.9.9",
470470
"DstMAC": "GG:HH:II:JJ:KK:LL",
471471
"SrcK8s_HostIP": "100.0.0.1",
@@ -481,7 +481,7 @@ func TestEnrichUsingMac(t *testing.T) {
481481

482482
// remove the MAC rules and retry
483483
entry = config.GenericMap{
484-
"SrcMAC": "AA:BB:CC:DD:EE:FF", // pod-1
484+
"SrcMAC": "aa:bb:cc:dd:ee:ff", // pod-1
485485
"DstMAC": "GG:HH:II:JJ:KK:LL", // unknown
486486
}
487487
for _, r := range nt.Rules {
@@ -490,7 +490,7 @@ func TestEnrichUsingMac(t *testing.T) {
490490
}
491491
assert.Equal(t, config.GenericMap{
492492
"DstMAC": "GG:HH:II:JJ:KK:LL",
493-
"SrcMAC": "AA:BB:CC:DD:EE:FF",
493+
"SrcMAC": "aa:bb:cc:dd:ee:ff",
494494
}, entry)
495495
}
496496

@@ -520,7 +520,7 @@ func TestEnrichUsingUDN(t *testing.T) {
520520
},
521521
}
522522
customIndexes := map[string]*model.ResourceMetaData{
523-
"~~AA:BB:CC:DD:EE:FF": {
523+
"~~aa:bb:cc:dd:ee:ff": {
524524
ObjectMeta: v1.ObjectMeta{
525525
Name: "pod-1",
526526
Namespace: "ns-1",

pkg/pipeline/transform/kubernetes/informers/informers_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,12 @@ func TestGetInfo(t *testing.T) {
5858
OwnerKind: "Pod",
5959
NetworkName: "primary",
6060
IPs: []string{"1.2.3.4"},
61-
SecondaryNetKeys: []string{"~~AA:BB:CC:DD:EE:FF"},
61+
SecondaryNetKeys: []string{"~~aa:bb:cc:dd:ee:ff"},
6262
}
6363
require.Equal(t, pod1, *info)
6464

6565
// Test get same pod by mac
66-
info = kubeData.IndexLookup([]cni.SecondaryNetKey{{NetworkName: "custom-network", Key: "~~AA:BB:CC:DD:EE:FF"}}, "")
66+
info = kubeData.IndexLookup([]cni.SecondaryNetKey{{NetworkName: "custom-network", Key: "~~aa:bb:cc:dd:ee:ff"}}, "")
6767
require.NotNil(t, info)
6868
pod1.NetworkName = "custom-network"
6969
require.Equal(t, pod1, *info)

0 commit comments

Comments
 (0)