1
0
mirror of https://github.com/netsampler/goflow2.git synced 2024-05-06 15:54:52 +00:00

Merge pull request #82 from jotak/fix-deltams-convert

In IPFIX DeltaMicroseconds case, basetime must be converted to MS
This commit is contained in:
Louis
2022-05-09 08:52:30 -07:00
committed by GitHub

View File

@ -341,13 +341,13 @@ func ConvertNetFlowDataSet(version uint16, baseTime uint32, uptime uint32, recor
var timeFirstSwitched uint32
DecodeUNumber(v, &timeFirstSwitched)
timeDiff := (uptime - timeFirstSwitched)
flowMessage.TimeFlowStart = uint64(baseTime - timeDiff / 1000)
flowMessage.TimeFlowStart = uint64(baseTime - timeDiff/1000)
flowMessage.TimeFlowStartMs = uint64(baseTime)*1000 - uint64(timeDiff)
case netflow.NFV9_FIELD_LAST_SWITCHED:
var timeLastSwitched uint32
DecodeUNumber(v, &timeLastSwitched)
timeDiff := (uptime - timeLastSwitched)
flowMessage.TimeFlowEnd = uint64(baseTime - timeDiff / 1000)
flowMessage.TimeFlowEnd = uint64(baseTime - timeDiff/1000)
flowMessage.TimeFlowEndMs = uint64(baseTime)*1000 - uint64(timeDiff)
}
} else if version == 10 {
@ -355,7 +355,7 @@ func ConvertNetFlowDataSet(version uint16, baseTime uint32, uptime uint32, recor
case netflow.IPFIX_FIELD_flowStartSeconds:
DecodeUNumber(v, &time)
flowMessage.TimeFlowStart = time
flowMessage.TimeFlowStartMs = time*1000
flowMessage.TimeFlowStartMs = time * 1000
case netflow.IPFIX_FIELD_flowStartMilliseconds:
DecodeUNumber(v, &time)
flowMessage.TimeFlowStart = time / 1000
@ -371,7 +371,7 @@ func ConvertNetFlowDataSet(version uint16, baseTime uint32, uptime uint32, recor
case netflow.IPFIX_FIELD_flowEndSeconds:
DecodeUNumber(v, &time)
flowMessage.TimeFlowEnd = time
flowMessage.TimeFlowEndMs = time*1000
flowMessage.TimeFlowEndMs = time * 1000
case netflow.IPFIX_FIELD_flowEndMilliseconds:
DecodeUNumber(v, &time)
flowMessage.TimeFlowEnd = time / 1000
@ -387,11 +387,11 @@ func ConvertNetFlowDataSet(version uint16, baseTime uint32, uptime uint32, recor
case netflow.IPFIX_FIELD_flowStartDeltaMicroseconds:
DecodeUNumber(v, &time)
flowMessage.TimeFlowStart = uint64(baseTime) - time/1000000
flowMessage.TimeFlowStartMs = uint64(baseTime) - time/1000
flowMessage.TimeFlowStartMs = uint64(baseTime)*1000 - time/1000
case netflow.IPFIX_FIELD_flowEndDeltaMicroseconds:
DecodeUNumber(v, &time)
flowMessage.TimeFlowEnd = uint64(baseTime) - time/1000000
flowMessage.TimeFlowEndMs = uint64(baseTime) - time/1000
flowMessage.TimeFlowEndMs = uint64(baseTime)*1000 - time/1000
// RFC7133
case netflow.IPFIX_FIELD_dataLinkFrameSize:
DecodeUNumber(v, &(flowMessage.Bytes))