INNER CODE UNIT · Go
func
Edgio/vflow · ipfix/decoder.go:105
func (d *Decoder) Decode(mem MemCache) (*Message, error) {
var msg = new(Message)
// IPFIX Message Header decoding
if err := msg.Header.unmarshal(d.reader); err != nil {
return nil, err
}
// IPFIX Message Header validation
if err := msg.Header.validate(); err != nil {
return nil, err
}
// Add source IP address as Agent ID
msg.AgentID = d.raddr.String()
// In case there are multiple non-fatal errors, collect them and report all of them.
// The rest of the received sets will still be interpreted, until a fatal error is encountered.
// A non-fatal error is for example an illegal data record or unknown template id.