in internal/ip/ip.go [148:163]
func (c *Conn) NextPacket() (gopacket.Packet, error) {
buf := make([]byte, d.MaxPacketSizeBytes)
if _, _, err := c.recvSrc.Recvfrom(buf); err != nil {
return nil, err
}
switch c.AF {
case d.AfInet:
return gopacket.NewPacket(buf, layers.LayerTypeIPv4, gopacket.DecodeOptions{Lazy: true}), nil
case d.AfInet6:
return gopacket.NewPacket(buf, layers.LayerTypeIPv6, gopacket.DecodeOptions{Lazy: true}), nil
}
return nil, errors.New("no valid decoder available for packet")
}