MCPcopy Index your code
hub / github.com/google/gopacket / decodeExtendedGatewayFlowRecord

Function decodeExtendedGatewayFlowRecord

layers/sflow.go:1280–1309  ·  view source on GitHub ↗
(data *[]byte)

Source from the content-addressed store, hash-verified

1278}
1279
1280func decodeExtendedGatewayFlowRecord(data *[]byte) (SFlowExtendedGatewayFlowRecord, error) {
1281 eg := SFlowExtendedGatewayFlowRecord{}
1282 var fdf SFlowFlowDataFormat
1283 var extendedGatewayAddressType SFlowIPType
1284 var communitiesLength uint32
1285 var community uint32
1286
1287 *data, fdf = (*data)[4:], SFlowFlowDataFormat(binary.BigEndian.Uint32((*data)[:4]))
1288 eg.EnterpriseID, eg.Format = fdf.decode()
1289 *data, eg.FlowDataLength = (*data)[4:], binary.BigEndian.Uint32((*data)[:4])
1290 *data, extendedGatewayAddressType = (*data)[4:], SFlowIPType(binary.BigEndian.Uint32((*data)[:4]))
1291 *data, eg.NextHop = (*data)[extendedGatewayAddressType.Length():], (*data)[:extendedGatewayAddressType.Length()]
1292 *data, eg.AS = (*data)[4:], binary.BigEndian.Uint32((*data)[:4])
1293 *data, eg.SourceAS = (*data)[4:], binary.BigEndian.Uint32((*data)[:4])
1294 *data, eg.PeerAS = (*data)[4:], binary.BigEndian.Uint32((*data)[:4])
1295 *data, eg.ASPathCount = (*data)[4:], binary.BigEndian.Uint32((*data)[:4])
1296 for i := uint32(0); i < eg.ASPathCount; i++ {
1297 asPath := SFlowASDestination{}
1298 asPath.decodePath(data)
1299 eg.ASPath = append(eg.ASPath, asPath)
1300 }
1301 *data, communitiesLength = (*data)[4:], binary.BigEndian.Uint32((*data)[:4])
1302 eg.Communities = make([]uint32, communitiesLength)
1303 for j := uint32(0); j < communitiesLength; j++ {
1304 *data, community = (*data)[4:], binary.BigEndian.Uint32((*data)[:4])
1305 eg.Communities[j] = community
1306 }
1307 *data, eg.LocalPref = (*data)[4:], binary.BigEndian.Uint32((*data)[:4])
1308 return eg, nil
1309}
1310
1311// **************************************************
1312// Extended URL Flow Record

Callers 1

decodeFlowSampleFunction · 0.85

Calls 5

decodeMethod · 0.95
LengthMethod · 0.95
decodePathMethod · 0.95
SFlowFlowDataFormatTypeAlias · 0.85
SFlowIPTypeTypeAlias · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…