[VOL-4968] added mandatory uni-id optional vlan-id params, remove igmp event mechanism
Change-Id: Id103b8bb2d882b6b02ac483c44f57639fbd62ba1
diff --git a/VERSION b/VERSION
index f2380cc..0dec25d 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.15.3
+1.15.0-dev
\ No newline at end of file
diff --git a/api/bbsim/bbsim.pb.go b/api/bbsim/bbsim.pb.go
index 71d1ee3..b5da1ce 100644
--- a/api/bbsim/bbsim.pb.go
+++ b/api/bbsim/bbsim.pb.go
@@ -1709,9 +1709,11 @@
}
type IgmpRequest struct {
- OnuReq *ONURequest `protobuf:"bytes,1,opt,name=OnuReq,proto3" json:"OnuReq,omitempty"`
- SubActionVal SubActionTypes `protobuf:"varint,2,opt,name=SubActionVal,proto3,enum=bbsim.SubActionTypes" json:"SubActionVal,omitempty"`
- GroupAddress string `protobuf:"bytes,3,opt,name=GroupAddress,proto3" json:"GroupAddress,omitempty"`
+ OnuSerialNumber string `protobuf:"bytes,1,opt,name=OnuSerialNumber,proto3" json:"OnuSerialNumber,omitempty"`
+ UniID int32 `protobuf:"varint,2,opt,name=UniID,proto3" json:"UniID,omitempty"`
+ SubActionVal SubActionTypes `protobuf:"varint,3,opt,name=SubActionVal,proto3,enum=bbsim.SubActionTypes" json:"SubActionVal,omitempty"`
+ GroupAddress string `protobuf:"bytes,4,opt,name=GroupAddress,proto3" json:"GroupAddress,omitempty"`
+ VLAN int32 `protobuf:"varint,5,opt,name=VLAN,proto3" json:"VLAN,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1742,11 +1744,18 @@
var xxx_messageInfo_IgmpRequest proto.InternalMessageInfo
-func (m *IgmpRequest) GetOnuReq() *ONURequest {
+func (m *IgmpRequest) GetOnuSerialNumber() string {
if m != nil {
- return m.OnuReq
+ return m.OnuSerialNumber
}
- return nil
+ return ""
+}
+
+func (m *IgmpRequest) GetUniID() int32 {
+ if m != nil {
+ return m.UniID
+ }
+ return 0
}
func (m *IgmpRequest) GetSubActionVal() SubActionTypes {
@@ -1763,6 +1772,13 @@
return ""
}
+func (m *IgmpRequest) GetVLAN() int32 {
+ if m != nil {
+ return m.VLAN
+ }
+ return 0
+}
+
type Flows struct {
FlowCount uint32 `protobuf:"varint,1,opt,name=flow_count,json=flowCount,proto3" json:"flow_count,omitempty"`
Flows []*openolt.Flow `protobuf:"bytes,2,rep,name=flows,proto3" json:"flows,omitempty"`
@@ -1918,151 +1934,151 @@
func init() { proto.RegisterFile("api/bbsim/bbsim.proto", fileDescriptor_ef7750073d18011b) }
var fileDescriptor_ef7750073d18011b = []byte{
- // 2290 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x4f, 0x6f, 0xdb, 0xc8,
- 0x15, 0xb7, 0xfe, 0x59, 0xd2, 0x93, 0x25, 0xd1, 0x93, 0xd8, 0x4b, 0x38, 0xde, 0x8d, 0xc1, 0xcd,
- 0x2e, 0x9c, 0x60, 0xd7, 0xd9, 0x24, 0xdd, 0x6d, 0x72, 0x94, 0x25, 0x5a, 0xe1, 0x5a, 0x26, 0x89,
- 0xa1, 0xe4, 0x20, 0xed, 0x41, 0xa0, 0xc9, 0xb1, 0x4c, 0x94, 0x22, 0x15, 0x92, 0xb2, 0xeb, 0x0f,
- 0xd0, 0x63, 0xcf, 0x3d, 0x2e, 0xd0, 0x0f, 0xd0, 0xef, 0xd1, 0x5b, 0xef, 0x05, 0xfa, 0x55, 0x5a,
- 0xcc, 0x70, 0x48, 0x91, 0x92, 0xec, 0x38, 0xa7, 0x5e, 0x0c, 0xbe, 0xdf, 0xfb, 0x33, 0x6f, 0xde,
- 0x9f, 0x99, 0x37, 0x32, 0xec, 0x98, 0x33, 0xe7, 0xe5, 0xc5, 0x45, 0xe8, 0x4c, 0xe3, 0xbf, 0x47,
- 0xb3, 0xc0, 0x8f, 0x7c, 0x54, 0x61, 0xc4, 0xde, 0x93, 0x6b, 0xdf, 0x8d, 0xae, 0xcc, 0x31, 0x03,
- 0xc3, 0x97, 0xfe, 0x8c, 0x78, 0xbe, 0x1b, 0xc5, 0x32, 0x7b, 0x07, 0x79, 0x66, 0x44, 0xac, 0x2b,
- 0xfa, 0x7d, 0xe9, 0xb8, 0x24, 0x96, 0x90, 0xfe, 0x5b, 0x84, 0xaa, 0xae, 0xa9, 0xba, 0x1f, 0x44,
- 0xa8, 0x05, 0x45, 0xa5, 0x27, 0x16, 0x0e, 0x0a, 0x87, 0x15, 0x5c, 0x54, 0x7a, 0x68, 0x1f, 0xea,
- 0xda, 0x8c, 0x04, 0x46, 0x64, 0x46, 0x44, 0x2c, 0x1e, 0x14, 0x0e, 0xeb, 0x78, 0x01, 0xa0, 0x67,
- 0xd0, 0x54, 0xbc, 0x88, 0x04, 0x9e, 0xe9, 0xc6, 0x12, 0x25, 0x26, 0x91, 0x07, 0xd1, 0x01, 0x34,
- 0x74, 0xd3, 0xfa, 0x13, 0x89, 0xba, 0xfe, 0xdc, 0x8b, 0xc4, 0xf2, 0x41, 0xe1, 0xb0, 0x8c, 0xb3,
- 0x10, 0x3a, 0x81, 0x76, 0xc7, 0x75, 0x7d, 0xcb, 0x8c, 0x88, 0xad, 0x79, 0x73, 0xc5, 0x0e, 0xc5,
- 0xca, 0x41, 0xe9, 0xb0, 0xf1, 0x7a, 0xff, 0x28, 0xde, 0xae, 0xee, 0x7b, 0xa9, 0x00, 0x26, 0xa1,
- 0x3f, 0x0f, 0x2c, 0x12, 0xe2, 0x65, 0x25, 0xf4, 0x2b, 0x6c, 0xa7, 0x50, 0x9f, 0x4c, 0xe9, 0x8e,
- 0x42, 0x71, 0xf3, 0x01, 0x96, 0x56, 0xd5, 0x72, 0xb6, 0xd8, 0x07, 0xf5, 0xaa, 0xfa, 0x45, 0xb6,
- 0x12, 0x35, 0xf4, 0x0d, 0xc0, 0x90, 0x58, 0x57, 0x9e, 0xef, 0xfa, 0x93, 0x5b, 0xb1, 0xc6, 0x82,
- 0x94, 0x41, 0xa4, 0x53, 0xd8, 0x59, 0x6b, 0x0b, 0x49, 0xb0, 0x65, 0x90, 0xc0, 0x31, 0x5d, 0x75,
- 0x3e, 0xbd, 0x20, 0x01, 0x4b, 0x4c, 0x1d, 0xe7, 0x30, 0x96, 0x32, 0x9b, 0xe5, 0x86, 0xa6, 0xcc,
- 0x96, 0x7e, 0x0f, 0x55, 0x55, 0x55, 0xbe, 0x3c, 0x9b, 0xd2, 0x5f, 0x8b, 0x50, 0xd2, 0xdc, 0x55,
- 0xad, 0x65, 0x27, 0x8a, 0x6b, 0x9c, 0xc8, 0x59, 0x2e, 0x7d, 0xb6, 0x4e, 0xca, 0xeb, 0xea, 0x84,
- 0xae, 0xab, 0x8b, 0x55, 0xc6, 0x2a, 0x2a, 0x3a, 0x7a, 0x01, 0x35, 0xbe, 0x91, 0xa4, 0x1c, 0x5a,
- 0x3c, 0xf0, 0x1c, 0xc6, 0x29, 0x9f, 0xca, 0xf2, 0x12, 0x4e, 0x12, 0x9e, 0xc8, 0x72, 0x18, 0xa7,
- 0x7c, 0xf4, 0x3d, 0xb4, 0x54, 0xcf, 0xe9, 0x5d, 0x59, 0xb3, 0x61, 0x60, 0xce, 0xce, 0x1d, 0x9b,
- 0x65, 0xa4, 0x82, 0x97, 0x50, 0xe9, 0x2f, 0x05, 0x10, 0x35, 0x37, 0x5a, 0x49, 0xcb, 0xf0, 0x76,
- 0x46, 0xd0, 0x5b, 0x28, 0x47, 0xb7, 0x33, 0xc2, 0xc2, 0xd4, 0x7a, 0xfd, 0x8c, 0x2f, 0x76, 0x97,
- 0xf8, 0x11, 0xfd, 0x83, 0x99, 0x86, 0xf4, 0x12, 0xca, 0xcc, 0x42, 0x03, 0xaa, 0x23, 0xf5, 0x54,
- 0xd5, 0x3e, 0xa8, 0xc2, 0x06, 0xda, 0x82, 0x5a, 0x67, 0x30, 0xd0, 0xba, 0x63, 0xa5, 0x27, 0x14,
- 0x28, 0xd5, 0x97, 0xcf, 0xc6, 0xba, 0x86, 0x87, 0x42, 0x51, 0xfa, 0x47, 0x01, 0x1e, 0xaf, 0x33,
- 0x8c, 0x50, 0x6c, 0x89, 0x57, 0x45, 0x6c, 0x75, 0x1f, 0xea, 0xba, 0xef, 0xd1, 0x8d, 0xf2, 0xa2,
- 0x68, 0xe2, 0x05, 0x80, 0x1e, 0x43, 0x85, 0xb5, 0x0a, 0x4b, 0x51, 0x13, 0xc7, 0x04, 0xda, 0x85,
- 0x4d, 0xca, 0x57, 0x7d, 0x96, 0x97, 0x26, 0xe6, 0x14, 0x2d, 0xdb, 0x64, 0x2d, 0xc5, 0x16, 0x2b,
- 0x2c, 0x48, 0x19, 0x84, 0xea, 0x9d, 0xb8, 0xfe, 0x8d, 0x62, 0x8b, 0x9b, 0xac, 0xa7, 0x39, 0x25,
- 0x61, 0xd8, 0x59, 0xe7, 0x6f, 0x88, 0xde, 0x41, 0x3d, 0x48, 0x08, 0xb1, 0xc0, 0xd2, 0xf4, 0xe4,
- 0x9e, 0xc8, 0xe1, 0x85, 0xb4, 0xf4, 0x5b, 0x19, 0x4a, 0x9a, 0x3a, 0xfa, 0xbf, 0x15, 0x67, 0x26,
- 0xae, 0x3d, 0x1e, 0x8a, 0x05, 0x80, 0x0e, 0xa0, 0xfe, 0xfe, 0xa6, 0x63, 0xdb, 0x01, 0x09, 0xc3,
- 0xb8, 0xbf, 0x8f, 0x8b, 0x62, 0x01, 0x2f, 0x40, 0xb4, 0x97, 0xc6, 0xb8, 0x4e, 0x95, 0x19, 0x3b,
- 0x89, 0xf3, 0x11, 0xd4, 0x42, 0x12, 0x5c, 0x3b, 0x34, 0x2a, 0x90, 0x2b, 0x5e, 0x23, 0x86, 0x99,
- 0x74, 0x2a, 0x83, 0x7a, 0xf0, 0xb5, 0x32, 0x35, 0x27, 0xc4, 0xf0, 0x2f, 0xa3, 0x1b, 0x33, 0x20,
- 0xf2, 0x9f, 0x67, 0xc4, 0x8a, 0x88, 0x6d, 0x10, 0x2b, 0x72, 0x7c, 0x2f, 0x14, 0x1b, 0xcc, 0xbf,
- 0xfb, 0x85, 0x56, 0xac, 0x60, 0x62, 0x11, 0xe7, 0x3a, 0x63, 0x65, 0x6b, 0x8d, 0x95, 0x65, 0x21,
- 0xf4, 0x13, 0x3c, 0xea, 0x58, 0x91, 0x73, 0x4d, 0x98, 0x98, 0xec, 0x45, 0x4e, 0x74, 0xab, 0xd8,
- 0x62, 0x93, 0xe9, 0xae, 0x63, 0xa1, 0x5f, 0x60, 0xb7, 0xeb, 0x4f, 0xa7, 0x4e, 0x14, 0x11, 0x3b,
- 0xaf, 0xd4, 0x62, 0x4a, 0x77, 0x70, 0xd1, 0x37, 0x50, 0x9e, 0x7b, 0x4e, 0x28, 0xb6, 0x59, 0x84,
- 0x80, 0x47, 0x68, 0xa4, 0x2a, 0x98, 0xe1, 0xd2, 0xbf, 0x0b, 0x50, 0x1a, 0xa9, 0xca, 0x4a, 0x85,
- 0xf0, 0x9a, 0xef, 0xf1, 0x23, 0x32, 0x26, 0x38, 0x6a, 0x78, 0xbc, 0x1e, 0x62, 0x82, 0x76, 0xd4,
- 0x19, 0x51, 0x7a, 0xbc, 0x0f, 0xd8, 0x77, 0xbe, 0x7a, 0x2a, 0xcb, 0xd5, 0xb3, 0xe8, 0x9d, 0x4d,
- 0x66, 0x3e, 0xc9, 0xe9, 0x8b, 0x4c, 0x4e, 0xab, 0xeb, 0x72, 0x9a, 0xc9, 0xa7, 0xc4, 0xfb, 0xb8,
- 0xc6, 0xce, 0x92, 0x44, 0x6e, 0xe4, 0x39, 0xf1, 0xa9, 0x41, 0xff, 0x4a, 0xff, 0xac, 0x40, 0x95,
- 0x6b, 0x52, 0x2f, 0x55, 0x73, 0x9a, 0xf6, 0x3d, 0xfd, 0xa6, 0x5e, 0x2e, 0x2a, 0x90, 0x1f, 0xed,
- 0x8b, 0xea, 0xbb, 0x73, 0xb7, 0xc6, 0xd0, 0x9c, 0xb0, 0xdd, 0x56, 0x30, 0xfb, 0xa6, 0x58, 0x97,
- 0x62, 0x71, 0x89, 0xb3, 0x6f, 0x7a, 0x0e, 0xa8, 0x84, 0xd8, 0xa1, 0x6c, 0xce, 0x7c, 0x97, 0xed,
- 0xb3, 0x86, 0x33, 0x08, 0x5d, 0x9b, 0x51, 0xf4, 0xf0, 0x64, 0xe7, 0x77, 0x0d, 0x2f, 0x80, 0x94,
- 0xab, 0x4c, 0xa6, 0x33, 0xb6, 0xc5, 0x84, 0x4b, 0x01, 0x24, 0x42, 0x95, 0x5f, 0xb9, 0x71, 0x63,
- 0xe0, 0x84, 0xa4, 0xab, 0x32, 0xf3, 0x71, 0xe0, 0x21, 0xbe, 0x34, 0x17, 0x08, 0xb5, 0x4b, 0xed,
- 0xc7, 0xec, 0x46, 0xbc, 0xe3, 0x14, 0x58, 0xed, 0xea, 0xad, 0x3b, 0xba, 0x5a, 0xe9, 0x9f, 0xe9,
- 0xb1, 0x44, 0x33, 0xb6, 0x91, 0x02, 0x34, 0x6a, 0x23, 0xcf, 0xe1, 0x85, 0xd9, 0xc4, 0x31, 0x41,
- 0xc7, 0x19, 0x9a, 0x1a, 0x73, 0x72, 0x66, 0x46, 0xd6, 0x95, 0xd8, 0x66, 0x5e, 0x67, 0x21, 0x7a,
- 0xc1, 0x8c, 0x42, 0x1a, 0x39, 0x3d, 0x70, 0xfc, 0xc0, 0x89, 0x6e, 0x45, 0x81, 0x19, 0x58, 0x42,
- 0x63, 0x39, 0x23, 0x2b, 0xb7, 0x9d, 0xc8, 0x19, 0x4b, 0x72, 0xbd, 0xbc, 0x3d, 0x14, 0xcb, 0xf5,
- 0x56, 0xec, 0xf5, 0xf2, 0xf6, 0x1e, 0x25, 0x72, 0x39, 0x7b, 0x49, 0x3e, 0x75, 0x5d, 0xf7, 0x65,
- 0xf1, 0x71, 0x26, 0x9f, 0x0c, 0xa1, 0x3d, 0xdd, 0xf5, 0xbd, 0x4b, 0x67, 0x32, 0x0f, 0xc8, 0x99,
- 0x69, 0x25, 0x55, 0xb5, 0xc3, 0x04, 0xd7, 0xb1, 0xd0, 0x0f, 0xb0, 0x2d, 0x7b, 0xe6, 0x85, 0x4b,
- 0xb1, 0x01, 0x31, 0x03, 0xcf, 0xf1, 0x26, 0xe2, 0x2e, 0x93, 0x5f, 0x65, 0x48, 0x26, 0x3c, 0xd6,
- 0xd4, 0xd1, 0x30, 0x30, 0x2f, 0x2f, 0x1d, 0xcb, 0xb0, 0xae, 0x88, 0x3d, 0x77, 0x49, 0x10, 0x22,
- 0x05, 0xda, 0x11, 0x05, 0x17, 0x10, 0x2b, 0xf1, 0xc6, 0xeb, 0xa7, 0x47, 0xb9, 0xb1, 0x75, 0x45,
- 0x13, 0x2f, 0xeb, 0x49, 0x87, 0x50, 0xd6, 0xd4, 0x51, 0x88, 0x0e, 0xa0, 0xe2, 0x44, 0x64, 0x9a,
- 0xdc, 0x36, 0xc9, 0xa9, 0xa1, 0xa9, 0x23, 0x1c, 0x33, 0xa4, 0x9f, 0xa0, 0x66, 0x24, 0x8d, 0xf8,
- 0x2c, 0x2f, 0xbd, 0xdc, 0xb1, 0x5c, 0xe3, 0x10, 0xca, 0x23, 0x55, 0xb9, 0xd3, 0x36, 0x3d, 0x91,
- 0x52, 0xdb, 0x40, 0x57, 0x22, 0x9f, 0xe6, 0x24, 0x8c, 0x1e, 0x32, 0xcc, 0x49, 0x2f, 0x00, 0x74,
- 0x4d, 0x4d, 0x34, 0x72, 0x97, 0x79, 0x61, 0xe9, 0x32, 0x97, 0x06, 0x00, 0x74, 0x2d, 0x2e, 0x7b,
- 0x08, 0x6d, 0xda, 0xd5, 0xab, 0x0b, 0x2c, 0xc3, 0x49, 0x59, 0xf7, 0xf8, 0x31, 0x11, 0x13, 0xd2,
- 0x7f, 0x4a, 0x50, 0xef, 0xb8, 0x66, 0x30, 0x65, 0xc7, 0xcd, 0xbf, 0x4a, 0x50, 0xa1, 0x1f, 0x21,
- 0xaa, 0x42, 0x69, 0xa0, 0x19, 0xc2, 0x06, 0x6a, 0x01, 0xf4, 0x3e, 0x2a, 0x6a, 0x7f, 0xdc, 0xef,
- 0x18, 0xba, 0x50, 0x40, 0x4d, 0xa8, 0x6b, 0xea, 0x68, 0xdc, 0x19, 0x74, 0xf0, 0x99, 0x50, 0x44,
- 0x5f, 0xc1, 0x23, 0x4a, 0x1a, 0xc3, 0x0e, 0x1e, 0x8e, 0xf4, 0xf1, 0x49, 0x47, 0x19, 0x8c, 0xb0,
- 0x2c, 0x94, 0xd0, 0x2e, 0x20, 0xc6, 0x50, 0xfa, 0x6a, 0x67, 0x30, 0xee, 0xc9, 0x7d, 0xdc, 0xe9,
- 0xc9, 0x42, 0x39, 0x51, 0xe8, 0x61, 0xe5, 0x64, 0x38, 0xd6, 0x4e, 0xc6, 0x1f, 0x14, 0xb5, 0xa7,
- 0x7d, 0x10, 0x2a, 0x68, 0x1f, 0x44, 0xca, 0x18, 0x68, 0x86, 0x41, 0x71, 0xed, 0xac, 0xab, 0x8c,
- 0xbb, 0xef, 0x3b, 0xaa, 0x2a, 0x0f, 0x84, 0xcd, 0x74, 0x1d, 0x66, 0xce, 0x48, 0xd7, 0xa9, 0xa2,
- 0xe7, 0xf0, 0x1d, 0x65, 0x0c, 0x71, 0x47, 0x35, 0xce, 0x14, 0xc3, 0x50, 0x34, 0x75, 0xac, 0xa8,
- 0x43, 0x19, 0x9f, 0xc8, 0x58, 0x56, 0xbb, 0xf2, 0xf8, 0x43, 0x07, 0xab, 0x8a, 0xda, 0x17, 0x6a,
- 0x68, 0x0f, 0x76, 0x99, 0xeb, 0xdd, 0xa1, 0x72, 0xde, 0x19, 0x52, 0xc1, 0xc4, 0x4c, 0x1d, 0x89,
- 0xac, 0x38, 0xc7, 0x3a, 0xd6, 0xba, 0xb2, 0x61, 0xd0, 0xfd, 0xca, 0x18, 0x6b, 0x58, 0x00, 0x74,
- 0x00, 0xfb, 0x59, 0xbf, 0x4e, 0xe5, 0x8f, 0x63, 0xe3, 0xa3, 0xda, 0x4d, 0x75, 0x1b, 0x68, 0x07,
- 0xb6, 0xa9, 0x84, 0x32, 0x1c, 0x8d, 0x75, 0x4d, 0xa5, 0xb1, 0x18, 0x1a, 0xc2, 0x16, 0xda, 0x86,
- 0x66, 0x1a, 0x29, 0xaa, 0x2e, 0x34, 0x97, 0xa1, 0x63, 0xa1, 0x95, 0x6c, 0x2c, 0x81, 0xf4, 0xee,
- 0x98, 0xee, 0x42, 0x68, 0x27, 0xf1, 0xc8, 0x31, 0xba, 0xdc, 0x2b, 0x01, 0x21, 0x68, 0x65, 0xb9,
- 0x27, 0x8a, 0xb0, 0x8d, 0x1e, 0x41, 0x3b, 0x8b, 0x75, 0xce, 0x14, 0x01, 0x49, 0x6f, 0xa1, 0xc5,
- 0xf2, 0xab, 0x9b, 0x81, 0x39, 0x25, 0x11, 0x09, 0x90, 0x00, 0xa5, 0x53, 0x72, 0xcb, 0xcb, 0x84,
- 0x7e, 0xd2, 0xd2, 0x38, 0x37, 0xdd, 0x79, 0xf2, 0x38, 0x88, 0x09, 0xe9, 0xef, 0x05, 0x66, 0x8f,
- 0x69, 0x67, 0x4a, 0x33, 0xad, 0x16, 0x6e, 0x61, 0x01, 0x3c, 0x68, 0x2a, 0xdb, 0x85, 0x4d, 0x7a,
- 0xcc, 0xce, 0x43, 0x7e, 0x29, 0x71, 0x0a, 0xfd, 0x0c, 0x90, 0xba, 0x18, 0x8a, 0x65, 0xd6, 0x5b,
- 0x3b, 0xbc, 0xb7, 0xf2, 0x1b, 0xc0, 0x19, 0x41, 0xe9, 0x13, 0xb4, 0xb5, 0xc1, 0x30, 0xe7, 0xe3,
- 0x01, 0x34, 0xd8, 0x71, 0x7f, 0x69, 0x5a, 0x84, 0x8f, 0x04, 0x4d, 0x9c, 0x85, 0xd2, 0x5b, 0x82,
- 0x92, 0x6c, 0x27, 0xc5, 0xcc, 0x2d, 0x91, 0x80, 0x77, 0x79, 0x4a, 0x1f, 0x08, 0xcd, 0x73, 0x12,
- 0x84, 0x8e, 0xef, 0xf1, 0x3d, 0x89, 0x50, 0xbd, 0x8e, 0x01, 0x1e, 0x93, 0x84, 0xa4, 0xf1, 0xba,
- 0x98, 0x3b, 0xae, 0x3d, 0x74, 0xa6, 0xe9, 0xd3, 0x2b, 0x05, 0xe8, 0x89, 0x6c, 0xb1, 0xa9, 0xe7,
- 0xbd, 0x19, 0x5e, 0xf1, 0x55, 0x32, 0x08, 0xd5, 0x9e, 0x38, 0x11, 0x77, 0x22, 0x9e, 0x4f, 0x17,
- 0x80, 0xf4, 0x16, 0x6a, 0x03, 0x7f, 0x32, 0x20, 0xd7, 0xc4, 0xa5, 0x19, 0x74, 0xe9, 0x07, 0x5f,
- 0x3f, 0x26, 0xe8, 0x0e, 0x2c, 0xd3, 0x75, 0x79, 0x26, 0x6a, 0x98, 0x53, 0x92, 0x0c, 0x35, 0x4c,
- 0xc2, 0x99, 0xef, 0x85, 0x04, 0x3d, 0x85, 0x46, 0xc8, 0xec, 0x8d, 0x2d, 0xdf, 0x26, 0x7c, 0x80,
- 0x82, 0x18, 0xea, 0xfa, 0x36, 0xa1, 0x9b, 0x9b, 0x92, 0x30, 0x34, 0x27, 0xc9, 0x06, 0x12, 0x52,
- 0xfa, 0x5b, 0x01, 0x1a, 0xf4, 0x36, 0x4f, 0x02, 0xff, 0x1c, 0x36, 0x35, 0x6f, 0x8e, 0xc9, 0x27,
- 0x7e, 0x7e, 0x6f, 0x67, 0x8e, 0xdd, 0x58, 0x04, 0x73, 0x01, 0xf4, 0x0e, 0xb6, 0x8c, 0xf9, 0x45,
- 0x87, 0x4d, 0x93, 0xe7, 0xa6, 0xcb, 0x2c, 0xb7, 0xd2, 0x7c, 0xa7, 0x2c, 0x76, 0x16, 0xe1, 0x9c,
- 0x28, 0x2d, 0xb2, 0x7e, 0xe0, 0xcf, 0x67, 0xc9, 0xfd, 0x14, 0x87, 0x2d, 0x87, 0x49, 0xa7, 0x50,
- 0xa1, 0x8f, 0x92, 0x10, 0x7d, 0x0d, 0x70, 0xe9, 0xfa, 0x37, 0x63, 0x8b, 0xfd, 0x06, 0xc1, 0xcf,
- 0x52, 0x8a, 0xc4, 0xbf, 0x40, 0x7c, 0x0b, 0x15, 0x4a, 0xd0, 0xd1, 0x89, 0xd6, 0x5b, 0xf3, 0x28,
- 0xf9, 0x11, 0x85, 0x6a, 0xe3, 0x98, 0x27, 0x3d, 0x85, 0x2a, 0xcd, 0x96, 0x3f, 0x8f, 0x68, 0x98,
- 0x6d, 0xe2, 0x9a, 0xb7, 0xdc, 0x52, 0x4c, 0x48, 0x55, 0xa8, 0xc8, 0xd3, 0x59, 0x74, 0xfb, 0x62,
- 0x1f, 0xaa, 0x7c, 0x7c, 0xa3, 0xe7, 0xa7, 0x3c, 0x7c, 0x2f, 0x6c, 0xa0, 0x1a, 0x94, 0x75, 0x6d,
- 0x68, 0x08, 0x85, 0x17, 0xaf, 0xa0, 0x95, 0xdf, 0x18, 0xe5, 0xfd, 0xaa, 0x29, 0xf4, 0x21, 0x58,
- 0x87, 0xca, 0x40, 0xee, 0x9c, 0xcb, 0x42, 0x01, 0x01, 0x6c, 0x52, 0xf0, 0xfc, 0x8d, 0x50, 0x7c,
- 0xfd, 0xdb, 0x16, 0x54, 0x8e, 0x8f, 0x0d, 0x67, 0x8a, 0x5e, 0x42, 0x95, 0xd7, 0x1c, 0xda, 0xe2,
- 0x51, 0x62, 0x6b, 0xee, 0x3d, 0xe6, 0x54, 0xae, 0x22, 0xa5, 0x0d, 0xf4, 0x0a, 0x1a, 0x06, 0x89,
- 0xd2, 0x02, 0x69, 0x73, 0xb1, 0x04, 0xd8, 0x5b, 0x06, 0xa4, 0x0d, 0xf4, 0x0c, 0x36, 0xfb, 0x24,
- 0xd2, 0xdc, 0x68, 0x69, 0x09, 0x58, 0x3c, 0xd6, 0xa4, 0x0d, 0xf4, 0x47, 0x10, 0x63, 0xa9, 0x35,
- 0x2f, 0xbd, 0xa7, 0x9f, 0x79, 0x10, 0xef, 0xed, 0xdf, 0x23, 0x10, 0x4a, 0x1b, 0xe8, 0x47, 0x00,
- 0xdd, 0xbf, 0x21, 0x81, 0xef, 0xad, 0xba, 0x91, 0x78, 0x9c, 0x94, 0xae, 0xb4, 0x81, 0x8e, 0xa0,
- 0x61, 0x5c, 0xcd, 0x23, 0xdb, 0xbf, 0x79, 0x98, 0xfc, 0x0f, 0x50, 0xc7, 0xe4, 0xc2, 0xf7, 0xa3,
- 0x07, 0x49, 0xd3, 0x84, 0x45, 0xfe, 0x6c, 0x82, 0xf5, 0x2e, 0x9d, 0x05, 0x48, 0xf0, 0x79, 0x95,
- 0xd7, 0xd0, 0x36, 0x22, 0x33, 0x88, 0xbe, 0x44, 0xe7, 0x17, 0xd8, 0xc6, 0x24, 0x5c, 0xd2, 0x4a,
- 0x86, 0x10, 0x5e, 0x79, 0xeb, 0xf4, 0x9e, 0xc7, 0xe9, 0x52, 0x47, 0x68, 0xb5, 0xd1, 0xf6, 0x32,
- 0x23, 0x8f, 0xb4, 0x81, 0xbe, 0xa7, 0xe3, 0x76, 0xc4, 0x46, 0xa3, 0xbc, 0x3b, 0x8d, 0x85, 0x18,
- 0x0d, 0xff, 0x1b, 0x68, 0xf4, 0x49, 0x94, 0x0e, 0x46, 0xdb, 0x99, 0xd9, 0x86, 0xdb, 0x6d, 0xe7,
- 0x87, 0xa3, 0x90, 0x25, 0x01, 0xa8, 0x71, 0x6f, 0x3e, 0xf2, 0x9c, 0x70, 0x9d, 0x2f, 0x8d, 0x85,
- 0x19, 0xbe, 0x48, 0x9a, 0xb4, 0xf5, 0xce, 0xdf, 0x11, 0x58, 0xae, 0xd4, 0x71, 0xdd, 0x35, 0x3b,
- 0x59, 0xa3, 0xf3, 0x0e, 0xb6, 0x33, 0x0b, 0x85, 0x9a, 0xa7, 0x6b, 0x6a, 0xba, 0xdc, 0x62, 0xde,
- 0x5a, 0xbf, 0x5c, 0x5a, 0x87, 0x0f, 0x76, 0xf1, 0x15, 0xb4, 0xb8, 0xce, 0x83, 0x3d, 0x7c, 0x0b,
- 0xc2, 0x62, 0x99, 0x2f, 0x72, 0xf0, 0x77, 0xb0, 0xc5, 0x8b, 0x26, 0x7e, 0x8c, 0xdd, 0x93, 0xaa,
- 0x8c, 0xd6, 0x1b, 0x68, 0x70, 0x2d, 0xf6, 0x46, 0x7b, 0x98, 0xd2, 0x31, 0xec, 0x18, 0x2c, 0xbf,
- 0xec, 0x96, 0x55, 0x3c, 0xdb, 0xb1, 0x4c, 0x7a, 0x86, 0xa1, 0xdd, 0x45, 0x58, 0xb2, 0x17, 0xf0,
- 0x3d, 0x36, 0x68, 0xd7, 0xdf, 0x61, 0x23, 0x7f, 0x89, 0xaf, 0xb3, 0xf1, 0x23, 0xd4, 0xfa, 0x24,
- 0x8a, 0xcf, 0xf5, 0x35, 0x19, 0x49, 0x82, 0xcd, 0x04, 0x58, 0x6c, 0xdb, 0xdd, 0x2b, 0xd3, 0x9b,
- 0x10, 0x7a, 0x45, 0xc5, 0x2f, 0x3b, 0xc4, 0x45, 0x32, 0x97, 0xd6, 0xba, 0x85, 0x4e, 0xe1, 0xab,
- 0xb8, 0xa0, 0x57, 0xdf, 0x2a, 0x6b, 0xd6, 0x7d, 0xb2, 0x80, 0x56, 0xe4, 0xd3, 0xd6, 0x63, 0xad,
- 0xb1, 0xbe, 0xf5, 0x78, 0x57, 0xfc, 0x4c, 0x67, 0x92, 0x6b, 0xd3, 0x75, 0x6c, 0x33, 0x22, 0x67,
- 0x76, 0xf8, 0xb0, 0xa2, 0x3b, 0xfe, 0xee, 0x0f, 0xdf, 0x4e, 0x9c, 0xe8, 0x6a, 0x7e, 0x71, 0x64,
- 0xf9, 0x53, 0xf6, 0x3f, 0x00, 0xcb, 0x0f, 0x6c, 0xfe, 0x4f, 0x83, 0xf4, 0xdf, 0x07, 0x17, 0x9b,
- 0xec, 0x37, 0xff, 0x37, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x75, 0xfb, 0x84, 0x52, 0x18,
- 0x00, 0x00,
+ // 2295 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xdd, 0x72, 0xdb, 0xc6,
+ 0xf5, 0x17, 0x29, 0x52, 0x24, 0x0f, 0x45, 0x12, 0x5a, 0x5b, 0x0a, 0x46, 0x56, 0x62, 0x0d, 0xe2,
+ 0x64, 0x14, 0x4f, 0x22, 0xc7, 0xf6, 0x3f, 0xf9, 0xdb, 0x97, 0x14, 0x49, 0xd1, 0x88, 0x28, 0x00,
+ 0xb3, 0x20, 0xe5, 0x71, 0x7b, 0xc1, 0x81, 0xc8, 0x15, 0x85, 0x29, 0x08, 0x30, 0x00, 0x28, 0x55,
+ 0x0f, 0xd0, 0xcb, 0x3e, 0x43, 0x66, 0xfa, 0x00, 0x7d, 0x86, 0xde, 0xf6, 0xae, 0xf7, 0x9d, 0xe9,
+ 0xab, 0xb4, 0x73, 0x16, 0x0b, 0x10, 0x20, 0x29, 0x5b, 0x9e, 0x5e, 0xf4, 0x46, 0x83, 0xf3, 0x3b,
+ 0x1f, 0x7b, 0xf6, 0x7c, 0xec, 0x9e, 0x15, 0x61, 0xd7, 0x9a, 0xd9, 0x2f, 0x2e, 0x2f, 0x03, 0x7b,
+ 0x1a, 0xfd, 0x3d, 0x9e, 0xf9, 0x5e, 0xe8, 0x91, 0x22, 0x27, 0xf6, 0x9f, 0xdc, 0x78, 0x4e, 0x78,
+ 0x6d, 0x0d, 0x39, 0x18, 0xbc, 0xf0, 0x66, 0xcc, 0xf5, 0x9c, 0x30, 0x92, 0xd9, 0x3f, 0xcc, 0x32,
+ 0x43, 0x36, 0xba, 0xc6, 0xef, 0x2b, 0xdb, 0x61, 0x91, 0x84, 0xf2, 0xef, 0x3c, 0x94, 0x0c, 0x5d,
+ 0x33, 0x3c, 0x3f, 0x24, 0x75, 0xc8, 0xab, 0x6d, 0x39, 0x77, 0x98, 0x3b, 0x2a, 0xd2, 0xbc, 0xda,
+ 0x26, 0x07, 0x50, 0xd1, 0x67, 0xcc, 0x37, 0x43, 0x2b, 0x64, 0x72, 0xfe, 0x30, 0x77, 0x54, 0xa1,
+ 0x0b, 0x80, 0x3c, 0x83, 0x9a, 0xea, 0x86, 0xcc, 0x77, 0x2d, 0x27, 0x92, 0xd8, 0xe4, 0x12, 0x59,
+ 0x90, 0x1c, 0x42, 0xd5, 0xb0, 0x46, 0x7f, 0x60, 0x61, 0xcb, 0x9b, 0xbb, 0xa1, 0x5c, 0x38, 0xcc,
+ 0x1d, 0x15, 0x68, 0x1a, 0x22, 0xa7, 0xd0, 0x68, 0x3a, 0x8e, 0x37, 0xb2, 0x42, 0x36, 0xd6, 0xdd,
+ 0xb9, 0x3a, 0x0e, 0xe4, 0xe2, 0xe1, 0xe6, 0x51, 0xf5, 0xd5, 0xc1, 0x71, 0xb4, 0x5d, 0xc3, 0x73,
+ 0x13, 0x01, 0xca, 0x02, 0x6f, 0xee, 0x8f, 0x58, 0x40, 0x97, 0x95, 0xc8, 0x2f, 0xb0, 0x93, 0x40,
+ 0x5d, 0x36, 0xc5, 0x1d, 0x05, 0xf2, 0xd6, 0x03, 0x2c, 0xad, 0xaa, 0x65, 0x6c, 0xf1, 0x0f, 0xf4,
+ 0xaa, 0xf4, 0x59, 0xb6, 0x62, 0x35, 0xf2, 0x15, 0x40, 0x9f, 0x8d, 0xae, 0x5d, 0xcf, 0xf1, 0x26,
+ 0x77, 0x72, 0x99, 0x07, 0x29, 0x85, 0x28, 0x67, 0xb0, 0xbb, 0xd6, 0x16, 0x51, 0x60, 0xdb, 0x64,
+ 0xbe, 0x6d, 0x39, 0xda, 0x7c, 0x7a, 0xc9, 0x7c, 0x9e, 0x98, 0x0a, 0xcd, 0x60, 0x3c, 0x65, 0x63,
+ 0x9e, 0x1b, 0x4c, 0xd9, 0x58, 0xf9, 0x7f, 0x28, 0x69, 0x9a, 0xfa, 0xf9, 0xd9, 0x54, 0xfe, 0x9c,
+ 0x87, 0x4d, 0xdd, 0x59, 0xd5, 0x5a, 0x76, 0x22, 0xbf, 0xc6, 0x89, 0x8c, 0xe5, 0xcd, 0x4f, 0xd6,
+ 0x49, 0x61, 0x5d, 0x9d, 0xe0, 0xba, 0x86, 0x5c, 0xe2, 0xac, 0xbc, 0x6a, 0x90, 0xe7, 0x50, 0x16,
+ 0x1b, 0x89, 0xcb, 0xa1, 0x2e, 0x02, 0x2f, 0x60, 0x9a, 0xf0, 0x51, 0x56, 0x94, 0x70, 0x9c, 0xf0,
+ 0x58, 0x56, 0xc0, 0x34, 0xe1, 0x93, 0x6f, 0xa1, 0xae, 0xb9, 0x76, 0xfb, 0x7a, 0x34, 0xeb, 0xfb,
+ 0xd6, 0xec, 0xc2, 0x1e, 0xf3, 0x8c, 0x14, 0xe9, 0x12, 0xaa, 0xfc, 0x29, 0x07, 0xb2, 0xee, 0x84,
+ 0x2b, 0x69, 0xe9, 0xdf, 0xcd, 0x18, 0x79, 0x03, 0x85, 0xf0, 0x6e, 0xc6, 0x78, 0x98, 0xea, 0xaf,
+ 0x9e, 0x89, 0xc5, 0xee, 0x13, 0x3f, 0xc6, 0x3f, 0x94, 0x6b, 0x28, 0x2f, 0xa0, 0xc0, 0x2d, 0x54,
+ 0xa1, 0x34, 0xd0, 0xce, 0x34, 0xfd, 0xbd, 0x26, 0x6d, 0x90, 0x6d, 0x28, 0x37, 0x7b, 0x3d, 0xbd,
+ 0x35, 0x54, 0xdb, 0x52, 0x0e, 0xa9, 0x6e, 0xe7, 0x7c, 0x68, 0xe8, 0xb4, 0x2f, 0xe5, 0x95, 0xbf,
+ 0xe6, 0xe0, 0xf1, 0x3a, 0xc3, 0x84, 0x44, 0x96, 0x44, 0x55, 0x44, 0x56, 0x0f, 0xa0, 0x62, 0x78,
+ 0x2e, 0x6e, 0x54, 0x14, 0x45, 0x8d, 0x2e, 0x00, 0xf2, 0x18, 0x8a, 0xbc, 0x55, 0x78, 0x8a, 0x6a,
+ 0x34, 0x22, 0xc8, 0x1e, 0x6c, 0x21, 0x5f, 0xf3, 0x78, 0x5e, 0x6a, 0x54, 0x50, 0x58, 0xb6, 0xf1,
+ 0x5a, 0xea, 0x58, 0x2e, 0xf2, 0x20, 0xa5, 0x10, 0xd4, 0x3b, 0x75, 0xbc, 0x5b, 0x75, 0x2c, 0x6f,
+ 0xf1, 0x9e, 0x16, 0x94, 0x42, 0x61, 0x77, 0x9d, 0xbf, 0x01, 0x79, 0x0b, 0x15, 0x3f, 0x26, 0xe4,
+ 0x1c, 0x4f, 0xd3, 0x93, 0x8f, 0x44, 0x8e, 0x2e, 0xa4, 0x95, 0xdf, 0x0a, 0xb0, 0xa9, 0x6b, 0x83,
+ 0xff, 0x59, 0x71, 0xa6, 0xe2, 0xda, 0x16, 0xa1, 0x58, 0x00, 0xe4, 0x10, 0x2a, 0xef, 0x6e, 0x9b,
+ 0xe3, 0xb1, 0xcf, 0x82, 0x20, 0xea, 0xef, 0x93, 0xbc, 0x9c, 0xa3, 0x0b, 0x90, 0xec, 0x27, 0x31,
+ 0xae, 0xa0, 0x32, 0x67, 0xc7, 0x71, 0x3e, 0x86, 0x72, 0xc0, 0xfc, 0x1b, 0x1b, 0xa3, 0x02, 0x99,
+ 0xe2, 0x35, 0x23, 0x98, 0x4b, 0x27, 0x32, 0xa4, 0x0d, 0x5f, 0xaa, 0x53, 0x6b, 0xc2, 0x4c, 0xef,
+ 0x2a, 0xbc, 0xb5, 0x7c, 0xd6, 0xf9, 0xe3, 0x8c, 0x8d, 0x42, 0x36, 0x36, 0xd9, 0x28, 0xb4, 0x3d,
+ 0x37, 0x90, 0xab, 0xdc, 0xbf, 0x8f, 0x0b, 0xad, 0x58, 0xa1, 0x6c, 0xc4, 0xec, 0x9b, 0x94, 0x95,
+ 0xed, 0x35, 0x56, 0x96, 0x85, 0xc8, 0x8f, 0xf0, 0xa8, 0x39, 0x0a, 0xed, 0x1b, 0xc6, 0xc5, 0x3a,
+ 0x6e, 0x68, 0x87, 0x77, 0xea, 0x58, 0xae, 0x71, 0xdd, 0x75, 0x2c, 0xf2, 0x33, 0xec, 0xb5, 0xbc,
+ 0xe9, 0xd4, 0x0e, 0x43, 0x36, 0xce, 0x2a, 0xd5, 0xb9, 0xd2, 0x3d, 0x5c, 0xf2, 0x15, 0x14, 0xe6,
+ 0xae, 0x1d, 0xc8, 0x0d, 0x1e, 0x21, 0x10, 0x11, 0x1a, 0x68, 0x2a, 0xe5, 0xb8, 0xf2, 0xcf, 0x1c,
+ 0x6c, 0x0e, 0x34, 0x75, 0xa5, 0x42, 0x44, 0xcd, 0xb7, 0xc5, 0x11, 0x19, 0x11, 0x02, 0x35, 0x5d,
+ 0x51, 0x0f, 0x11, 0x81, 0x1d, 0x75, 0xce, 0xd4, 0xb6, 0xe8, 0x03, 0xfe, 0x9d, 0xad, 0x9e, 0xe2,
+ 0x72, 0xf5, 0x2c, 0x7a, 0x67, 0x8b, 0x9b, 0x8f, 0x73, 0xfa, 0x3c, 0x95, 0xd3, 0xd2, 0xba, 0x9c,
+ 0xa6, 0xf2, 0xa9, 0x88, 0x3e, 0x2e, 0xf3, 0xb3, 0x24, 0x96, 0x1b, 0xb8, 0x76, 0x74, 0x6a, 0xe0,
+ 0x5f, 0xe5, 0xef, 0x45, 0x28, 0x09, 0x4d, 0xf4, 0x52, 0xb3, 0xa6, 0x49, 0xdf, 0xe3, 0x37, 0x7a,
+ 0xb9, 0xa8, 0x40, 0x71, 0xb4, 0x2f, 0xaa, 0xef, 0xde, 0xdd, 0x9a, 0x7d, 0x6b, 0xc2, 0x77, 0x5b,
+ 0xa4, 0xfc, 0x1b, 0xb1, 0x16, 0x62, 0x51, 0x89, 0xf3, 0x6f, 0x3c, 0x07, 0x34, 0xc6, 0xc6, 0x41,
+ 0xc7, 0x9a, 0x79, 0x0e, 0xdf, 0x67, 0x99, 0xa6, 0x10, 0x5c, 0x9b, 0x53, 0x78, 0x78, 0xf2, 0xf3,
+ 0xbb, 0x4c, 0x17, 0x40, 0xc2, 0x55, 0x27, 0xd3, 0x19, 0xdf, 0x62, 0xcc, 0x45, 0x80, 0xc8, 0x50,
+ 0x12, 0x57, 0x6e, 0xd4, 0x18, 0x34, 0x26, 0x71, 0x55, 0x6e, 0x3e, 0x0a, 0x3c, 0x44, 0x97, 0xe6,
+ 0x02, 0x41, 0xbb, 0x68, 0x3f, 0x62, 0x57, 0xa3, 0x1d, 0x27, 0xc0, 0x6a, 0x57, 0x6f, 0xdf, 0xd3,
+ 0xd5, 0x6a, 0xf7, 0xdc, 0x88, 0x24, 0x6a, 0x91, 0x8d, 0x04, 0xc0, 0xa8, 0x0d, 0x5c, 0x5b, 0x14,
+ 0x66, 0x8d, 0x46, 0x04, 0x8e, 0x33, 0x98, 0x1a, 0x6b, 0x72, 0x6e, 0x85, 0xa3, 0x6b, 0xb9, 0xc1,
+ 0xbd, 0x4e, 0x43, 0x78, 0xc1, 0x0c, 0x02, 0x8c, 0x9c, 0xe1, 0xdb, 0x9e, 0x6f, 0x87, 0x77, 0xb2,
+ 0xc4, 0x0d, 0x2c, 0xa1, 0x91, 0x9c, 0x99, 0x96, 0xdb, 0x89, 0xe5, 0xcc, 0x25, 0xb9, 0x76, 0xd6,
+ 0x1e, 0x89, 0xe4, 0xda, 0x2b, 0xf6, 0xda, 0x59, 0x7b, 0x8f, 0x62, 0xb9, 0x8c, 0xbd, 0x38, 0x9f,
+ 0x86, 0x61, 0x78, 0x1d, 0xf9, 0x71, 0x2a, 0x9f, 0x1c, 0xc1, 0x9e, 0x6e, 0x79, 0xee, 0x95, 0x3d,
+ 0x99, 0xfb, 0xec, 0xdc, 0x1a, 0xc5, 0x55, 0xb5, 0xcb, 0x05, 0xd7, 0xb1, 0xc8, 0xf7, 0xb0, 0xd3,
+ 0x71, 0xad, 0x4b, 0x07, 0xb1, 0x1e, 0xb3, 0x7c, 0xd7, 0x76, 0x27, 0xf2, 0x1e, 0x97, 0x5f, 0x65,
+ 0x28, 0x16, 0x3c, 0xd6, 0xb5, 0x41, 0xdf, 0xb7, 0xae, 0xae, 0xec, 0x91, 0x39, 0xba, 0x66, 0xe3,
+ 0xb9, 0xc3, 0xfc, 0x80, 0xa8, 0xd0, 0x08, 0x11, 0x5c, 0x40, 0xbc, 0xc4, 0xab, 0xaf, 0x9e, 0x1e,
+ 0x67, 0xc6, 0xd6, 0x15, 0x4d, 0xba, 0xac, 0xa7, 0x1c, 0x41, 0x41, 0xd7, 0x06, 0x01, 0x39, 0x84,
+ 0xa2, 0x1d, 0xb2, 0x69, 0x7c, 0xdb, 0xc4, 0xa7, 0x86, 0xae, 0x0d, 0x68, 0xc4, 0x50, 0x7e, 0x84,
+ 0xb2, 0x19, 0x37, 0xe2, 0xb3, 0xac, 0xf4, 0x72, 0xc7, 0x0a, 0x8d, 0x23, 0x28, 0x0c, 0x34, 0xf5,
+ 0x5e, 0xdb, 0x78, 0x22, 0x25, 0xb6, 0x01, 0x57, 0x62, 0xbf, 0xce, 0x59, 0x10, 0x3e, 0x64, 0x98,
+ 0x53, 0x9e, 0x03, 0x18, 0xba, 0x16, 0x6b, 0x64, 0x2e, 0xf3, 0xdc, 0xd2, 0x65, 0xae, 0xf4, 0x00,
+ 0x70, 0x2d, 0x21, 0x7b, 0x04, 0x0d, 0xec, 0xea, 0xd5, 0x05, 0x96, 0xe1, 0xb8, 0xac, 0xdb, 0xe2,
+ 0x98, 0x88, 0x08, 0xe5, 0x5f, 0x9b, 0x50, 0x69, 0x3a, 0x96, 0x3f, 0xe5, 0xc7, 0xcd, 0x3f, 0x36,
+ 0xa1, 0x88, 0x1f, 0x01, 0x29, 0xc1, 0x66, 0x4f, 0x37, 0xa5, 0x0d, 0x52, 0x07, 0x68, 0x7f, 0x50,
+ 0xb5, 0xee, 0xb0, 0xdb, 0x34, 0x0d, 0x29, 0x47, 0x6a, 0x50, 0xd1, 0xb5, 0xc1, 0xb0, 0xd9, 0x6b,
+ 0xd2, 0x73, 0x29, 0x4f, 0xbe, 0x80, 0x47, 0x48, 0x9a, 0xfd, 0x26, 0xed, 0x0f, 0x8c, 0xe1, 0x69,
+ 0x53, 0xed, 0x0d, 0x68, 0x47, 0xda, 0x24, 0x7b, 0x40, 0x38, 0x43, 0xed, 0x6a, 0xcd, 0xde, 0xb0,
+ 0xdd, 0xe9, 0xd2, 0x66, 0xbb, 0x23, 0x15, 0x62, 0x85, 0x36, 0x55, 0x4f, 0xfb, 0x43, 0xfd, 0x74,
+ 0xf8, 0x5e, 0xd5, 0xda, 0xfa, 0x7b, 0xa9, 0x48, 0x0e, 0x40, 0x46, 0x46, 0x4f, 0x37, 0x4d, 0xc4,
+ 0xf5, 0xf3, 0x96, 0x3a, 0x6c, 0xbd, 0x6b, 0x6a, 0x5a, 0xa7, 0x27, 0x6d, 0x25, 0xeb, 0x70, 0x73,
+ 0x66, 0xb2, 0x4e, 0x89, 0x7c, 0x07, 0xdf, 0x20, 0xa3, 0x4f, 0x9b, 0x9a, 0x79, 0xae, 0x9a, 0xa6,
+ 0xaa, 0x6b, 0x43, 0x55, 0xeb, 0x77, 0xe8, 0x69, 0x87, 0x76, 0xb4, 0x56, 0x67, 0xf8, 0xbe, 0x49,
+ 0x35, 0x55, 0xeb, 0x4a, 0x65, 0xb2, 0x0f, 0x7b, 0xdc, 0xf5, 0x56, 0x5f, 0xbd, 0x68, 0xf6, 0x51,
+ 0x30, 0x36, 0x53, 0x21, 0x32, 0x2f, 0xce, 0xa1, 0x41, 0xf5, 0x56, 0xc7, 0x34, 0x71, 0xbf, 0x1d,
+ 0x4a, 0x75, 0x2a, 0x01, 0x39, 0x84, 0x83, 0xb4, 0x5f, 0x67, 0x9d, 0x0f, 0x43, 0xf3, 0x83, 0xd6,
+ 0x4a, 0x74, 0xab, 0x64, 0x17, 0x76, 0x50, 0x42, 0xed, 0x0f, 0x86, 0x86, 0xae, 0x61, 0x2c, 0xfa,
+ 0xa6, 0xb4, 0x4d, 0x76, 0xa0, 0x96, 0x44, 0x0a, 0xd5, 0xa5, 0xda, 0x32, 0x74, 0x22, 0xd5, 0xe3,
+ 0x8d, 0xc5, 0x90, 0xd1, 0x1a, 0xe2, 0x2e, 0xa4, 0x46, 0x1c, 0x8f, 0x0c, 0xa3, 0x25, 0xbc, 0x92,
+ 0x08, 0x81, 0x7a, 0x9a, 0x7b, 0xaa, 0x4a, 0x3b, 0xe4, 0x11, 0x34, 0xd2, 0x58, 0xf3, 0x5c, 0x95,
+ 0x88, 0xf2, 0x06, 0xea, 0x3c, 0xbf, 0x86, 0xe5, 0x5b, 0x53, 0x16, 0x32, 0x9f, 0x48, 0xb0, 0x79,
+ 0xc6, 0xee, 0x44, 0x99, 0xe0, 0x27, 0x96, 0xc6, 0x85, 0xe5, 0xcc, 0xe3, 0xc7, 0x41, 0x44, 0x28,
+ 0x7f, 0xc9, 0x71, 0x7b, 0x5c, 0x3b, 0x55, 0x9a, 0x49, 0xb5, 0x08, 0x0b, 0x0b, 0xe0, 0x41, 0x53,
+ 0xd9, 0x1e, 0x6c, 0xe1, 0x31, 0x3b, 0x0f, 0xc4, 0xa5, 0x24, 0x28, 0xf2, 0x13, 0x40, 0xe2, 0x62,
+ 0x20, 0x17, 0x78, 0x6f, 0xed, 0x8a, 0xde, 0xca, 0x6e, 0x80, 0xa6, 0x04, 0x95, 0x5f, 0xa1, 0xa1,
+ 0xf7, 0xfa, 0x19, 0x1f, 0x0f, 0xa1, 0xca, 0x8f, 0xfb, 0x2b, 0x6b, 0xc4, 0xc4, 0x48, 0x50, 0xa3,
+ 0x69, 0x28, 0xb9, 0x25, 0x90, 0xe4, 0x3b, 0xc9, 0xa7, 0x6e, 0x89, 0x18, 0xbc, 0xcf, 0x53, 0x7c,
+ 0x20, 0xd4, 0x2e, 0x98, 0x1f, 0xd8, 0x9e, 0x2b, 0xf6, 0x24, 0x43, 0xe9, 0x26, 0x02, 0x44, 0x4c,
+ 0x62, 0x12, 0xe3, 0x75, 0x39, 0xb7, 0x9d, 0x71, 0xdf, 0x9e, 0x26, 0x4f, 0xaf, 0x04, 0xc0, 0x13,
+ 0x79, 0xc4, 0xa7, 0x9e, 0x77, 0x56, 0x70, 0x2d, 0x56, 0x49, 0x21, 0xa8, 0x3d, 0xb1, 0x43, 0xe1,
+ 0x44, 0x34, 0x9f, 0x2e, 0x00, 0xe5, 0x0d, 0x94, 0x7b, 0xde, 0xa4, 0xc7, 0x6e, 0x98, 0x83, 0x19,
+ 0x74, 0xf0, 0x43, 0xac, 0x1f, 0x11, 0xb8, 0x83, 0x91, 0xe5, 0x38, 0x22, 0x13, 0x65, 0x2a, 0x28,
+ 0xa5, 0x03, 0x65, 0xca, 0x82, 0x99, 0xe7, 0x06, 0x8c, 0x3c, 0x85, 0x6a, 0xc0, 0xed, 0x0d, 0x47,
+ 0xde, 0x98, 0x89, 0x01, 0x0a, 0x22, 0xa8, 0xe5, 0x8d, 0x19, 0x6e, 0x6e, 0xca, 0x82, 0xc0, 0x9a,
+ 0xc4, 0x1b, 0x88, 0x49, 0xe5, 0x6f, 0x39, 0xa8, 0xe2, 0x6d, 0xfe, 0x5f, 0x9e, 0x45, 0x45, 0x71,
+ 0x16, 0x91, 0xb7, 0xb0, 0x6d, 0xce, 0x2f, 0x9b, 0x7c, 0xc4, 0xbc, 0xb0, 0x1c, 0x1e, 0x90, 0x7a,
+ 0x52, 0x04, 0x09, 0x8b, 0x1f, 0x50, 0x34, 0x23, 0x8a, 0x95, 0xd7, 0xf5, 0xbd, 0xf9, 0x2c, 0xbe,
+ 0xb4, 0xa2, 0x60, 0x65, 0x30, 0x9c, 0x71, 0x2e, 0x7a, 0x4d, 0x2d, 0x9e, 0x71, 0xf0, 0x5b, 0x39,
+ 0x83, 0x22, 0xbe, 0x5e, 0x02, 0xf2, 0x25, 0xc0, 0x95, 0xe3, 0xdd, 0x0e, 0x47, 0xfc, 0x9f, 0x15,
+ 0xe2, 0xd0, 0x45, 0x24, 0xfa, 0x57, 0xc5, 0xd7, 0x50, 0x44, 0x02, 0x67, 0x2c, 0x2c, 0xcc, 0xda,
+ 0x71, 0xfc, 0xdf, 0x16, 0xd4, 0xa6, 0x11, 0x4f, 0x79, 0x0a, 0x25, 0x4c, 0xab, 0x37, 0x0f, 0x71,
+ 0x83, 0x63, 0xe6, 0x58, 0x77, 0xc2, 0x52, 0x44, 0x28, 0x25, 0x28, 0x76, 0xa6, 0xb3, 0xf0, 0xee,
+ 0xf9, 0x01, 0x94, 0xc4, 0x9c, 0x87, 0x07, 0x6d, 0xa7, 0xff, 0x4e, 0xda, 0x20, 0x65, 0x28, 0x18,
+ 0x7a, 0xdf, 0x94, 0x72, 0xcf, 0x5f, 0x42, 0x3d, 0xbb, 0x59, 0xe4, 0xfd, 0xa2, 0xab, 0xf8, 0x62,
+ 0xac, 0x40, 0xb1, 0xd7, 0x69, 0x5e, 0x74, 0xa4, 0x1c, 0x01, 0xd8, 0x42, 0xf0, 0xe2, 0xb5, 0x94,
+ 0x7f, 0xf5, 0xdb, 0x36, 0x14, 0x4f, 0x4e, 0x4c, 0x7b, 0x4a, 0x5e, 0x40, 0x49, 0x14, 0x27, 0xd9,
+ 0x16, 0x91, 0xe3, 0x6b, 0xee, 0x3f, 0x16, 0x54, 0xa6, 0x74, 0x95, 0x0d, 0xf2, 0x12, 0xaa, 0x26,
+ 0x0b, 0x93, 0x4a, 0x6a, 0x08, 0xb1, 0x18, 0xd8, 0x5f, 0x06, 0x94, 0x0d, 0xf2, 0x0c, 0xb6, 0xba,
+ 0x2c, 0xd4, 0x9d, 0x70, 0x69, 0x09, 0x58, 0xbc, 0xea, 0x94, 0x0d, 0xf2, 0x7b, 0x90, 0x23, 0xa9,
+ 0x35, 0x4f, 0xc2, 0xa7, 0x9f, 0x78, 0x39, 0xef, 0x1f, 0x7c, 0x44, 0x20, 0x50, 0x36, 0xc8, 0x0f,
+ 0x00, 0x86, 0x77, 0xcb, 0x7c, 0xcf, 0x5d, 0x75, 0x23, 0xf6, 0x38, 0xae, 0x71, 0x65, 0x83, 0x1c,
+ 0x43, 0xd5, 0xbc, 0x9e, 0x87, 0x63, 0xef, 0xf6, 0x61, 0xf2, 0xdf, 0x43, 0x85, 0xb2, 0x4b, 0xcf,
+ 0x0b, 0x1f, 0x24, 0x8d, 0x09, 0x0b, 0xbd, 0xd9, 0x84, 0x1a, 0x2d, 0x1c, 0x1a, 0x98, 0xff, 0x69,
+ 0x95, 0x57, 0xd0, 0x30, 0x43, 0xcb, 0x0f, 0x3f, 0x47, 0xe7, 0x67, 0xd8, 0xa1, 0x2c, 0x58, 0xd2,
+ 0x8a, 0xa7, 0x15, 0x51, 0x79, 0xeb, 0xf4, 0xbe, 0x8b, 0xd2, 0xa5, 0x0d, 0xc8, 0x4e, 0x6a, 0x10,
+ 0x8a, 0x9a, 0x76, 0x3f, 0x35, 0x1b, 0x29, 0x1b, 0xe4, 0x5b, 0x9c, 0xcb, 0x43, 0x3e, 0x43, 0x65,
+ 0xdd, 0xa9, 0x2e, 0xc4, 0x30, 0xfc, 0xaf, 0xa1, 0xda, 0x65, 0x61, 0x32, 0x41, 0xed, 0xa4, 0x86,
+ 0x20, 0x61, 0xb7, 0x91, 0x9d, 0xa2, 0x02, 0x9e, 0x04, 0x40, 0xe3, 0xee, 0x7c, 0xe0, 0xda, 0xc1,
+ 0x3a, 0x5f, 0xaa, 0x0b, 0x33, 0x62, 0x91, 0x24, 0x69, 0xeb, 0x9d, 0xbf, 0x27, 0xb0, 0x42, 0xa9,
+ 0xe9, 0x38, 0x6b, 0x76, 0xb2, 0x46, 0xe7, 0x2d, 0xec, 0xa4, 0x16, 0x0a, 0x74, 0xd7, 0xd0, 0xb5,
+ 0x64, 0xb9, 0xc5, 0x60, 0xb6, 0x7e, 0xb9, 0xa4, 0x0e, 0x1f, 0xec, 0xe2, 0x4b, 0xa8, 0x0b, 0x9d,
+ 0x07, 0x7b, 0xf8, 0x06, 0xa4, 0xc5, 0x32, 0x9f, 0xe5, 0xe0, 0xff, 0xc1, 0xb6, 0x28, 0x9a, 0xe8,
+ 0xd5, 0xf6, 0x91, 0x54, 0xa5, 0xb4, 0x5e, 0x43, 0x55, 0x68, 0xf1, 0xc7, 0xdc, 0xc3, 0x94, 0x4e,
+ 0x60, 0xd7, 0xe4, 0xf9, 0xe5, 0xd7, 0xb1, 0xea, 0x8e, 0xed, 0x91, 0x85, 0x67, 0x18, 0xd9, 0x5b,
+ 0x84, 0x25, 0x7d, 0x53, 0x7f, 0xc4, 0x06, 0x76, 0xfd, 0x3d, 0x36, 0xb2, 0xb7, 0xfd, 0x3a, 0x1b,
+ 0x3f, 0x40, 0xb9, 0xcb, 0xc2, 0xe8, 0x5c, 0x5f, 0x93, 0x91, 0x38, 0xd8, 0x5c, 0x80, 0xc7, 0xb6,
+ 0xd1, 0xba, 0xb6, 0xdc, 0x09, 0xc3, 0xbb, 0x2c, 0x7a, 0x02, 0x12, 0x21, 0x92, 0xba, 0xdd, 0xd6,
+ 0x2d, 0x74, 0x06, 0x5f, 0x44, 0x05, 0xbd, 0xfa, 0xa8, 0x59, 0xb3, 0xee, 0x93, 0x05, 0xb4, 0x22,
+ 0x9f, 0xb4, 0x1e, 0x6f, 0x8d, 0xf5, 0xad, 0x27, 0xba, 0xe2, 0x27, 0x1c, 0x5e, 0x6e, 0x2c, 0xc7,
+ 0x1e, 0x5b, 0x21, 0x3b, 0x1f, 0x07, 0x0f, 0x2b, 0xba, 0x93, 0x6f, 0x7e, 0xf7, 0xf5, 0xc4, 0x0e,
+ 0xaf, 0xe7, 0x97, 0xc7, 0x23, 0x6f, 0xca, 0x7f, 0x2c, 0x18, 0x79, 0xfe, 0x58, 0xfc, 0xba, 0x90,
+ 0xfc, 0xce, 0x70, 0xb9, 0xc5, 0x7f, 0x1c, 0x78, 0xfd, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7d,
+ 0x29, 0x15, 0x35, 0x7b, 0x18, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
diff --git a/api/bbsim/bbsim.pb.gw.go b/api/bbsim/bbsim.pb.gw.go
index 1637fd2..d59c949 100644
--- a/api/bbsim/bbsim.pb.gw.go
+++ b/api/bbsim/bbsim.pb.gw.go
@@ -864,7 +864,7 @@
}
var (
- filter_BBSim_ChangeIgmpState_0 = &utilities.DoubleArray{Encoding: map[string]int{"OnuReq": 0, "SerialNumber": 1, "SubActionVal": 2, "GroupAddress": 3}, Base: []int{1, 1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 2, 1, 1, 3, 4, 5}}
+ filter_BBSim_ChangeIgmpState_0 = &utilities.DoubleArray{Encoding: map[string]int{"OnuSerialNumber": 0, "SubActionVal": 1, "GroupAddress": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}}
)
func request_BBSim_ChangeIgmpState_0(ctx context.Context, marshaler runtime.Marshaler, client BBSimClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
@@ -879,15 +879,15 @@
_ = err
)
- val, ok = pathParams["OnuReq.SerialNumber"]
+ val, ok = pathParams["OnuSerialNumber"]
if !ok {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "OnuReq.SerialNumber")
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "OnuSerialNumber")
}
- err = runtime.PopulateFieldFromPath(&protoReq, "OnuReq.SerialNumber", val)
+ protoReq.OnuSerialNumber, err = runtime.String(val)
if err != nil {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "OnuReq.SerialNumber", err)
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "OnuSerialNumber", err)
}
val, ok = pathParams["SubActionVal"]
@@ -938,15 +938,15 @@
_ = err
)
- val, ok = pathParams["OnuReq.SerialNumber"]
+ val, ok = pathParams["OnuSerialNumber"]
if !ok {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "OnuReq.SerialNumber")
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "OnuSerialNumber")
}
- err = runtime.PopulateFieldFromPath(&protoReq, "OnuReq.SerialNumber", val)
+ protoReq.OnuSerialNumber, err = runtime.String(val)
if err != nil {
- return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "OnuReq.SerialNumber", err)
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "OnuSerialNumber", err)
}
val, ok = pathParams["SubActionVal"]
@@ -1922,7 +1922,7 @@
pattern_BBSim_GetFlows_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "olt", "flows"}, "", runtime.AssumeColonVerbOpt(true)))
- pattern_BBSim_ChangeIgmpState_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"v1", "olt", "onus", "OnuReq.SerialNumber", "igmp", "SubActionVal", "GroupAddress"}, "", runtime.AssumeColonVerbOpt(true)))
+ pattern_BBSim_ChangeIgmpState_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"v1", "olt", "onus", "OnuSerialNumber", "igmp", "SubActionVal", "GroupAddress"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_BBSim_GetOnuTrafficSchedulers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"v1", "olt", "onus", "SerialNumber", "trafficschedulers"}, "", runtime.AssumeColonVerbOpt(true)))
)
diff --git a/api/bbsim/bbsim.proto b/api/bbsim/bbsim.proto
index 705b1b1..3a32175 100644
--- a/api/bbsim/bbsim.proto
+++ b/api/bbsim/bbsim.proto
@@ -245,9 +245,11 @@
}
message IgmpRequest {
- ONURequest OnuReq = 1;
- SubActionTypes SubActionVal = 2;
- string GroupAddress = 3;
+ string OnuSerialNumber = 1;
+ int32 UniID = 2;
+ SubActionTypes SubActionVal = 3;
+ string GroupAddress = 4;
+ int32 VLAN = 5;
}
message Flows {
diff --git a/api/bbsim/bbsim.yaml b/api/bbsim/bbsim.yaml
index 37a7370..c7c61a6 100644
--- a/api/bbsim/bbsim.yaml
+++ b/api/bbsim/bbsim.yaml
@@ -57,7 +57,8 @@
- selector: bbsim.BBSim.RestartDhcp
post: "/v1/olt/onus/{OnuSerialNumber}/dhcp"
- selector: bbsim.BBSim.ChangeIgmpState
- post: "/v1/olt/onus/{OnuReq.SerialNumber}/igmp/{SubActionVal}/{GroupAddress}"
+ post: "/v1/olt/onus/{OnuSerialNumber}/{UniID}/igmp/{SubActionVal}/{GroupAddress}/{VLAN}"
+
- selector: bbsim.BBSim.SetOnuAlarmIndication
post: "/v1/olt/onus/{SerialNumber}/alarms/{AlarmType}/{Status}"
diff --git a/docs/swagger/bbsim/bbsim.swagger.json b/docs/swagger/bbsim/bbsim.swagger.json
index e88ce97..30a1023 100644
--- a/docs/swagger/bbsim/bbsim.swagger.json
+++ b/docs/swagger/bbsim/bbsim.swagger.json
@@ -100,7 +100,7 @@
]
}
},
- "/v1/olt/onus/{OnuReq.SerialNumber}/igmp": {
+ "/v1/olt/onus/{OnuSerialNumber}/{UniID}/igmp/{SubActionVal}/{GroupAddress}/{VLAN}": {
"post": {
"summary": "Change IGMP state",
"operationId": "ChangeIgmpState",
@@ -120,13 +120,72 @@
"type": "string"
},
{
- "name": "body",
- "in": "body",
+ "name": "SubActionVal",
+ "in": "path",
"required": true,
+ "type": "string",
+ "enum": [
+ "JOIN",
+ "LEAVE",
+ "JOINV3"
+ ]
+ },
+ {
+ "name": "GroupAddress",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "tags": [
+ "BBSim"
+ ]
+ }
+ },
+ "/v1/olt/onus/{OnuSerialNumber}/dhcp": {
+ "post": {
+ "summary": "Restart DHCP for ONU",
+ "operationId": "RestartDhcp",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
"schema": {
- "type": "string"
+ "$ref": "#/definitions/bbsimResponse"
}
}
+ },
+ "parameters": [
+ {
+ "name": "OnuSerialNumber",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "tags": [
+ "BBSim"
+ ]
+ }
+ },
+ "/v1/olt/onus/{OnuSerialNumber}/eapol": {
+ "post": {
+ "summary": "Restart EAPOL for ONU",
+ "operationId": "RestartEapol",
+ "responses": {
+ "200": {
+ "description": "A successful response.",
+ "schema": {
+ "$ref": "#/definitions/bbsimResponse"
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "OnuSerialNumber",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ }
],
"tags": [
"BBSim"
@@ -241,56 +300,6 @@
]
}
},
- "/v1/olt/onus/{SerialNumber}/dhcp": {
- "post": {
- "summary": "Restart DHCP for ONU",
- "operationId": "RestartDhcp",
- "responses": {
- "200": {
- "description": "A successful response.",
- "schema": {
- "$ref": "#/definitions/bbsimResponse"
- }
- }
- },
- "parameters": [
- {
- "name": "SerialNumber",
- "in": "path",
- "required": true,
- "type": "string"
- }
- ],
- "tags": [
- "BBSim"
- ]
- }
- },
- "/v1/olt/onus/{SerialNumber}/eapol": {
- "post": {
- "summary": "Restart EAPOL for ONU",
- "operationId": "RestartEapol",
- "responses": {
- "200": {
- "description": "A successful response.",
- "schema": {
- "$ref": "#/definitions/bbsimResponse"
- }
- }
- },
- "parameters": [
- {
- "name": "SerialNumber",
- "in": "path",
- "required": true,
- "type": "string"
- }
- ],
- "tags": [
- "BBSim"
- ]
- }
- },
"/v1/olt/onus/{SerialNumber}/flows": {
"get": {
"summary": "Get all flows or ONU specific flows",
@@ -564,6 +573,28 @@
"items": {
"$ref": "#/definitions/bbsimService"
}
+ },
+ "ImageSoftwareExpectedSections": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "ImageSoftwareReceivedSections": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "ActiveImageEntityId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "CommittedImageEntityId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "unis": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/bbsimUNI"
+ }
}
}
},
@@ -624,6 +655,58 @@
"items": {
"$ref": "#/definitions/bbsimPONPort"
}
+ },
+ "NniDhcpTrapVid": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "bbsimOltAllocatedResource": {
+ "type": "object",
+ "properties": {
+ "Type": {
+ "type": "string"
+ },
+ "PonPortId": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "OnuId": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "PortNo": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "ResourceId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "FlowId": {
+ "type": "string",
+ "format": "uint64"
+ }
+ }
+ },
+ "bbsimOltAllocatedResourceTypeType": {
+ "type": "string",
+ "enum": [
+ "UNKNOWN",
+ "ALLOC_ID",
+ "GEM_PORT"
+ ],
+ "default": "UNKNOWN"
+ },
+ "bbsimOltAllocatedResources": {
+ "type": "object",
+ "properties": {
+ "resources": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/bbsimOltAllocatedResource"
+ }
}
}
},
@@ -636,6 +719,48 @@
},
"OperState": {
"type": "string"
+ },
+ "InternalState": {
+ "type": "string"
+ },
+ "PacketCount": {
+ "type": "string",
+ "format": "uint64"
+ },
+ "AllocatedOnuIds": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/bbsimPonAllocatedResources"
+ },
+ "title": "ONU ID are reported by VOLTHA in the ActivateOnu call"
+ },
+ "AllocatedGemPorts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/bbsimPonAllocatedResources"
+ },
+ "title": "these are the stored resource IDs as reported via OMCI"
+ },
+ "AllocatedAllocIds": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/bbsimPonAllocatedResources"
+ }
+ },
+ "Technology": {
+ "type": "string"
+ }
+ }
+ },
+ "bbsimPonAllocatedResources": {
+ "type": "object",
+ "properties": {
+ "SerialNumber": {
+ "type": "string"
+ },
+ "Id": {
+ "type": "integer",
+ "format": "int32"
}
}
},
@@ -698,6 +823,42 @@
},
"IGMPState": {
"type": "string"
+ },
+ "UniId": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "UniTagMatch": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "UsCTagPriority": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "UsSTagPriority": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "DsCTagPriority": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "DsSTagPriority": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "NeedsPPPoE": {
+ "type": "boolean",
+ "format": "boolean"
+ },
+ "ConfigureMacAddress": {
+ "type": "boolean",
+ "format": "boolean"
+ },
+ "EnableMacLearning": {
+ "type": "boolean",
+ "format": "boolean"
}
}
},
@@ -721,6 +882,61 @@
],
"default": "JOIN"
},
+ "bbsimUNI": {
+ "type": "object",
+ "properties": {
+ "ID": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "OnuID": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "OnuSn": {
+ "type": "string"
+ },
+ "MeID": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "OperState": {
+ "type": "string"
+ },
+ "PortNo": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "services": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/bbsimService"
+ }
+ },
+ "Type": {
+ "$ref": "#/definitions/bbsimUniType"
+ }
+ }
+ },
+ "bbsimUNIs": {
+ "type": "object",
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/bbsimUNI"
+ }
+ }
+ }
+ },
+ "bbsimUniType": {
+ "type": "string",
+ "enum": [
+ "ETH",
+ "POTS"
+ ],
+ "default": "ETH"
+ },
"bbsimVersionNumber": {
"type": "object",
"properties": {
@@ -949,6 +1165,13 @@
"type": "integer",
"format": "int64"
}
+ },
+ "gemport_to_aes": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "boolean",
+ "format": "boolean"
+ }
}
}
},
diff --git a/docs/swagger/legacy/bbsim.swagger.json b/docs/swagger/legacy/bbsim.swagger.json
index 1f6b60d..6262d76 100644
--- a/docs/swagger/legacy/bbsim.swagger.json
+++ b/docs/swagger/legacy/bbsim.swagger.json
@@ -1583,6 +1583,13 @@
"type": "integer",
"format": "int64"
}
+ },
+ "gemport_to_aes": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "boolean",
+ "format": "boolean"
+ }
}
}
},
diff --git a/internal/bbr/devices/olt.go b/internal/bbr/devices/olt.go
index 873a464..377ca50 100644
--- a/internal/bbr/devices/olt.go
+++ b/internal/bbr/devices/olt.go
@@ -20,7 +20,6 @@
"context"
"encoding/hex"
"fmt"
- "github.com/opencord/bbsim/internal/bbsim/types"
"io"
"reflect"
"time"
@@ -29,6 +28,7 @@
"github.com/google/gopacket/layers"
"github.com/opencord/bbsim/internal/bbsim/devices"
"github.com/opencord/bbsim/internal/bbsim/packetHandlers"
+ "github.com/opencord/bbsim/internal/bbsim/types"
"github.com/opencord/bbsim/internal/common"
"github.com/opencord/voltha-protos/v5/go/openolt"
log "github.com/sirupsen/logrus"
diff --git a/internal/bbsim/api/onus_handler.go b/internal/bbsim/api/onus_handler.go
index 29c52ac..72d34ec 100644
--- a/internal/bbsim/api/onus_handler.go
+++ b/internal/bbsim/api/onus_handler.go
@@ -21,11 +21,11 @@
"fmt"
"strconv"
- "github.com/opencord/bbsim/internal/bbsim/types"
"github.com/opencord/voltha-protos/v5/go/openolt"
"github.com/opencord/bbsim/api/bbsim"
"github.com/opencord/bbsim/internal/bbsim/devices"
+ "github.com/opencord/bbsim/internal/bbsim/responders/igmp"
log "github.com/sirupsen/logrus"
"google.golang.org/grpc/codes"
)
@@ -236,19 +236,20 @@
res := &bbsim.Response{}
logger.WithFields(log.Fields{
- "OnuSn": req.OnuReq.SerialNumber,
+ "OnuSn": req.OnuSerialNumber,
+ "UniId": req.UniID,
"subAction": req.SubActionVal,
"GroupAddress": req.GroupAddress,
+ "VLAN": req.VLAN,
}).Info("Received igmp request for ONU")
olt := devices.GetOLT()
- onu, err := olt.FindOnuBySn(req.OnuReq.SerialNumber)
-
+ onu, err := olt.FindOnuBySn(req.OnuSerialNumber)
if err != nil {
res.StatusCode = int32(codes.NotFound)
res.Message = err.Error()
logger.WithFields(log.Fields{
- "OnuSn": req.OnuReq.SerialNumber,
+ "OnuSn": req.OnuSerialNumber,
"subAction": req.SubActionVal,
"GroupAddress": req.GroupAddress,
}).Warn("ONU not found for sending igmp packet.")
@@ -264,82 +265,74 @@
event = "igmp_join_startv3"
}
- errors := []string{}
- startedOn := []string{}
- success := true
-
- for _, u := range onu.UniPorts {
- uni := u.(*devices.UniPort)
- if !uni.OperState.Is(devices.UniStateUp) {
- // if the UNI is disabled, ignore it
- continue
- }
- for _, s := range uni.Services {
- service := s.(*devices.Service)
- serviceKey := fmt.Sprintf("uni[%d]%s", uni.ID, service.Name)
- if service.NeedsIgmp {
- if !service.InternalState.Is(devices.ServiceStateInitialized) {
- logger.WithFields(log.Fields{
- "OnuId": onu.ID,
- "UniId": uni.ID,
- "IntfId": onu.PonPortID,
- "OnuSn": onu.Sn(),
- "Service": service.Name,
- }).Warn("service-not-initialized-skipping-event")
- continue
- }
+ if int(req.UniID) >= len(onu.UniPorts) {
+ res.StatusCode = int32(codes.InvalidArgument)
+ err := fmt.Errorf("invalid uni no given")
+ return res, err
+ }
+ if req.VLAN > 0xFFF || req.VLAN < 0 {
+ res.StatusCode = int32(codes.InvalidArgument)
+ err := fmt.Errorf("invalid vlan given")
+ return res, err
+ }
+ uni := onu.UniPorts[req.UniID].(*devices.UniPort)
+ if !uni.OperState.Is(devices.UniStateUp) {
+ // if the UNI is disabled, ignore it
+ err := fmt.Errorf("given uni is currently disabled")
+ return res, err
+ }
+ for _, s := range uni.Services {
+ service := s.(*devices.Service)
+ if service.NeedsIgmp {
+ if !service.InternalState.Is(devices.ServiceStateInitialized) {
logger.WithFields(log.Fields{
"OnuId": onu.ID,
"UniId": uni.ID,
"IntfId": onu.PonPortID,
"OnuSn": onu.Sn(),
"Service": service.Name,
- "Uni": uni.ID,
- }).Debugf("Sending %s event on Service %s", event, service.Name)
+ }).Trace("service-not-initialized-skipping-event")
+ continue
+ }
- if err := service.IGMPState.Event(event, types.IgmpMessage{GroupAddress: req.GroupAddress}); err != nil {
- logger.WithFields(log.Fields{
- "OnuId": onu.ID,
- "UniId": uni.ID,
- "IntfId": onu.PonPortID,
- "OnuSn": onu.Sn(),
- "Service": service.Name,
- }).Errorf("IGMP request failed: %s", err.Error())
- errors = append(errors, fmt.Sprintf("%s: %s", serviceKey, err.Error()))
- success = false
- }
- startedOn = append(startedOn, serviceKey)
+ ctag := service.CTag
+ if req.VLAN != 0 {
+ ctag = int(req.VLAN)
+ }
+
+ logger.WithFields(log.Fields{
+ "OnuId": onu.ID,
+ "UniId": uni.ID,
+ "IntfId": onu.PonPortID,
+ "OnuSn": onu.Sn(),
+ "Service": service.Name,
+ "Uni": uni.ID,
+ "Vlan": ctag,
+ }).Debugf("Sending %s event on Service %s", event, service.Name)
+
+ switch req.SubActionVal {
+ case bbsim.SubActionTypes_JOIN:
+ go func() {
+ _ = igmp.SendIGMPMembershipReportV2(service.UniPort.Onu.PonPortID, service.UniPort.Onu.ID, service.UniPort.Onu.Sn(),
+ service.UniPort.PortNo, service.UniPort.ID, service.GemPort, service.HwAddress, ctag,
+ service.UsPonCTagPriority, service.Stream, req.GroupAddress)
+ }()
+ case bbsim.SubActionTypes_LEAVE:
+ go func() {
+ _ = igmp.SendIGMPLeaveGroupV2(service.UniPort.Onu.PonPortID, service.UniPort.Onu.ID, service.UniPort.Onu.Sn(),
+ service.UniPort.PortNo, service.UniPort.ID, service.GemPort, service.HwAddress, ctag,
+ service.UsPonCTagPriority, service.Stream, req.GroupAddress)
+ }()
+ case bbsim.SubActionTypes_JOINV3:
+ go func() {
+ _ = igmp.SendIGMPMembershipReportV3(service.UniPort.Onu.PonPortID, service.UniPort.Onu.ID, service.UniPort.Onu.Sn(),
+ service.UniPort.PortNo, service.UniPort.ID, service.GemPort, service.HwAddress, ctag,
+ service.UsPonCTagPriority, service.Stream, req.GroupAddress)
+ }()
}
}
}
-
- if success {
- res.StatusCode = int32(codes.OK)
- if len(startedOn) > 0 {
- res.Message = fmt.Sprintf("IGMP %s sent on Services %s for ONU %s.",
- event, fmt.Sprintf("%v", startedOn), onu.Sn())
- } else {
- res.Message = "No service requires IGMP"
- }
- logger.WithFields(log.Fields{
- "OnuSn": req.OnuReq.SerialNumber,
- "subAction": req.SubActionVal,
- "GroupAddress": req.GroupAddress,
- "Message": res.Message,
- }).Info("Processed IGMP request for ONU")
- } else {
- res.StatusCode = int32(codes.FailedPrecondition)
- res.Message = fmt.Sprintf("%v", errors)
- logger.WithFields(log.Fields{
- "OnuSn": req.OnuReq.SerialNumber,
- "subAction": req.SubActionVal,
- "GroupAddress": req.GroupAddress,
- "Message": res.Message,
- }).Error("Error while processing IGMP request for ONU")
- }
-
}
-
return res, nil
}
diff --git a/internal/bbsim/devices/services.go b/internal/bbsim/devices/services.go
index 458e289..4ac1d39 100644
--- a/internal/bbsim/devices/services.go
+++ b/internal/bbsim/devices/services.go
@@ -471,7 +471,7 @@
_ = dhcp.HandleNextPacket(s.UniPort.Onu.ID, s.UniPort.Onu.PonPortID, s.Name, s.UniPort.Onu.Sn(), s.UniPort.PortNo, tag, s.GemPort, s.UniPort.ID, s.HwAddress, s.DHCPState, msg.Packet, priority, s.Stream)
} else if msg.Type == packetHandlers.IGMP {
log.Warn(hex.EncodeToString(msg.Packet.Data()))
- _ = igmp.HandleNextPacket(s.UniPort.Onu.PonPortID, s.UniPort.Onu.ID, s.UniPort.Onu.Sn(), s.UniPort.PortNo, s.GemPort, s.HwAddress, msg.Packet, s.CTag, s.UsPonCTagPriority, s.Stream)
+ _ = igmp.HandleNextPacket(s.UniPort.Onu.PonPortID, s.UniPort.Onu.ID, s.UniPort.Onu.Sn(), s.UniPort.PortNo, s.UniPort.ID, s.GemPort, s.HwAddress, msg.Packet, s.CTag, s.UsPonCTagPriority, s.Stream)
}
}
}
@@ -540,7 +540,7 @@
"UniId": s.UniPort.ID,
"Name": s.Name,
}).Debug("Received IGMPMembershipReportV2 message on ONU channel")
- _ = igmp.SendIGMPMembershipReportV2(s.UniPort.Onu.PonPortID, s.UniPort.Onu.ID, s.UniPort.Onu.Sn(), s.UniPort.PortNo, s.GemPort, s.HwAddress, s.CTag, s.UsPonCTagPriority, s.Stream, igmpInfo.GroupAddress)
+ _ = igmp.SendIGMPMembershipReportV2(s.UniPort.Onu.PonPortID, s.UniPort.Onu.ID, s.UniPort.Onu.Sn(), s.UniPort.PortNo, s.UniPort.ID, s.GemPort, s.HwAddress, s.CTag, s.UsPonCTagPriority, s.Stream, igmpInfo.GroupAddress)
case bbsimTypes.IGMPLeaveGroup:
igmpInfo, _ := msg.Data.(bbsimTypes.IgmpMessage)
serviceLogger.WithFields(log.Fields{
@@ -552,7 +552,7 @@
"UniId": s.UniPort.ID,
"Name": s.Name,
}).Debug("Received IGMPLeaveGroupV2 message on ONU channel")
- _ = igmp.SendIGMPLeaveGroupV2(s.UniPort.Onu.PonPortID, s.UniPort.Onu.ID, s.UniPort.Onu.Sn(), s.UniPort.PortNo, s.GemPort, s.HwAddress, s.CTag, s.UsPonCTagPriority, s.Stream, igmpInfo.GroupAddress)
+ _ = igmp.SendIGMPLeaveGroupV2(s.UniPort.Onu.PonPortID, s.UniPort.Onu.ID, s.UniPort.Onu.Sn(), s.UniPort.PortNo, s.UniPort.ID, s.GemPort, s.HwAddress, s.CTag, s.UsPonCTagPriority, s.Stream, igmpInfo.GroupAddress)
case bbsimTypes.IGMPMembershipReportV3:
igmpInfo, _ := msg.Data.(bbsimTypes.IgmpMessage)
serviceLogger.WithFields(log.Fields{
@@ -564,7 +564,7 @@
"UniId": s.UniPort.ID,
"Name": s.Name,
}).Debug("Received IGMPMembershipReportV3 message on ONU channel")
- _ = igmp.SendIGMPMembershipReportV3(s.UniPort.Onu.PonPortID, s.UniPort.Onu.ID, s.UniPort.Onu.Sn(), s.UniPort.PortNo, s.GemPort, s.HwAddress, s.CTag, s.UsPonCTagPriority, s.Stream, igmpInfo.GroupAddress)
+ _ = igmp.SendIGMPMembershipReportV3(s.UniPort.Onu.PonPortID, s.UniPort.Onu.ID, s.UniPort.Onu.Sn(), s.UniPort.PortNo, s.UniPort.ID, s.GemPort, s.HwAddress, s.CTag, s.UsPonCTagPriority, s.Stream, igmpInfo.GroupAddress)
}
}
diff --git a/internal/bbsim/responders/igmp/igmp.go b/internal/bbsim/responders/igmp/igmp.go
index ea3a901..fe30cd5 100644
--- a/internal/bbsim/responders/igmp/igmp.go
+++ b/internal/bbsim/responders/igmp/igmp.go
@@ -17,10 +17,13 @@
"encoding/binary"
"encoding/hex"
"errors"
- "github.com/opencord/bbsim/internal/bbsim/packetHandlers"
+ "fmt"
"net"
+ "strconv"
"time"
+ "github.com/opencord/bbsim/internal/bbsim/packetHandlers"
+
"github.com/google/gopacket"
"github.com/google/gopacket/layers"
bbsim "github.com/opencord/bbsim/internal/bbsim/types"
@@ -28,7 +31,7 @@
log "github.com/sirupsen/logrus"
)
-func SendIGMPLeaveGroupV2(ponPortId uint32, onuId uint32, serialNumber string, portNo uint32,
+func SendIGMPLeaveGroupV2(ponPortId uint32, onuId uint32, serialNumber string, portNo uint32, uniId uint32,
gemPortId uint32, macAddress net.HardwareAddr, cTag int, pbit uint8, stream bbsim.Stream, groupAddress string) error {
log.WithFields(log.Fields{
"OnuId": onuId,
@@ -49,6 +52,13 @@
return err
}
+ // For IGMP testing, if voltha is not connected we do not have
+ // gemPortId, so set a unique gemPortId per ONU
+ if gemPortId == 0 {
+ gid, _ := strconv.ParseUint(fmt.Sprintf("%d%d", ponPortId, onuId), 10, 32)
+ gemPortId = uint32(gid)
+ }
+
data := &openolt.Indication_PktInd{
PktInd: &openolt.PacketIndication{
IntfType: "pon",
@@ -57,7 +67,7 @@
Pkt: pkt,
PortNo: portNo,
OnuId: onuId,
- UniId: 0, // FIXME: When multi-uni support comes in, this hardcoding has to be removed
+ UniId: uniId,
},
}
//Sending IGMP packets
@@ -75,7 +85,7 @@
return nil
}
-func SendIGMPMembershipReportV2(ponPortId uint32, onuId uint32, serialNumber string, portNo uint32,
+func SendIGMPMembershipReportV2(ponPortId uint32, onuId uint32, serialNumber string, portNo uint32, uniId uint32,
gemPortId uint32, macAddress net.HardwareAddr, cTag int, pbit uint8, stream bbsim.Stream, groupAddress string) error {
igmp := createIGMPV2MembershipReportPacket(groupAddress)
@@ -91,6 +101,13 @@
return err
}
+ // For IGMP testing, if voltha is not connected we do not have
+ // gemPortId, so set a unique gemPortId per ONU
+ if gemPortId == 0 {
+ gid, _ := strconv.ParseUint(fmt.Sprintf("%d%d", ponPortId, onuId), 10, 32)
+ gemPortId = uint32(gid)
+ }
+
data := &openolt.Indication_PktInd{
PktInd: &openolt.PacketIndication{
IntfType: "pon",
@@ -99,7 +116,7 @@
Pkt: pkt,
PortNo: portNo,
OnuId: onuId,
- UniId: 0,
+ UniId: uniId,
},
}
//Sending IGMP packets
@@ -124,7 +141,7 @@
return nil
}
-func SendIGMPMembershipReportV3(ponPortId uint32, onuId uint32, serialNumber string, portNo uint32,
+func SendIGMPMembershipReportV3(ponPortId uint32, onuId uint32, serialNumber string, portNo uint32, uniId uint32,
gemPortId uint32, macAddress net.HardwareAddr, cTag int, pbit uint8, stream bbsim.Stream, groupAddress string) error {
log.WithFields(log.Fields{
@@ -146,6 +163,13 @@
return err
}
+ // For IGMP testing, if voltha is not connected we do not have
+ // gemPortId, so set a unique gemPortId per ONU
+ if gemPortId == 0 {
+ gid, _ := strconv.ParseUint(fmt.Sprintf("%d%d", ponPortId, onuId), 10, 32)
+ gemPortId = uint32(gid)
+ }
+
data := &openolt.Indication_PktInd{
PktInd: &openolt.PacketIndication{
IntfType: "pon",
@@ -154,7 +178,7 @@
Pkt: pkt,
PortNo: portNo,
OnuId: onuId,
- UniId: 0, // FIXME: When multi-uni support comes in, this hardcoding has to be removed
+ UniId: uniId,
},
}
//Sending IGMP packets
@@ -171,7 +195,7 @@
return nil
}
-func HandleNextPacket(ponPortId uint32, onuId uint32, serialNumber string, portNo uint32,
+func HandleNextPacket(ponPortId uint32, onuId uint32, serialNumber string, portNo uint32, uniId uint32,
gemPortId uint32, macAddress net.HardwareAddr, pkt gopacket.Packet, cTag int, pbit uint8, stream bbsim.Stream) error {
igmpLayer := pkt.Layer(layers.LayerTypeIGMP)
@@ -192,7 +216,7 @@
igmp := igmpLayer.(*layers.IGMPv1or2)
if igmp.Type == layers.IGMPMembershipQuery {
- _ = SendIGMPMembershipReportV2(ponPortId, onuId, serialNumber, portNo, gemPortId, macAddress,
+ _ = SendIGMPMembershipReportV2(ponPortId, onuId, serialNumber, portNo, uniId, gemPortId, macAddress,
cTag, pbit, stream, igmp.GroupAddress.String())
}
@@ -269,13 +293,19 @@
EthernetType: layers.EthernetTypeIPv4,
}
+ destinationIP := igmp.GroupAddress
+ if igmp.Version == 3 && igmp.Type == layers.IGMPMembershipReportV3 {
+ //All IGMPv3-capable multicast routers
+ destinationIP = net.ParseIP("224.0.0.22")
+ }
+
ipLayer := &layers.IPv4{
Version: 4,
TOS: 0x10,
Id: 0,
TTL: 128,
SrcIP: []byte{0, 0, 0, 0},
- DstIP: igmp.GroupAddress,
+ DstIP: destinationIP,
Protocol: layers.IPProtocolIGMP,
Options: []layers.IPv4Option{{OptionType: 148, OptionLength: 4, OptionData: make([]byte, 0)}}, //Adding router alert option
}
diff --git a/internal/bbsim/responders/igmp/igmp_test.go b/internal/bbsim/responders/igmp/igmp_test.go
index b13e473..d6442a3 100644
--- a/internal/bbsim/responders/igmp/igmp_test.go
+++ b/internal/bbsim/responders/igmp/igmp_test.go
@@ -19,13 +19,14 @@
import (
"encoding/hex"
"fmt"
+ "net"
+ "testing"
+
"github.com/google/gopacket"
"github.com/google/gopacket/layers"
"github.com/opencord/voltha-protos/v5/go/openolt"
"github.com/stretchr/testify/assert"
"google.golang.org/grpc"
- "net"
- "testing"
)
type mockStream struct {
@@ -64,7 +65,7 @@
fmt.Println(packet.Layers())
- err := HandleNextPacket(0, 0, "FOO", 1, 1024, mac, packet, 55, 5, stream)
+ err := HandleNextPacket(0, 0, "FOO", 1, 1024, 0, mac, packet, 55, 5, stream)
assert.Nil(t, err)
assert.Equal(t, 1, stream.CallCount)
diff --git a/internal/bbsimctl/commands/onu.go b/internal/bbsimctl/commands/onu.go
index 80e5f0d..a6f070c 100644
--- a/internal/bbsimctl/commands/onu.go
+++ b/internal/bbsimctl/commands/onu.go
@@ -38,8 +38,10 @@
)
type OnuSnString string
+type UniId int
type IgmpSubAction string
type GroupAddress string
+type VLAN int
const IgmpJoinKey string = "join"
const IgmpLeaveKey string = "leave"
@@ -92,9 +94,11 @@
type ONUIgmp struct {
Args struct {
OnuSn OnuSnString
+ UniId UniId
SubAction IgmpSubAction
GroupAddress GroupAddress
} `positional-args:"yes" required:"yes"`
+ VLAN VLAN `short:"v" long:"vlan" description:"VLAN to set"`
}
type ONUTrafficSchedulers struct {
@@ -297,10 +301,6 @@
ctx, cancel := context.WithTimeout(context.Background(), config.GlobalConfig.Grpc.Timeout)
defer cancel()
- req := pb.ONURequest{
- SerialNumber: string(options.Args.OnuSn),
- }
-
var subActionVal pb.SubActionTypes
if string(options.Args.SubAction) == IgmpJoinKey {
subActionVal = pb.SubActionTypes_JOIN
@@ -311,18 +311,23 @@
}
igmpReq := pb.IgmpRequest{
- OnuReq: &req,
- SubActionVal: subActionVal,
- GroupAddress: string(options.Args.GroupAddress),
+ OnuSerialNumber: string(options.Args.OnuSn),
+ UniID: int32(options.Args.UniId),
+ SubActionVal: subActionVal,
+ GroupAddress: string(options.Args.GroupAddress),
+ VLAN: int32(options.VLAN),
}
- res, err := client.GetONU(ctx, igmpReq.OnuReq)
+ req := &pb.ONURequest{
+ SerialNumber: string(options.Args.OnuSn),
+ }
+ res, err := client.GetONU(ctx, req)
if err != nil {
log.WithFields(log.Fields{
"SerialNumber": options.Args.OnuSn,
}).Errorf("Cannot not get details on ONU error: %v", err)
}
log.WithFields(log.Fields{
- "SerialNumber": igmpReq.OnuReq.SerialNumber,
+ "SerialNumber": igmpReq.OnuSerialNumber,
}).Debugf("ONU has identified : %s", res)
igmpRes, igmpErr := client.ChangeIgmpState(ctx, &igmpReq)