package route
import
func ( *wireFormat) ( RIBType, []byte) (Message, error) {
if len() < .bodyOff {
return nil, errMessageTooShort
}
:= int(nativeEndian.Uint16([:2]))
if len() < {
return nil, errInvalidMessage
}
:= uint(nativeEndian.Uint32([4:8]))
if &sysRTA_IFP == 0 {
return nil, nil
}
:= &InterfaceMessage{
Version: int([2]),
Type: int([3]),
Addrs: make([]Addr, sysRTAX_MAX),
Flags: int(nativeEndian.Uint32([8:12])),
Index: int(nativeEndian.Uint16([12:14])),
extOff: .extOff,
raw: [:],
}
, := parseLinkAddr([.bodyOff:])
if != nil {
return nil,
}
.Addrs[sysRTAX_IFP] =
.Name = .(*LinkAddr).Name
return , nil
}
func ( *wireFormat) ( RIBType, []byte) (Message, error) {
if len() < .bodyOff {
return nil, errMessageTooShort
}
:= int(nativeEndian.Uint16([:2]))
if len() < {
return nil, errInvalidMessage
}
:= &InterfaceAddrMessage{
Version: int([2]),
Type: int([3]),
Flags: int(nativeEndian.Uint32([8:12])),
raw: [:],
}
if runtime.GOOS == "netbsd" {
.Index = int(nativeEndian.Uint16([16:18]))
} else {
.Index = int(nativeEndian.Uint16([12:14]))
}
var error
.Addrs, = parseAddrs(uint(nativeEndian.Uint32([4:8])), parseKernelInetAddr, [.bodyOff:])
if != nil {
return nil,
}
return , nil
}