Skip to content

Commit 88ed528

Browse files
authored
Merge pull request #1 from DeepLcom/ybvs_cc3121
IPFIX: Decode IPv6 src/dst/nexthop addresses
2 parents 947c48e + 0d084bf commit 88ed528

1 file changed

Lines changed: 13 additions & 11 deletions

File tree

pkg/servers/ipfix/ipfix_server.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -237,15 +237,21 @@ func (ipf *IPFIXServer) processFlowSet(template []*ipfix.TemplateRecord, records
237237
}
238238

239239
if fm.srcAddr >= 0 {
240-
fl.SrcAddr = bnet.IPv4FromBytes(convert.Reverse(r.Values[fm.srcAddr]))
240+
if ip, err := bnet.IPFromBytes(convert.Reverse(r.Values[fm.srcAddr])); err == nil {
241+
fl.SrcAddr = ip
242+
}
241243
}
242244

243245
if fm.dstAddr >= 0 {
244-
fl.DstAddr = bnet.IPv4FromBytes(convert.Reverse(r.Values[fm.dstAddr]))
246+
if ip, err := bnet.IPFromBytes(convert.Reverse(r.Values[fm.dstAddr])); err == nil {
247+
fl.DstAddr = ip
248+
}
245249
}
246250

247251
if fm.nextHop >= 0 {
248-
fl.NextHop = bnet.IPv4FromBytes(convert.Reverse(r.Values[fm.nextHop]))
252+
if ip, err := bnet.IPFromBytes(convert.Reverse(r.Values[fm.nextHop])); err == nil {
253+
fl.NextHop = ip
254+
}
249255
}
250256

251257
if fm.srcTos >= 0 {
@@ -260,31 +266,27 @@ func (ipf *IPFIXServer) processFlowSet(template []*ipfix.TemplateRecord, records
260266
fl.SrcAs = convert.Uint32(r.Values[fm.srcAsn])
261267
}
262268

263-
if fm.srcMask > 0 {
269+
if fm.srcMask >= 0 {
264270
mask := uint8(r.Values[fm.srcMask][0])
265271
p := bnet.NewPfx(fl.SrcAddr, mask)
266-
p.BaseAddr()
267272
fl.SrcPfx = bnet.NewPfx(*p.BaseAddr(), mask)
268273
}
269274

270-
if fm.dstMask > 0 {
275+
if fm.dstMask >= 0 {
271276
mask := uint8(r.Values[fm.dstMask][0])
272277
p := bnet.NewPfx(fl.DstAddr, mask)
273-
p.BaseAddr()
274278
fl.DstPfx = bnet.NewPfx(*p.BaseAddr(), mask)
275279
}
276280

277-
if fm.srcMask6 > 0 {
281+
if fm.srcMask6 >= 0 {
278282
mask := uint8(r.Values[fm.srcMask6][0])
279283
p := bnet.NewPfx(fl.SrcAddr, mask)
280-
p.BaseAddr()
281284
fl.SrcPfx = bnet.NewPfx(*p.BaseAddr(), mask)
282285
}
283286

284-
if fm.dstMask6 > 0 {
287+
if fm.dstMask6 >= 0 {
285288
mask := uint8(r.Values[fm.dstMask6][0])
286289
p := bnet.NewPfx(fl.DstAddr, mask)
287-
p.BaseAddr()
288290
fl.DstPfx = bnet.NewPfx(*p.BaseAddr(), mask)
289291
}
290292

0 commit comments

Comments
 (0)