Copyright 2016 The Go Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
+build darwin dragonfly netbsd

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