Skip to content

Commit a5878c9

Browse files
committed
feat: match flowlabel and make code type to pointer
1 parent b35c085 commit a5878c9

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ require (
1717
github.com/kr/pretty v0.1.0 // indirect
1818
github.com/pmezard/go-difflib v1.0.0 // indirect
1919
golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 // indirect
20-
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect
20+
golang.org/x/sys v0.1.0 // indirect
2121
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
2222
gopkg.in/yaml.v3 v3.0.1 // indirect
2323
k8s.io/klog v1.0.0 // indirect
2424
)
2525

2626
replace (
27-
github.com/contiv/libOpenflow => github.com/everoute/libOpenflow v1.0.1-0.20241023024533-3fff8fcc5e74
27+
github.com/contiv/libOpenflow => github.com/everoute/libOpenflow v1.0.1-0.20250416030415-66392a2dfa3c
2828
github.com/contiv/libovsdb => github.com/everoute/libovsdb v0.0.0-20230109020235-5be40f26b455
2929
github.com/osrg/gobgp => github.com/zwtop/gobgp v0.0.0-20210127101833-12edfc1f4514
3030
)

go.sum

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ github.com/cenkalti/rpc2 v0.0.0-20210604223624-c1acbc6ec984/go.mod h1:v2npkhrXyk
99
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1010
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
1111
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
12-
github.com/everoute/libOpenflow v1.0.1-0.20241023024533-3fff8fcc5e74 h1:d4ZkDRNWQTZGsQF7ioTzkmgMFVaJuh73v5XRlKo0ze4=
13-
github.com/everoute/libOpenflow v1.0.1-0.20241023024533-3fff8fcc5e74/go.mod h1:Glli90eKTMhkETRmgjf2DgHTf+PDCQUv6nZvubrLuuA=
12+
github.com/everoute/libOpenflow v1.0.1-0.20250416030415-66392a2dfa3c h1:9FJM6bllEHvloqoEYwbGtk0A76VbLlXwO4AcreRsw3Q=
13+
github.com/everoute/libOpenflow v1.0.1-0.20250416030415-66392a2dfa3c/go.mod h1:RkHgztpIL/ytBjFGlc/Wc0ycgKCWDsnxpABce66evTM=
1414
github.com/everoute/libovsdb v0.0.0-20230109020235-5be40f26b455 h1:x6peVyYZSmva1OJJZ2CCNPs4m+tvWEHJ1s5tX5j629s=
1515
github.com/everoute/libovsdb v0.0.0-20230109020235-5be40f26b455/go.mod h1:qV7bn/XogGqNiuk52aU4x8WqOb2JEU1CYDpf8D1jkRg=
1616
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
@@ -35,8 +35,9 @@ github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ
3535
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
3636
golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 h1:ESSUROHIBHg7USnszlcdmjBEwdMj9VUvU+OPk4yl2mc=
3737
golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI=
38-
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ=
3938
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
39+
golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
40+
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4041
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
4142
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
4243
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

ofctrl/fgraphFlow.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,11 @@ type FlowMatch struct {
5555
Ipv6SaMask *net.IP // IPv6 source mask
5656
Ipv6Da *net.IP // IPv6 dest addr
5757
Ipv6DaMask *net.IP // IPv6 dest mask
58+
Ipv6Flabel *uint32 // IPv6 flow label
59+
Ipv6FlabelMask *uint32 // IPv6 flow label mask
5860
IpProto uint8 // IP protocol
59-
IcmpCode uint8 // ICMP code
60-
IcmpType uint8 // ICMP type
61+
IcmpCode *uint8 // ICMP code
62+
IcmpType *uint8 // ICMP type
6163
IpDscp uint8 // DSCP/TOS field
6264
TcpSrcPort uint16 // TCP source port
6365
TcpSrcPortMask uint16 // TCP source port mask
@@ -383,6 +385,11 @@ func (self *Flow) xlateMatch() openflow13.Match {
383385
}
384386
}
385387

388+
if self.Match.Ipv6Flabel != nil {
389+
ipv6FlabelField := openflow13.NewIPV6FlowLabelField(*self.Match.Ipv6Flabel, self.Match.Ipv6FlabelMask)
390+
ofMatch.AddField(*ipv6FlabelField)
391+
}
392+
386393
// Handle IPv6 Src
387394
if self.Match.Ipv6Sa != nil {
388395
if self.Match.Ipv6SaMask != nil {
@@ -407,12 +414,12 @@ func (self *Flow) xlateMatch() openflow13.Match {
407414
}
408415

409416
// icmp code and type
410-
if self.Match.IcmpCode != 0 {
411-
icmpCodeField := openflow13.NewIcmpCodeField(self.Match.IcmpCode)
417+
if self.Match.IcmpCode != nil {
418+
icmpCodeField := openflow13.NewIcmpCodeField(*self.Match.IcmpCode)
412419
ofMatch.AddField(*icmpCodeField)
413420
}
414-
if self.Match.IcmpType != 0 {
415-
icmpTypeField := openflow13.NewIcmpTypeField(self.Match.IcmpType)
421+
if self.Match.IcmpType != nil {
422+
icmpTypeField := openflow13.NewIcmpTypeField(*self.Match.IcmpType)
416423
ofMatch.AddField(*icmpTypeField)
417424
}
418425

0 commit comments

Comments
 (0)