agent: protos: Add a Family field to the Route payload

Our check for the IP family is working as long as we have either a
gateway or a destination IP. Some routes are missing both.
The RT netlink messages provide the IP family information for each
route, so we can carry that piece of information up to the guest. That
will allow for a more reliable route IP family determination.

Signed-off-by: Samuel Ortiz <s.ortiz@apple.com>
This commit is contained in:
Samuel Ortiz 2021-09-29 10:41:30 +02:00
parent f85fe70231
commit 99450bd1f7
4 changed files with 212 additions and 68 deletions

View File

@ -46,6 +46,7 @@ message Route {
string device = 3; string device = 3;
string source = 4; string source = 4;
uint32 scope = 5; uint32 scope = 5;
IPFamily family = 6;
} }
message ARPNeighbor { message ARPNeighbor {

View File

@ -732,7 +732,10 @@ func (m *CheckRequest) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthHealth
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthHealth return ErrInvalidLengthHealth
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -802,7 +805,10 @@ func (m *HealthCheckResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthHealth
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthHealth return ErrInvalidLengthHealth
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -917,7 +923,10 @@ func (m *VersionCheckResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthHealth
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthHealth return ErrInvalidLengthHealth
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {

View File

@ -7717,7 +7717,7 @@ func (m *Spec) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > postIndex { if (iNdEx + skippy) > postIndex {
@ -7842,7 +7842,10 @@ func (m *Spec) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -8251,7 +8254,10 @@ func (m *Process) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -8340,7 +8346,10 @@ func (m *Box) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -8537,7 +8546,10 @@ func (m *User) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -8748,7 +8760,10 @@ func (m *LinuxCapabilities) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -8869,7 +8884,10 @@ func (m *POSIXRlimit) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -9048,7 +9066,10 @@ func (m *Mount) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -9151,7 +9172,10 @@ func (m *Root) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -9304,7 +9328,10 @@ func (m *Hooks) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -9470,7 +9497,10 @@ func (m *Hook) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -9699,7 +9729,7 @@ func (m *Linux) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > postIndex { if (iNdEx + skippy) > postIndex {
@ -10052,7 +10082,10 @@ func (m *Linux) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -10135,7 +10168,10 @@ func (m *Windows) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -10218,7 +10254,10 @@ func (m *Solaris) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -10326,7 +10365,10 @@ func (m *LinuxIDMapping) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -10441,7 +10483,10 @@ func (m *LinuxNamespace) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -10651,7 +10696,10 @@ func (m *LinuxDevice) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -10950,7 +10998,10 @@ func (m *LinuxResources) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -11135,7 +11186,10 @@ func (m *LinuxMemory) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -11345,7 +11399,10 @@ func (m *LinuxCPU) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -11472,7 +11529,10 @@ func (m *LinuxWeightDevice) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -11580,7 +11640,10 @@ func (m *LinuxThrottleDevice) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -11839,7 +11902,10 @@ func (m *LinuxBlockIO) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -11909,7 +11975,10 @@ func (m *LinuxPids) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -12082,7 +12151,10 @@ func (m *LinuxDeviceCgroup) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -12186,7 +12258,10 @@ func (m *LinuxNetwork) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -12288,7 +12363,10 @@ func (m *LinuxHugepageLimit) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -12390,7 +12468,10 @@ func (m *LinuxInterfacePriority) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -12571,7 +12652,10 @@ func (m *LinuxSeccomp) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -12711,7 +12795,10 @@ func (m *LinuxSeccompArg) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -12880,7 +12967,10 @@ func (m *LinuxSyscall) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -12963,7 +13053,10 @@ func (m *LinuxIntelRdt) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthOci
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthOci return ErrInvalidLengthOci
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {

View File

@ -147,6 +147,7 @@ type Route struct {
Device string `protobuf:"bytes,3,opt,name=device,proto3" json:"device,omitempty"` Device string `protobuf:"bytes,3,opt,name=device,proto3" json:"device,omitempty"`
Source string `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"` Source string `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"`
Scope uint32 `protobuf:"varint,5,opt,name=scope,proto3" json:"scope,omitempty"` Scope uint32 `protobuf:"varint,5,opt,name=scope,proto3" json:"scope,omitempty"`
Family IPFamily `protobuf:"varint,6,opt,name=family,proto3,enum=types.IPFamily" json:"family,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -240,37 +241,37 @@ func init() {
} }
var fileDescriptor_b0c68e5b9fabcd81 = []byte{ var fileDescriptor_b0c68e5b9fabcd81 = []byte{
// 472 bytes of a gzipped FileDescriptorProto // 479 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0x31, 0x8f, 0xd3, 0x30, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0x31, 0x8f, 0xd3, 0x30,
0x18, 0x86, 0xeb, 0xa6, 0xc9, 0x35, 0xae, 0x0e, 0x2a, 0x0b, 0x9d, 0x2c, 0x90, 0xa2, 0xa8, 0x0b, 0x18, 0x86, 0xeb, 0xa6, 0xc9, 0x35, 0xae, 0x0e, 0x2a, 0x0b, 0x9d, 0x2c, 0x90, 0xa2, 0xa8, 0x0b,
0x11, 0x12, 0x8d, 0x54, 0x10, 0xfb, 0x31, 0x9c, 0xd4, 0x05, 0x15, 0x6f, 0xb0, 0x20, 0xd7, 0x75, 0x11, 0x12, 0x8d, 0x54, 0x10, 0xfb, 0x31, 0x9c, 0xd4, 0x05, 0x15, 0x6f, 0xb0, 0x20, 0xd7, 0x75,
0xd3, 0xa8, 0x49, 0x1c, 0xd9, 0x4e, 0xab, 0x8a, 0x85, 0x3f, 0xc2, 0xff, 0xb9, 0x91, 0x91, 0xf1, 0xd3, 0xa8, 0x49, 0x1c, 0xd9, 0x4e, 0xab, 0x6e, 0xfc, 0x11, 0x36, 0x7e, 0xcc, 0x8d, 0x8c, 0x8c,
0xae, 0xbf, 0x04, 0xd9, 0x4e, 0xab, 0x50, 0x58, 0x6e, 0xca, 0xfb, 0x7c, 0xb6, 0xf3, 0xbd, 0xdf, 0x77, 0xfd, 0x25, 0xc8, 0x76, 0x5a, 0x85, 0x82, 0x90, 0x98, 0xfa, 0x3d, 0x9f, 0xed, 0x7e, 0xef,
0x1b, 0x07, 0x7e, 0xce, 0x72, 0xbd, 0x69, 0x96, 0x53, 0x26, 0xca, 0x74, 0x4b, 0x35, 0x7d, 0xcb, 0xfb, 0x3a, 0x86, 0x1f, 0xb3, 0x5c, 0x6f, 0x9a, 0xe5, 0x94, 0x89, 0x32, 0xdd, 0x52, 0x4d, 0x5f,
0x44, 0xa5, 0x69, 0x5e, 0x71, 0xa9, 0xfe, 0x61, 0x25, 0x59, 0x4a, 0x33, 0x5e, 0xe9, 0xb4, 0x96, 0x33, 0x51, 0x69, 0x9a, 0x57, 0x5c, 0xaa, 0x3f, 0x58, 0x49, 0x96, 0xd2, 0x8c, 0x57, 0x3a, 0xad,
0x42, 0x0b, 0x26, 0x0a, 0xe5, 0x94, 0x4a, 0xf5, 0xa1, 0xe6, 0x6a, 0x6a, 0x01, 0xf9, 0x16, 0x26, 0xa5, 0xd0, 0x82, 0x89, 0x42, 0xb9, 0x4a, 0xa5, 0xfa, 0x50, 0x73, 0x35, 0xb5, 0x80, 0x7c, 0x0b,
0x4b, 0x18, 0xce, 0x17, 0xb7, 0xab, 0x95, 0xe4, 0x4a, 0xa1, 0xd7, 0x30, 0x58, 0xd3, 0x32, 0x2f, 0x93, 0x25, 0x0c, 0xe7, 0x8b, 0xdb, 0xd5, 0x4a, 0x72, 0xa5, 0xd0, 0x4b, 0x18, 0xac, 0x69, 0x99,
0x0e, 0x18, 0xc4, 0x20, 0x79, 0x36, 0x7b, 0x3e, 0x75, 0x27, 0xe6, 0x8b, 0x3b, 0x5b, 0x26, 0xed, 0x17, 0x07, 0x0c, 0x62, 0x90, 0x3c, 0x99, 0x3d, 0x9d, 0xba, 0x13, 0xf3, 0xc5, 0x9d, 0x6d, 0x93,
0x32, 0xc2, 0xf0, 0x8a, 0xba, 0x33, 0xb8, 0x1f, 0x83, 0x24, 0x24, 0x27, 0x44, 0x08, 0x0e, 0x4a, 0x76, 0x19, 0x61, 0x78, 0x45, 0xdd, 0x19, 0xdc, 0x8f, 0x41, 0x12, 0x92, 0x13, 0x22, 0x04, 0x07,
0xaa, 0xb6, 0xd8, 0xb3, 0x65, 0xab, 0x27, 0x0f, 0x00, 0x86, 0xf3, 0x4a, 0x73, 0xb9, 0xa6, 0x8c, 0x25, 0x55, 0x5b, 0xec, 0xd9, 0xb6, 0xad, 0x27, 0x0f, 0x00, 0x86, 0xf3, 0x4a, 0x73, 0xb9, 0xa6,
0xa3, 0x1b, 0x18, 0xac, 0xf8, 0x2e, 0x67, 0xdc, 0x36, 0x09, 0x49, 0x4b, 0xe6, 0x64, 0x45, 0x4b, 0x8c, 0xa3, 0x1b, 0x18, 0xac, 0xf8, 0x2e, 0x67, 0xdc, 0x0e, 0x09, 0x49, 0x4b, 0xe6, 0x64, 0x45,
0xde, 0xbe, 0xd0, 0x6a, 0x34, 0x83, 0xa3, 0xb3, 0x3b, 0xae, 0xb0, 0x17, 0x7b, 0xc9, 0x68, 0x36, 0x4b, 0xde, 0xfe, 0xa1, 0xad, 0xd1, 0x0c, 0x8e, 0xce, 0xea, 0xb8, 0xc2, 0x5e, 0xec, 0x25, 0xa3,
0x3e, 0xbb, 0x6a, 0x57, 0x48, 0x77, 0x13, 0x1a, 0x43, 0xaf, 0xd4, 0x0d, 0x1e, 0xc4, 0x20, 0x19, 0xd9, 0xf8, 0xac, 0xaa, 0x5d, 0x21, 0xdd, 0x4d, 0x68, 0x0c, 0xbd, 0x52, 0x37, 0x78, 0x10, 0x83,
0x10, 0x23, 0x4d, 0xc7, 0xcd, 0xde, 0x6c, 0xc0, 0xbe, 0xeb, 0xe8, 0xc8, 0x4c, 0x51, 0xb3, 0x7c, 0x64, 0x40, 0x4c, 0x69, 0x26, 0x6e, 0xf6, 0x66, 0x03, 0xf6, 0xdd, 0x44, 0x47, 0xc6, 0x45, 0xcd,
0x41, 0xf5, 0x06, 0x07, 0x6e, 0x8a, 0x16, 0x8d, 0x17, 0xd3, 0x03, 0x5f, 0x39, 0x2f, 0x46, 0xa3, 0xf2, 0x05, 0xd5, 0x1b, 0x1c, 0x38, 0x17, 0x2d, 0x1a, 0x2d, 0x66, 0x06, 0xbe, 0x72, 0x5a, 0x4c,
0x57, 0x30, 0x94, 0x74, 0xff, 0x6d, 0x5d, 0xd0, 0x4c, 0xe1, 0x61, 0x0c, 0x92, 0x6b, 0x32, 0x94, 0x8d, 0x5e, 0xc0, 0x50, 0xd2, 0xfd, 0x97, 0x75, 0x41, 0x33, 0x85, 0x87, 0x31, 0x48, 0xae, 0xc9,
0x74, 0x7f, 0x67, 0x78, 0xf2, 0x1d, 0xfa, 0x44, 0x34, 0xda, 0x4e, 0xb1, 0xe2, 0x4a, 0xb7, 0xb3, 0x50, 0xd2, 0xfd, 0x9d, 0xe1, 0xc9, 0x77, 0x00, 0x7d, 0x22, 0x1a, 0x6d, 0x6d, 0xac, 0xb8, 0xd2,
0x59, 0x6d, 0xfa, 0x64, 0x54, 0xf3, 0x3d, 0x3d, 0x9c, 0xd2, 0x6a, 0xb1, 0x93, 0x85, 0xf7, 0x57, 0xad, 0x39, 0x5b, 0x9b, 0x41, 0x19, 0xd5, 0x7c, 0x4f, 0x0f, 0xa7, 0xb8, 0x5a, 0xec, 0x84, 0xe1,
0x16, 0x37, 0x30, 0x50, 0xa2, 0x91, 0x8c, 0xdb, 0x31, 0x42, 0xd2, 0x12, 0x7a, 0x01, 0x7d, 0xc5, 0xfd, 0x16, 0xc6, 0x0d, 0x0c, 0x94, 0x68, 0x24, 0xe3, 0xd6, 0x47, 0x48, 0x5a, 0x42, 0xcf, 0xa0,
0x44, 0xcd, 0xed, 0x20, 0xd7, 0xc4, 0xc1, 0xe4, 0x27, 0x80, 0xa3, 0x5b, 0xb2, 0xf8, 0xc4, 0xf3, 0xaf, 0x98, 0xa8, 0xb9, 0x75, 0x72, 0x4d, 0x1c, 0x74, 0xee, 0x2d, 0xf8, 0xe7, 0xbd, 0x4d, 0xbe,
0x6c, 0xb3, 0x14, 0xd2, 0xa4, 0xa6, 0xc5, 0x39, 0x12, 0x6b, 0xe5, 0xbf, 0xa9, 0x75, 0x36, 0x75, 0x01, 0x38, 0xba, 0x25, 0x8b, 0x0f, 0x3c, 0xcf, 0x36, 0x4b, 0x21, 0x4d, 0xbe, 0x5a, 0x9c, 0xc3,
0x9c, 0xf4, 0x2f, 0x9d, 0x14, 0x85, 0xf9, 0xb8, 0x27, 0x87, 0x8e, 0xac, 0x13, 0x4d, 0xb5, 0x33, 0xb3, 0x9a, 0xff, 0x9a, 0x6f, 0x67, 0x53, 0x47, 0x72, 0xff, 0x52, 0x72, 0x51, 0x98, 0xcf, 0xe0,
0xe8, 0x13, 0x07, 0xa6, 0xea, 0xf2, 0xf1, 0x5d, 0xd5, 0xc2, 0x9b, 0x97, 0x70, 0x78, 0xba, 0x41, 0x64, 0xc5, 0x91, 0x95, 0xac, 0xa9, 0x76, 0x4e, 0x7c, 0xe2, 0xc0, 0x74, 0x5d, 0x92, 0xbe, 0xeb,
0x28, 0x80, 0xfd, 0xdd, 0xfb, 0x71, 0xcf, 0x3e, 0x3f, 0x8c, 0xc1, 0x47, 0x75, 0xff, 0x18, 0xf5, 0x5a, 0x78, 0xf5, 0x1c, 0x0e, 0x4f, 0x9a, 0x51, 0x00, 0xfb, 0xbb, 0xb7, 0xe3, 0x9e, 0xfd, 0x7d,
0x7e, 0x3f, 0x46, 0xbd, 0x1f, 0xc7, 0x08, 0xdc, 0x1f, 0x23, 0xf0, 0xeb, 0x18, 0x81, 0x87, 0x63, 0x37, 0x06, 0xef, 0xd5, 0xfd, 0x63, 0xd4, 0xfb, 0xf9, 0x18, 0xf5, 0xbe, 0x1e, 0x23, 0x70, 0x7f,
0x04, 0xbe, 0x7e, 0x79, 0xe2, 0x9d, 0x97, 0x4d, 0xa5, 0xf3, 0x92, 0xa7, 0xbb, 0x5c, 0xea, 0xce, 0x8c, 0xc0, 0x8f, 0x63, 0x04, 0x1e, 0x8e, 0x11, 0xf8, 0xfc, 0xe9, 0x3f, 0x5f, 0x87, 0x6c, 0x2a,
0x52, 0xbd, 0xcd, 0x2e, 0x7f, 0x87, 0x65, 0x60, 0xe5, 0xbb, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x9d, 0x97, 0x3c, 0xdd, 0xe5, 0x52, 0x77, 0x96, 0xea, 0x6d, 0x76, 0xf9, 0x70, 0x96, 0x81, 0x2d,
0xed, 0x3e, 0x9a, 0x58, 0x57, 0x03, 0x00, 0x00, 0xdf, 0xfc, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x21, 0x00, 0xa1, 0xc2, 0x81, 0x03, 0x00, 0x00,
} }
func (m *IPAddress) Marshal() (dAtA []byte, err error) { func (m *IPAddress) Marshal() (dAtA []byte, err error) {
@ -429,6 +430,11 @@ func (m *Route) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized) i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized)
} }
if m.Family != 0 {
i = encodeVarintTypes(dAtA, i, uint64(m.Family))
i--
dAtA[i] = 0x30
}
if m.Scope != 0 { if m.Scope != 0 {
i = encodeVarintTypes(dAtA, i, uint64(m.Scope)) i = encodeVarintTypes(dAtA, i, uint64(m.Scope))
i-- i--
@ -631,6 +637,9 @@ func (m *Route) Size() (n int) {
if m.Scope != 0 { if m.Scope != 0 {
n += 1 + sovTypes(uint64(m.Scope)) n += 1 + sovTypes(uint64(m.Scope))
} }
if m.Family != 0 {
n += 1 + sovTypes(uint64(m.Family))
}
if m.XXX_unrecognized != nil { if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized) n += len(m.XXX_unrecognized)
} }
@ -719,6 +728,7 @@ func (this *Route) String() string {
`Device:` + fmt.Sprintf("%v", this.Device) + `,`, `Device:` + fmt.Sprintf("%v", this.Device) + `,`,
`Source:` + fmt.Sprintf("%v", this.Source) + `,`, `Source:` + fmt.Sprintf("%v", this.Source) + `,`,
`Scope:` + fmt.Sprintf("%v", this.Scope) + `,`, `Scope:` + fmt.Sprintf("%v", this.Scope) + `,`,
`Family:` + fmt.Sprintf("%v", this.Family) + `,`,
`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
`}`, `}`,
}, "") }, "")
@ -865,7 +875,10 @@ func (m *IPAddress) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -1148,7 +1161,10 @@ func (m *Interface) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -1340,13 +1356,35 @@ func (m *Route) Unmarshal(dAtA []byte) error {
break break
} }
} }
case 6:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType)
}
m.Family = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTypes
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Family |= IPFamily(b&0x7F) << shift
if b < 0x80 {
break
}
}
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipTypes(dAtA[iNdEx:]) skippy, err := skipTypes(dAtA[iNdEx:])
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@ -1535,7 +1573,10 @@ func (m *ARPNeighbor) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {