in pkg/utils/utils.go [208:255]
func ComputeTrieValue(l4Info []v1alpha1.Port, log logr.Logger, allowAll, denyAll bool) []byte {
var startPort, endPort, protocol int
value := make([]byte, TRIE_VALUE_LENGTH)
startOffset := 0
if len(l4Info) == 0 {
allowAll = true
}
if allowAll || denyAll {
protocol = deriveProtocolValue(v1alpha1.Port{}, allowAll, denyAll)
binary.LittleEndian.PutUint32(value[startOffset:startOffset+4], uint32(protocol))
startOffset += 4
binary.LittleEndian.PutUint32(value[startOffset:startOffset+4], uint32(startPort))
startOffset += 4
binary.LittleEndian.PutUint32(value[startOffset:startOffset+4], uint32(endPort))
startOffset += 4
log.Info("L4 values: ", "protocol: ", protocol, "startPort: ", startPort, "endPort: ", endPort)
}
for _, l4Entry := range l4Info {
if startOffset >= TRIE_VALUE_LENGTH {
log.Error(nil, "No.of unique port/protocol combinations supported for a single endpoint exceeded the supported maximum of 24")
return value
}
endPort = 0
startPort = 0
protocol = deriveProtocolValue(l4Entry, allowAll, denyAll)
if l4Entry.Port != nil {
startPort = int(*l4Entry.Port)
}
if l4Entry.EndPort != nil {
endPort = int(*l4Entry.EndPort)
}
log.Info("L4 values: ", "protocol: ", protocol, "startPort: ", startPort, "endPort: ", endPort)
binary.LittleEndian.PutUint32(value[startOffset:startOffset+4], uint32(protocol))
startOffset += 4
binary.LittleEndian.PutUint32(value[startOffset:startOffset+4], uint32(startPort))
startOffset += 4
binary.LittleEndian.PutUint32(value[startOffset:startOffset+4], uint32(endPort))
startOffset += 4
}
return value
}