diff --git a/api/bbsim/bbsim.pb.go b/api/bbsim/bbsim.pb.go
index 97f9455..12cf16e 100644
--- a/api/bbsim/bbsim.pb.go
+++ b/api/bbsim/bbsim.pb.go
@@ -159,7 +159,7 @@
 }
 
 func (AlarmType_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{16, 0}
+	return fileDescriptor_ef7750073d18011b, []int{17, 0}
 }
 
 type PONPort struct {
@@ -1191,6 +1191,53 @@
 	return 0
 }
 
+type UNIRequest struct {
+	OnuSerialNumber      string   `protobuf:"bytes,1,opt,name=OnuSerialNumber,proto3" json:"OnuSerialNumber,omitempty"`
+	UniID                string   `protobuf:"bytes,2,opt,name=UniID,proto3" json:"UniID,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *UNIRequest) Reset()         { *m = UNIRequest{} }
+func (m *UNIRequest) String() string { return proto.CompactTextString(m) }
+func (*UNIRequest) ProtoMessage()    {}
+func (*UNIRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_ef7750073d18011b, []int{16}
+}
+
+func (m *UNIRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UNIRequest.Unmarshal(m, b)
+}
+func (m *UNIRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UNIRequest.Marshal(b, m, deterministic)
+}
+func (m *UNIRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UNIRequest.Merge(m, src)
+}
+func (m *UNIRequest) XXX_Size() int {
+	return xxx_messageInfo_UNIRequest.Size(m)
+}
+func (m *UNIRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UNIRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UNIRequest proto.InternalMessageInfo
+
+func (m *UNIRequest) GetOnuSerialNumber() string {
+	if m != nil {
+		return m.OnuSerialNumber
+	}
+	return ""
+}
+
+func (m *UNIRequest) GetUniID() string {
+	if m != nil {
+		return m.UniID
+	}
+	return ""
+}
+
 type AlarmType struct {
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
@@ -1201,7 +1248,7 @@
 func (m *AlarmType) String() string { return proto.CompactTextString(m) }
 func (*AlarmType) ProtoMessage()    {}
 func (*AlarmType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{16}
+	return fileDescriptor_ef7750073d18011b, []int{17}
 }
 
 func (m *AlarmType) XXX_Unmarshal(b []byte) error {
@@ -1234,7 +1281,7 @@
 func (m *AlarmParameter) String() string { return proto.CompactTextString(m) }
 func (*AlarmParameter) ProtoMessage()    {}
 func (*AlarmParameter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{17}
+	return fileDescriptor_ef7750073d18011b, []int{18}
 }
 
 func (m *AlarmParameter) XXX_Unmarshal(b []byte) error {
@@ -1286,7 +1333,7 @@
 func (m *ONUAlarmRequest) String() string { return proto.CompactTextString(m) }
 func (*ONUAlarmRequest) ProtoMessage()    {}
 func (*ONUAlarmRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{18}
+	return fileDescriptor_ef7750073d18011b, []int{19}
 }
 
 func (m *ONUAlarmRequest) XXX_Unmarshal(b []byte) error {
@@ -1349,7 +1396,7 @@
 func (m *OLTAlarmRequest) String() string { return proto.CompactTextString(m) }
 func (*OLTAlarmRequest) ProtoMessage()    {}
 func (*OLTAlarmRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{19}
+	return fileDescriptor_ef7750073d18011b, []int{20}
 }
 
 func (m *OLTAlarmRequest) XXX_Unmarshal(b []byte) error {
@@ -1405,7 +1452,7 @@
 func (m *VersionNumber) String() string { return proto.CompactTextString(m) }
 func (*VersionNumber) ProtoMessage()    {}
 func (*VersionNumber) Descriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{20}
+	return fileDescriptor_ef7750073d18011b, []int{21}
 }
 
 func (m *VersionNumber) XXX_Unmarshal(b []byte) error {
@@ -1466,7 +1513,7 @@
 func (m *LogLevel) String() string { return proto.CompactTextString(m) }
 func (*LogLevel) ProtoMessage()    {}
 func (*LogLevel) Descriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{21}
+	return fileDescriptor_ef7750073d18011b, []int{22}
 }
 
 func (m *LogLevel) XXX_Unmarshal(b []byte) error {
@@ -1513,7 +1560,7 @@
 func (m *Response) String() string { return proto.CompactTextString(m) }
 func (*Response) ProtoMessage()    {}
 func (*Response) Descriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{22}
+	return fileDescriptor_ef7750073d18011b, []int{23}
 }
 
 func (m *Response) XXX_Unmarshal(b []byte) error {
@@ -1561,7 +1608,7 @@
 func (m *IgmpRequest) String() string { return proto.CompactTextString(m) }
 func (*IgmpRequest) ProtoMessage()    {}
 func (*IgmpRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{23}
+	return fileDescriptor_ef7750073d18011b, []int{24}
 }
 
 func (m *IgmpRequest) XXX_Unmarshal(b []byte) error {
@@ -1615,7 +1662,7 @@
 func (m *Flows) String() string { return proto.CompactTextString(m) }
 func (*Flows) ProtoMessage()    {}
 func (*Flows) Descriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{24}
+	return fileDescriptor_ef7750073d18011b, []int{25}
 }
 
 func (m *Flows) XXX_Unmarshal(b []byte) error {
@@ -1661,7 +1708,7 @@
 func (m *Timeout) String() string { return proto.CompactTextString(m) }
 func (*Timeout) ProtoMessage()    {}
 func (*Timeout) Descriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{25}
+	return fileDescriptor_ef7750073d18011b, []int{26}
 }
 
 func (m *Timeout) XXX_Unmarshal(b []byte) error {
@@ -1699,7 +1746,7 @@
 func (m *Empty) String() string { return proto.CompactTextString(m) }
 func (*Empty) ProtoMessage()    {}
 func (*Empty) Descriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{26}
+	return fileDescriptor_ef7750073d18011b, []int{27}
 }
 
 func (m *Empty) XXX_Unmarshal(b []byte) error {
@@ -1740,6 +1787,7 @@
 	proto.RegisterType((*UNIs)(nil), "bbsim.UNIs")
 	proto.RegisterType((*ONURequest)(nil), "bbsim.ONURequest")
 	proto.RegisterType((*PONRequest)(nil), "bbsim.PONRequest")
+	proto.RegisterType((*UNIRequest)(nil), "bbsim.UNIRequest")
 	proto.RegisterType((*AlarmType)(nil), "bbsim.AlarmType")
 	proto.RegisterType((*AlarmParameter)(nil), "bbsim.AlarmParameter")
 	proto.RegisterType((*ONUAlarmRequest)(nil), "bbsim.ONUAlarmRequest")
@@ -1756,136 +1804,138 @@
 func init() { proto.RegisterFile("api/bbsim/bbsim.proto", fileDescriptor_ef7750073d18011b) }
 
 var fileDescriptor_ef7750073d18011b = []byte{
-	// 2056 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x4d, 0x72, 0xdb, 0xc8,
-	0x15, 0x16, 0xff, 0xc9, 0x47, 0x91, 0x82, 0xda, 0x96, 0x06, 0x25, 0x6b, 0xc6, 0x2c, 0x8c, 0x27,
-	0x25, 0xbb, 0x32, 0xf2, 0x58, 0x4e, 0x26, 0xf6, 0x12, 0x22, 0x29, 0x1a, 0x16, 0x05, 0xb0, 0x1a,
-	0xa4, 0x5c, 0x4e, 0x16, 0x2c, 0x88, 0x68, 0x49, 0xa8, 0x80, 0x00, 0x0d, 0x80, 0x52, 0x74, 0x80,
-	0x54, 0x8e, 0x90, 0x65, 0xaa, 0x72, 0x80, 0x6c, 0xb3, 0xc8, 0x25, 0x72, 0x82, 0x64, 0x95, 0x7b,
-	0xa4, 0xba, 0xd1, 0xf8, 0x23, 0x21, 0x5b, 0x5e, 0xcd, 0x86, 0x85, 0xf7, 0xbd, 0x9f, 0x7e, 0x7f,
-	0xdd, 0xfd, 0x9a, 0xb0, 0x63, 0x2c, 0xac, 0x97, 0x17, 0x17, 0xbe, 0x35, 0x0f, 0x7f, 0x0f, 0x17,
-	0x9e, 0x1b, 0xb8, 0xa8, 0xc2, 0x88, 0xbd, 0x27, 0x37, 0xae, 0x1d, 0x5c, 0x1b, 0x53, 0x06, 0xfa,
-	0x2f, 0xdd, 0x05, 0x71, 0x5c, 0x3b, 0x08, 0x65, 0xf6, 0x3a, 0x59, 0x66, 0x40, 0x66, 0xd7, 0xf4,
-	0xfb, 0xd2, 0xb2, 0x49, 0x28, 0x21, 0xfd, 0xb7, 0x08, 0xb5, 0x91, 0xa6, 0x8e, 0x5c, 0x2f, 0x40,
-	0x6d, 0x28, 0x2a, 0x3d, 0xb1, 0xd0, 0x29, 0x1c, 0x54, 0x70, 0x51, 0xe9, 0xa1, 0x7d, 0x68, 0x68,
-	0x0b, 0xe2, 0xe9, 0x81, 0x11, 0x10, 0xb1, 0xd8, 0x29, 0x1c, 0x34, 0x70, 0x02, 0xa0, 0x67, 0xd0,
-	0x52, 0x9c, 0x80, 0x78, 0x8e, 0x61, 0x87, 0x12, 0x25, 0x26, 0x91, 0x05, 0x51, 0x07, 0x9a, 0x23,
-	0x63, 0xf6, 0x47, 0x12, 0x74, 0xdd, 0xa5, 0x13, 0x88, 0xe5, 0x4e, 0xe1, 0xa0, 0x8c, 0xd3, 0x10,
-	0x3a, 0x81, 0x2d, 0xd9, 0xb6, 0xdd, 0x99, 0x11, 0x10, 0x53, 0x73, 0x96, 0x8a, 0xe9, 0x8b, 0x95,
-	0x4e, 0xe9, 0xa0, 0x79, 0xb4, 0x7f, 0x18, 0x86, 0x3b, 0x72, 0x9d, 0x58, 0x00, 0x13, 0xdf, 0x5d,
-	0x7a, 0x33, 0xe2, 0xe3, 0x55, 0x25, 0xf4, 0x1e, 0xb6, 0x63, 0x68, 0x40, 0xe6, 0x34, 0x22, 0x5f,
-	0xac, 0x3e, 0xc0, 0xd2, 0xba, 0x5a, 0xc6, 0x16, 0xfb, 0xa0, 0x5e, 0xd5, 0xbe, 0xca, 0x56, 0xa4,
-	0x26, 0x9d, 0xc2, 0x4e, 0xae, 0x2c, 0x92, 0x60, 0x53, 0x27, 0x9e, 0x65, 0xd8, 0xea, 0x72, 0x7e,
-	0x41, 0x3c, 0x96, 0xf8, 0x06, 0xce, 0x60, 0xac, 0x24, 0x26, 0xcb, 0x3d, 0x2d, 0x89, 0x29, 0xfd,
-	0x0e, 0x6a, 0xaa, 0xaa, 0x7c, 0x7d, 0xb5, 0xa4, 0xff, 0x15, 0xa0, 0xa4, 0xd9, 0xeb, 0x5a, 0xab,
-	0x4e, 0x14, 0x73, 0x9c, 0xc8, 0x58, 0x2e, 0x7d, 0xb1, 0x0f, 0xca, 0x79, 0x7d, 0x40, 0xd7, 0x1d,
-	0x89, 0x35, 0xc6, 0x2a, 0x2a, 0x23, 0xf4, 0x02, 0xea, 0x3c, 0x90, 0xa8, 0xdc, 0x6d, 0x9e, 0x58,
-	0x0e, 0xe3, 0x98, 0x4f, 0x65, 0x79, 0x8b, 0x46, 0x05, 0x8d, 0x64, 0x39, 0x8c, 0x63, 0xbe, 0xf4,
-	0xe7, 0x02, 0x88, 0x9a, 0x1d, 0xac, 0xa5, 0x7b, 0x7c, 0xb7, 0x20, 0xe8, 0x0d, 0x94, 0x83, 0xbb,
-	0x05, 0x61, 0xe1, 0xb7, 0x8f, 0x9e, 0x71, 0x23, 0xf7, 0x89, 0x1f, 0xd2, 0x1f, 0xcc, 0x34, 0xa4,
-	0x97, 0x50, 0x66, 0x16, 0x9a, 0x50, 0x9b, 0xa8, 0xa7, 0xaa, 0xf6, 0x41, 0x15, 0x36, 0xd0, 0x26,
-	0xd4, 0xe5, 0xe1, 0x50, 0xeb, 0x4e, 0x95, 0x9e, 0x50, 0xa0, 0xd4, 0xa0, 0x7f, 0x36, 0x1d, 0x69,
-	0x78, 0x2c, 0x14, 0xa5, 0x7f, 0x14, 0xe0, 0x71, 0x9e, 0x61, 0x84, 0x42, 0x4b, 0xbc, 0xda, 0xa1,
-	0xd5, 0x7d, 0x68, 0x8c, 0x5c, 0x87, 0x06, 0xc0, 0x8b, 0xdd, 0xc2, 0x09, 0x80, 0x1e, 0x43, 0x85,
-	0xb5, 0x38, 0x4b, 0x7d, 0x0b, 0x87, 0x04, 0xda, 0x85, 0x2a, 0xe5, 0xab, 0x2e, 0xcb, 0x77, 0x0b,
-	0x73, 0x0a, 0x7d, 0x07, 0x10, 0xad, 0xa5, 0x98, 0x62, 0x85, 0x15, 0x3a, 0x85, 0x50, 0xbd, 0x13,
-	0xdb, 0xbd, 0x55, 0x4c, 0xb1, 0xca, 0xf6, 0x22, 0xa7, 0x24, 0x0c, 0x3b, 0x79, 0xfe, 0xfa, 0xe8,
-	0x2d, 0x34, 0xbc, 0x88, 0x10, 0x0b, 0x2c, 0xfd, 0x4f, 0x3e, 0x93, 0x39, 0x9c, 0x48, 0x4b, 0x7f,
-	0x2b, 0x43, 0x49, 0x53, 0x27, 0xbf, 0x58, 0xd3, 0xa5, 0xf2, 0xda, 0xe3, 0xa9, 0x48, 0x00, 0xd4,
-	0x81, 0xc6, 0xbb, 0x5b, 0xd9, 0x34, 0x3d, 0xe2, 0xfb, 0x62, 0x9d, 0xea, 0x1f, 0x17, 0xc5, 0x02,
-	0x4e, 0x40, 0xb4, 0x17, 0xe7, 0xb8, 0x41, 0x95, 0x19, 0x3b, 0xca, 0xf3, 0x21, 0xd4, 0x7d, 0xe2,
-	0xdd, 0x58, 0x34, 0x2b, 0x90, 0x69, 0x4a, 0x3d, 0x84, 0x99, 0x74, 0x2c, 0x83, 0x7a, 0xf0, 0xad,
-	0x32, 0x37, 0xae, 0x88, 0xee, 0x5e, 0x06, 0xb7, 0x86, 0x47, 0xfa, 0x7f, 0x5a, 0x90, 0x59, 0x40,
-	0x4c, 0x9d, 0xcc, 0x02, 0xcb, 0x75, 0x7c, 0xb1, 0xc9, 0xfc, 0xfb, 0xbc, 0xd0, 0x9a, 0x15, 0x4c,
-	0x66, 0xc4, 0xba, 0x49, 0x59, 0xd9, 0xcc, 0xb1, 0xb2, 0x2a, 0x84, 0x7e, 0x82, 0x47, 0xf2, 0x2c,
-	0xb0, 0x6e, 0x08, 0x13, 0xeb, 0x3b, 0x81, 0x15, 0xdc, 0x29, 0xa6, 0xd8, 0x62, 0xba, 0x79, 0x2c,
-	0xf4, 0x33, 0xec, 0x76, 0xdd, 0xf9, 0xdc, 0x0a, 0x02, 0x62, 0x66, 0x95, 0xda, 0x4c, 0xe9, 0x1e,
-	0x2e, 0xfa, 0x0e, 0xca, 0x4b, 0xc7, 0xf2, 0xc5, 0x2d, 0x96, 0x21, 0xe0, 0x19, 0x9a, 0xa8, 0x0a,
-	0x66, 0xb8, 0xf4, 0xcf, 0x02, 0x94, 0x26, 0xaa, 0xb2, 0xd6, 0x21, 0xbc, 0xe7, 0x7b, 0xfc, 0xe8,
-	0x0b, 0x09, 0x8e, 0xea, 0x0e, 0xef, 0x87, 0x90, 0xa0, 0x3b, 0xea, 0x8c, 0x28, 0x3d, 0xbe, 0x0f,
-	0xd8, 0x77, 0xb6, 0x7b, 0x2a, 0xab, 0xdd, 0x93, 0xec, 0x9d, 0x2a, 0x33, 0x1f, 0xd5, 0xf4, 0x45,
-	0xaa, 0xa6, 0xb5, 0xbc, 0x9a, 0x26, 0xf5, 0x94, 0xfe, 0x52, 0x82, 0x1a, 0x47, 0xa9, 0x07, 0xaa,
-	0x31, 0x8f, 0xf7, 0x34, 0xfd, 0xa6, 0x1e, 0x24, 0xdd, 0xc5, 0x8f, 0xe3, 0xa4, 0xb3, 0xee, 0x8d,
-	0x44, 0x1f, 0x1b, 0x57, 0x2c, 0x92, 0x0a, 0x66, 0xdf, 0x14, 0xeb, 0x52, 0x2c, 0x6c, 0x5f, 0xf6,
-	0x4d, 0xf7, 0xb8, 0x4a, 0x88, 0xe9, 0xf7, 0x8d, 0x85, 0x6b, 0xb3, 0x18, 0xea, 0x38, 0x85, 0xd0,
-	0xb5, 0x19, 0xd5, 0xbb, 0x9e, 0x2d, 0xd8, 0x99, 0x5b, 0xc7, 0x09, 0x10, 0x73, 0x95, 0xab, 0xf9,
-	0x82, 0xf5, 0x7d, 0xc4, 0xa5, 0x00, 0x12, 0xa1, 0xc6, 0xaf, 0xc1, 0xb0, 0xe9, 0x71, 0x44, 0xd2,
-	0x55, 0x99, 0xf9, 0x30, 0xa9, 0xc0, 0x1c, 0x4f, 0x21, 0xd4, 0x2e, 0xb5, 0x1f, 0xb2, 0x9b, 0x61,
-	0xc4, 0x31, 0xb0, 0xbe, 0x63, 0x37, 0xef, 0xd9, 0xb1, 0xca, 0xe0, 0x6c, 0x14, 0x4a, 0xb4, 0x42,
-	0x1b, 0x31, 0x40, 0xb3, 0x36, 0x71, 0x2c, 0xde, 0x74, 0x2d, 0x1c, 0x12, 0x92, 0x01, 0x8f, 0x35,
-	0x75, 0x32, 0xf6, 0x8c, 0xcb, 0x4b, 0x6b, 0xa6, 0xcf, 0xae, 0x89, 0xb9, 0xb4, 0x89, 0xe7, 0x23,
-	0x05, 0xb6, 0x02, 0x0a, 0x26, 0x10, 0x2b, 0x50, 0xf3, 0xe8, 0xe9, 0x61, 0x66, 0x10, 0x5a, 0xd3,
-	0xc4, 0xab, 0x7a, 0xd2, 0x01, 0x94, 0x35, 0x75, 0xe2, 0xa3, 0x0e, 0x54, 0xac, 0x80, 0xcc, 0xa3,
-	0x73, 0x30, 0xea, 0x67, 0x4d, 0x9d, 0xe0, 0x90, 0x21, 0xfd, 0x04, 0x75, 0x3d, 0xda, 0xf2, 0xcf,
-	0xb2, 0xd2, 0xab, 0xbd, 0xc4, 0x35, 0x0e, 0xa0, 0x3c, 0x51, 0x95, 0x7b, 0x6d, 0xd3, 0xbd, 0x12,
-	0xdb, 0x06, 0xba, 0x12, 0xf9, 0xb4, 0x24, 0x7e, 0xf0, 0x90, 0xf1, 0x41, 0x7a, 0x01, 0x30, 0xd2,
-	0xd4, 0x48, 0x23, 0x73, 0xcd, 0x14, 0x56, 0xae, 0x19, 0xe9, 0x3f, 0x25, 0x68, 0xc8, 0xb6, 0xe1,
-	0xcd, 0xe9, 0x95, 0x24, 0xfd, 0xbb, 0x04, 0x15, 0xfa, 0xe1, 0xa3, 0x1a, 0x94, 0x86, 0x9a, 0x2e,
-	0x6c, 0xa0, 0x36, 0x40, 0xef, 0xa3, 0xa2, 0x0e, 0xa6, 0x03, 0x59, 0x1f, 0x09, 0x05, 0xd4, 0x82,
-	0x86, 0xa6, 0x4e, 0xa6, 0xf2, 0x50, 0xc6, 0x67, 0x42, 0x11, 0x7d, 0x03, 0x8f, 0x28, 0xa9, 0x8f,
-	0x65, 0x3c, 0x9e, 0x8c, 0xa6, 0x27, 0xb2, 0x32, 0x9c, 0xe0, 0xbe, 0x50, 0x42, 0xbb, 0x80, 0x18,
-	0x43, 0x19, 0xa8, 0xf2, 0x70, 0xda, 0xeb, 0x0f, 0xb0, 0xdc, 0xeb, 0x0b, 0xe5, 0x48, 0xa1, 0x87,
-	0x95, 0x93, 0xf1, 0x54, 0x3b, 0x99, 0x7e, 0x50, 0xd4, 0x9e, 0xf6, 0x41, 0xa8, 0xa0, 0x7d, 0x10,
-	0x29, 0x63, 0xa8, 0xe9, 0x3a, 0xc5, 0xb5, 0xb3, 0xae, 0x32, 0xed, 0xbe, 0x93, 0x55, 0xb5, 0x3f,
-	0x14, 0xaa, 0xf1, 0x3a, 0xcc, 0x9c, 0x1e, 0xaf, 0x53, 0x43, 0xcf, 0xe1, 0x07, 0xca, 0x18, 0x63,
-	0x59, 0xd5, 0xcf, 0x14, 0x5d, 0x57, 0x34, 0x75, 0xaa, 0xa8, 0xe3, 0x3e, 0x3e, 0xe9, 0xe3, 0xbe,
-	0xda, 0xed, 0x4f, 0x3f, 0xc8, 0x58, 0x55, 0xd4, 0x81, 0x50, 0x47, 0x7b, 0xb0, 0xcb, 0x5c, 0xef,
-	0x8e, 0x95, 0x73, 0x79, 0x4c, 0x05, 0x23, 0x33, 0x0d, 0x24, 0xb2, 0x76, 0x9a, 0x8e, 0xb0, 0xd6,
-	0xed, 0xeb, 0x3a, 0x8d, 0xb7, 0x8f, 0xb1, 0x86, 0x05, 0x40, 0x1d, 0xd8, 0x4f, 0xfb, 0x75, 0xda,
-	0xff, 0x38, 0xd5, 0x3f, 0xaa, 0xdd, 0x58, 0xb7, 0x89, 0x76, 0x60, 0x9b, 0x4a, 0x28, 0xe3, 0xc9,
-	0x74, 0xa4, 0xa9, 0x34, 0x17, 0x63, 0x5d, 0xd8, 0x44, 0xdb, 0xd0, 0x8a, 0x33, 0x45, 0xd5, 0x85,
-	0xd6, 0x2a, 0x74, 0x2c, 0xb4, 0xa3, 0xc0, 0x22, 0x68, 0xd4, 0x9d, 0xd2, 0x28, 0x84, 0xad, 0x28,
-	0x1f, 0x19, 0x46, 0x97, 0x7b, 0x25, 0x20, 0x04, 0xed, 0x34, 0xf7, 0x44, 0x11, 0xb6, 0xd1, 0x23,
-	0xd8, 0x4a, 0x63, 0xf2, 0x99, 0x22, 0x20, 0xe9, 0x0d, 0xb4, 0x59, 0x7d, 0x47, 0x86, 0x67, 0xcc,
-	0x49, 0x40, 0x3c, 0x24, 0x40, 0xe9, 0x94, 0xdc, 0xf1, 0xce, 0xa1, 0x9f, 0x74, 0x87, 0x9d, 0x1b,
-	0xf6, 0x32, 0x1a, 0x20, 0x43, 0x42, 0xfa, 0x7b, 0x81, 0xd9, 0x63, 0xda, 0xa9, 0x66, 0x8a, 0xbb,
-	0x85, 0x5b, 0x48, 0x80, 0x07, 0xdd, 0xf0, 0xbb, 0x50, 0xa5, 0xdb, 0x7a, 0xe9, 0xf3, 0x43, 0x90,
-	0x53, 0xe8, 0xb7, 0x00, 0xb1, 0x8b, 0xbe, 0x58, 0x66, 0xbb, 0x61, 0x87, 0xef, 0x86, 0x6c, 0x00,
-	0x38, 0x25, 0x28, 0x7d, 0x82, 0x2d, 0x6d, 0x38, 0xce, 0xf8, 0xd8, 0x81, 0x26, 0x3b, 0x5e, 0x2e,
-	0x8d, 0x19, 0xe1, 0xd7, 0x4b, 0x0b, 0xa7, 0xa1, 0xf8, 0x54, 0xa2, 0x24, 0x8b, 0xa4, 0x98, 0x3a,
-	0x95, 0x22, 0xf0, 0x3e, 0x4f, 0xe9, 0xb0, 0xd9, 0x3a, 0x27, 0x9e, 0x6f, 0xb9, 0x0e, 0x8f, 0x49,
-	0x84, 0xda, 0x4d, 0x08, 0xf0, 0x9c, 0x44, 0x24, 0xcd, 0xd7, 0xc5, 0xd2, 0xb2, 0xcd, 0xb1, 0x35,
-	0x8f, 0xc7, 0xf3, 0x18, 0xa0, 0x67, 0xeb, 0x8c, 0xdd, 0xa0, 0xef, 0x0c, 0xff, 0x9a, 0xaf, 0x92,
-	0x42, 0xa8, 0xf6, 0x95, 0x15, 0x70, 0x27, 0xc2, 0x59, 0x27, 0x01, 0xa4, 0x37, 0x50, 0x1f, 0xba,
-	0x57, 0x43, 0x72, 0x43, 0x6c, 0x5a, 0x41, 0x9b, 0x7e, 0xf0, 0xf5, 0x43, 0x82, 0x46, 0x30, 0x33,
-	0x6c, 0x9b, 0x57, 0xa2, 0x8e, 0x39, 0x25, 0xf5, 0xa1, 0x8e, 0x89, 0xbf, 0x70, 0x1d, 0x9f, 0xa0,
-	0xa7, 0xd0, 0xf4, 0x99, 0xbd, 0xe9, 0xcc, 0x35, 0x09, 0xbf, 0x8c, 0x21, 0x84, 0xba, 0xae, 0x49,
-	0x68, 0x70, 0x73, 0xe2, 0xfb, 0xc6, 0x55, 0x14, 0x40, 0x44, 0x4a, 0x7f, 0x2d, 0x40, 0x93, 0xde,
-	0x1e, 0x51, 0xe2, 0x9f, 0x43, 0x55, 0x73, 0x96, 0x98, 0x7c, 0xe2, 0x27, 0xee, 0x76, 0xea, 0xa0,
-	0x0c, 0x45, 0x30, 0x17, 0x40, 0x6f, 0x61, 0x53, 0x5f, 0x5e, 0xc8, 0x6c, 0x32, 0x39, 0x37, 0x6c,
-	0x66, 0xb9, 0x1d, 0xd7, 0x3b, 0x66, 0xb1, 0xb3, 0x08, 0x67, 0x44, 0x69, 0x93, 0x0d, 0x3c, 0x77,
-	0xb9, 0x88, 0x6e, 0xd9, 0x30, 0x6d, 0x19, 0x4c, 0x3a, 0x85, 0x0a, 0x1d, 0x70, 0x7d, 0xf4, 0x2d,
-	0xc0, 0xa5, 0xed, 0xde, 0x4e, 0x67, 0xec, 0x1d, 0xca, 0x4f, 0x3f, 0x8a, 0x84, 0xaf, 0xd0, 0xef,
-	0xa1, 0x42, 0x09, 0x7a, 0x55, 0xd3, 0x7e, 0x6b, 0x1d, 0x46, 0x0f, 0x69, 0xaa, 0x8d, 0x43, 0x9e,
-	0xf4, 0x14, 0x6a, 0xb4, 0x5a, 0xee, 0x32, 0xa0, 0x69, 0x36, 0x89, 0x6d, 0xdc, 0x71, 0x4b, 0x21,
-	0x21, 0xd5, 0xa0, 0xd2, 0x9f, 0x2f, 0x82, 0xbb, 0x17, 0xaf, 0xa0, 0x9d, 0x75, 0x1d, 0xd5, 0xa1,
-	0xfc, 0x5e, 0x53, 0xe8, 0xb3, 0xa1, 0x01, 0x95, 0x61, 0x5f, 0x3e, 0xef, 0x0b, 0x05, 0x04, 0x50,
-	0xa5, 0xe0, 0xf9, 0x6b, 0xa1, 0x78, 0xf4, 0xaf, 0x26, 0x54, 0x8e, 0x8f, 0x75, 0x6b, 0x8e, 0x5e,
-	0x42, 0x8d, 0x77, 0x15, 0xda, 0xe4, 0x79, 0x60, 0x56, 0xf7, 0x1e, 0x73, 0x2a, 0xd3, 0x73, 0xd2,
-	0x06, 0x7a, 0x05, 0x4d, 0x9d, 0x04, 0x71, 0x0b, 0x6c, 0x71, 0xb1, 0x08, 0xd8, 0x5b, 0x05, 0xa4,
-	0x0d, 0xf4, 0x0c, 0xaa, 0x03, 0x12, 0xd0, 0x17, 0x61, 0x76, 0x09, 0x48, 0x46, 0x7b, 0x69, 0x03,
-	0xfd, 0x01, 0xc4, 0x50, 0x2a, 0xe7, 0x5d, 0xf0, 0xf4, 0x0b, 0xcf, 0xa7, 0xbd, 0xfd, 0xcf, 0x08,
-	0xf8, 0xd2, 0x06, 0xfa, 0x11, 0x60, 0xe4, 0xde, 0x12, 0xcf, 0x75, 0xd6, 0xdd, 0x88, 0x3c, 0x8e,
-	0x9a, 0x53, 0xda, 0x40, 0x87, 0xd0, 0xd4, 0xaf, 0x97, 0x81, 0xe9, 0xde, 0x3e, 0x4c, 0xfe, 0xd7,
-	0xd0, 0xc0, 0xe4, 0xc2, 0x75, 0x83, 0x07, 0x49, 0xd3, 0x82, 0x05, 0xee, 0xe2, 0x0a, 0x8f, 0xba,
-	0xf4, 0x7e, 0x26, 0xde, 0x97, 0x55, 0x8e, 0x60, 0x4b, 0x0f, 0x0c, 0x2f, 0xf8, 0x1a, 0x9d, 0x9f,
-	0x61, 0x1b, 0x13, 0x7f, 0x45, 0x2b, 0x1a, 0x0c, 0x78, 0x6f, 0xe5, 0xe9, 0x3d, 0x0f, 0xcb, 0xa5,
-	0x4e, 0xd0, 0xfa, 0x56, 0xda, 0x4b, 0x8d, 0x21, 0xd2, 0x06, 0xfa, 0x15, 0x1d, 0xe0, 0x02, 0x36,
-	0xae, 0x64, 0xdd, 0x69, 0x26, 0x62, 0x7e, 0x98, 0xcf, 0x01, 0x09, 0xe2, 0x61, 0x25, 0xdf, 0xf5,
-	0x88, 0xcd, 0xe4, 0x81, 0xda, 0x75, 0x96, 0x13, 0xc7, 0xf2, 0xf3, 0xdc, 0x68, 0x26, 0x13, 0x0b,
-	0x95, 0x7f, 0x9d, 0xaa, 0x57, 0xbe, 0xdf, 0xf7, 0xe4, 0x94, 0x2b, 0xc9, 0xb6, 0x9d, 0x13, 0x44,
-	0x8e, 0xce, 0x5b, 0xd8, 0x4e, 0x2d, 0xe4, 0x6b, 0xce, 0x48, 0x53, 0xe3, 0xe5, 0x92, 0xf1, 0x27,
-	0x7f, 0xb9, 0xb8, 0x05, 0x1f, 0xec, 0xe2, 0x2b, 0x68, 0x73, 0x9d, 0x07, 0x7b, 0xf8, 0x06, 0x84,
-	0x64, 0x99, 0xaf, 0x72, 0xf0, 0x37, 0xb0, 0xc9, 0xfb, 0x25, 0x9c, 0xec, 0x1f, 0xe6, 0xe2, 0x6b,
-	0x68, 0x72, 0x2d, 0x36, 0xf0, 0x3f, 0x4c, 0xe9, 0x18, 0x76, 0x74, 0x56, 0x5f, 0x76, 0x85, 0x2a,
-	0x8e, 0x69, 0xcd, 0x0c, 0x7a, 0x7c, 0xa1, 0xdd, 0x44, 0x3d, 0x7d, 0xbb, 0x7e, 0xc6, 0x06, 0xdd,
-	0xf0, 0xf7, 0xd8, 0xc8, 0xde, 0xd0, 0x79, 0x36, 0x7e, 0x84, 0xfa, 0x80, 0x04, 0xe1, 0xa1, 0x9d,
-	0xe3, 0x79, 0x94, 0x6c, 0x26, 0xc0, 0x72, 0xbb, 0xd5, 0xbd, 0x36, 0x9c, 0x2b, 0x42, 0xef, 0x9f,
-	0xf0, 0x99, 0x80, 0xb8, 0x48, 0xea, 0x46, 0xca, 0x5b, 0xe8, 0x14, 0xbe, 0x09, 0x1b, 0x7a, 0xfd,
-	0xe9, 0x90, 0xb3, 0xee, 0x93, 0x04, 0x5a, 0x93, 0x97, 0x36, 0x8e, 0x7f, 0xf8, 0xfd, 0xf7, 0x57,
-	0x56, 0x70, 0xbd, 0xbc, 0x38, 0x9c, 0xb9, 0x73, 0xf6, 0x2f, 0xec, 0xcc, 0xf5, 0x4c, 0xfe, 0xb7,
-	0x6d, 0xfc, 0x07, 0xee, 0x45, 0x95, 0xfd, 0xeb, 0xfa, 0xfa, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff,
-	0x72, 0xed, 0x0c, 0x5e, 0xd4, 0x15, 0x00, 0x00,
+	// 2090 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcb, 0x6e, 0xdb, 0xd8,
+	0xf9, 0xb7, 0xee, 0xd2, 0x27, 0x4b, 0xa2, 0x4f, 0x62, 0x0f, 0xe1, 0x78, 0x26, 0x02, 0x27, 0xf3,
+	0x87, 0x13, 0xfc, 0xc7, 0x99, 0x24, 0xed, 0x34, 0x59, 0xd2, 0x92, 0xac, 0x70, 0x2c, 0x93, 0xc2,
+	0xa1, 0xe4, 0x20, 0xed, 0x42, 0xa0, 0xc5, 0x63, 0x9b, 0x28, 0x45, 0x2a, 0x24, 0x65, 0xd7, 0x0f,
+	0x50, 0xf4, 0x11, 0xba, 0x2c, 0xd0, 0x07, 0xe8, 0xb6, 0xaf, 0xd1, 0x27, 0x68, 0x57, 0x05, 0xfa,
+	0x18, 0xc5, 0x39, 0x3c, 0xbc, 0x49, 0x74, 0xe2, 0xac, 0xba, 0x11, 0xf8, 0xfd, 0xbe, 0xfb, 0xe5,
+	0xdc, 0x04, 0xbb, 0xc6, 0xd2, 0x7a, 0x79, 0x71, 0xe1, 0x5b, 0x8b, 0xf0, 0xf7, 0x68, 0xe9, 0xb9,
+	0x81, 0x8b, 0x2a, 0x8c, 0xd8, 0x7f, 0x72, 0xe3, 0xda, 0xc1, 0xb5, 0x31, 0x63, 0xa0, 0xff, 0xd2,
+	0x5d, 0x12, 0xc7, 0xb5, 0x83, 0x50, 0x66, 0xbf, 0x9b, 0x65, 0x06, 0x64, 0x7e, 0x4d, 0xbf, 0x2f,
+	0x2d, 0x9b, 0x84, 0x12, 0xd2, 0xbf, 0x8a, 0x50, 0x1b, 0x6b, 0xea, 0xd8, 0xf5, 0x02, 0xd4, 0x86,
+	0xa2, 0xd2, 0x17, 0x0b, 0xdd, 0xc2, 0x61, 0x05, 0x17, 0x95, 0x3e, 0x3a, 0x80, 0x86, 0xb6, 0x24,
+	0x9e, 0x1e, 0x18, 0x01, 0x11, 0x8b, 0xdd, 0xc2, 0x61, 0x03, 0x27, 0x00, 0x7a, 0x06, 0x2d, 0xc5,
+	0x09, 0x88, 0xe7, 0x18, 0x76, 0x28, 0x51, 0x62, 0x12, 0x59, 0x10, 0x75, 0xa1, 0x39, 0x36, 0xe6,
+	0xbf, 0x27, 0x41, 0xcf, 0x5d, 0x39, 0x81, 0x58, 0xee, 0x16, 0x0e, 0xcb, 0x38, 0x0d, 0xa1, 0x13,
+	0xe8, 0xc8, 0xb6, 0xed, 0xce, 0x8d, 0x80, 0x98, 0x9a, 0xb3, 0x52, 0x4c, 0x5f, 0xac, 0x74, 0x4b,
+	0x87, 0xcd, 0xd7, 0x07, 0x47, 0x61, 0xba, 0x63, 0xd7, 0x89, 0x05, 0x30, 0xf1, 0xdd, 0x95, 0x37,
+	0x27, 0x3e, 0x5e, 0x57, 0x42, 0xbf, 0xc0, 0x4e, 0x0c, 0x0d, 0xc9, 0x82, 0x66, 0xe4, 0x8b, 0xd5,
+	0x07, 0x58, 0xda, 0x54, 0xcb, 0xd8, 0x62, 0x1f, 0x34, 0xaa, 0xda, 0x57, 0xd9, 0x8a, 0xd4, 0xa4,
+	0x53, 0xd8, 0xcd, 0x95, 0x45, 0x12, 0x6c, 0xeb, 0xc4, 0xb3, 0x0c, 0x5b, 0x5d, 0x2d, 0x2e, 0x88,
+	0xc7, 0x0a, 0xdf, 0xc0, 0x19, 0x8c, 0xb5, 0xc4, 0x64, 0xb5, 0xa7, 0x2d, 0x31, 0xa5, 0xdf, 0x40,
+	0x4d, 0x55, 0x95, 0xaf, 0xef, 0x96, 0xf4, 0xef, 0x02, 0x94, 0x34, 0x7b, 0x53, 0x6b, 0x3d, 0x88,
+	0x62, 0x4e, 0x10, 0x19, 0xcb, 0xa5, 0x2f, 0xce, 0x41, 0x39, 0x6f, 0x0e, 0xa8, 0xdf, 0xb1, 0x58,
+	0x63, 0xac, 0xa2, 0x32, 0x46, 0x2f, 0xa0, 0xce, 0x13, 0x89, 0xda, 0xdd, 0xe6, 0x85, 0xe5, 0x30,
+	0x8e, 0xf9, 0x54, 0x96, 0x8f, 0x68, 0xd4, 0xd0, 0x48, 0x96, 0xc3, 0x38, 0xe6, 0x4b, 0x7f, 0x2c,
+	0x80, 0xa8, 0xd9, 0xc1, 0x46, 0xb9, 0x27, 0x77, 0x4b, 0x82, 0xde, 0x42, 0x39, 0xb8, 0x5b, 0x12,
+	0x96, 0x7e, 0xfb, 0xf5, 0x33, 0x6e, 0xe4, 0x3e, 0xf1, 0x23, 0xfa, 0x83, 0x99, 0x86, 0xf4, 0x12,
+	0xca, 0xcc, 0x42, 0x13, 0x6a, 0x53, 0xf5, 0x54, 0xd5, 0x3e, 0xa8, 0xc2, 0x16, 0xda, 0x86, 0xba,
+	0x3c, 0x1a, 0x69, 0xbd, 0x99, 0xd2, 0x17, 0x0a, 0x94, 0x1a, 0x0e, 0xce, 0x66, 0x63, 0x0d, 0x4f,
+	0x84, 0xa2, 0xf4, 0xb7, 0x02, 0x3c, 0xce, 0x33, 0x8c, 0x50, 0x68, 0x89, 0x77, 0x3b, 0xb4, 0x7a,
+	0x00, 0x8d, 0xb1, 0xeb, 0xd0, 0x04, 0x78, 0xb3, 0x5b, 0x38, 0x01, 0xd0, 0x63, 0xa8, 0xb0, 0x11,
+	0x67, 0xa5, 0x6f, 0xe1, 0x90, 0x40, 0x7b, 0x50, 0xa5, 0x7c, 0xd5, 0x65, 0xf5, 0x6e, 0x61, 0x4e,
+	0xa1, 0xef, 0x00, 0x22, 0x5f, 0x8a, 0x29, 0x56, 0x58, 0xa3, 0x53, 0x08, 0xd5, 0x3b, 0xb1, 0xdd,
+	0x5b, 0xc5, 0x14, 0xab, 0x6c, 0x2d, 0x72, 0x4a, 0xc2, 0xb0, 0x9b, 0x17, 0xaf, 0x8f, 0xde, 0x41,
+	0xc3, 0x8b, 0x08, 0xb1, 0xc0, 0xca, 0xff, 0xe4, 0x33, 0x95, 0xc3, 0x89, 0xb4, 0xf4, 0x97, 0x32,
+	0x94, 0x34, 0x75, 0xfa, 0x3f, 0x1b, 0xba, 0x54, 0x5d, 0xfb, 0xbc, 0x14, 0x09, 0x80, 0xba, 0xd0,
+	0x78, 0x7f, 0x2b, 0x9b, 0xa6, 0x47, 0x7c, 0x5f, 0xac, 0x53, 0xfd, 0xe3, 0xa2, 0x58, 0xc0, 0x09,
+	0x88, 0xf6, 0xe3, 0x1a, 0x37, 0xa8, 0x32, 0x63, 0x47, 0x75, 0x3e, 0x82, 0xba, 0x4f, 0xbc, 0x1b,
+	0x8b, 0x56, 0x05, 0x32, 0x43, 0xa9, 0x87, 0x30, 0x93, 0x8e, 0x65, 0x50, 0x1f, 0xbe, 0x55, 0x16,
+	0xc6, 0x15, 0xd1, 0xdd, 0xcb, 0xe0, 0xd6, 0xf0, 0xc8, 0xe0, 0x0f, 0x4b, 0x32, 0x0f, 0x88, 0xa9,
+	0x93, 0x79, 0x60, 0xb9, 0x8e, 0x2f, 0x36, 0x59, 0x7c, 0x9f, 0x17, 0xda, 0xb0, 0x82, 0xc9, 0x9c,
+	0x58, 0x37, 0x29, 0x2b, 0xdb, 0x39, 0x56, 0xd6, 0x85, 0xd0, 0x4f, 0xf0, 0x48, 0x9e, 0x07, 0xd6,
+	0x0d, 0x61, 0x62, 0x03, 0x27, 0xb0, 0x82, 0x3b, 0xc5, 0x14, 0x5b, 0x4c, 0x37, 0x8f, 0x85, 0x7e,
+	0x86, 0xbd, 0x9e, 0xbb, 0x58, 0x58, 0x41, 0x40, 0xcc, 0xac, 0x52, 0x9b, 0x29, 0xdd, 0xc3, 0x45,
+	0xdf, 0x41, 0x79, 0xe5, 0x58, 0xbe, 0xd8, 0x61, 0x15, 0x02, 0x5e, 0xa1, 0xa9, 0xaa, 0x60, 0x86,
+	0x4b, 0x7f, 0x2f, 0x40, 0x69, 0xaa, 0x2a, 0x1b, 0x13, 0xc2, 0x67, 0xbe, 0xcf, 0xb7, 0xbe, 0x90,
+	0xe0, 0xa8, 0xee, 0xf0, 0x79, 0x08, 0x09, 0xba, 0xa2, 0xce, 0x88, 0xd2, 0xe7, 0xeb, 0x80, 0x7d,
+	0x67, 0xa7, 0xa7, 0xb2, 0x3e, 0x3d, 0xc9, 0xda, 0xa9, 0x32, 0xf3, 0x51, 0x4f, 0x5f, 0xa4, 0x7a,
+	0x5a, 0xcb, 0xeb, 0x69, 0xd2, 0x4f, 0xe9, 0x4f, 0x25, 0xa8, 0x71, 0x94, 0x46, 0xa0, 0x1a, 0x8b,
+	0x78, 0x4d, 0xd3, 0x6f, 0x1a, 0x41, 0x32, 0x5d, 0x7c, 0x3b, 0x4e, 0x26, 0xeb, 0xde, 0x4c, 0xf4,
+	0x89, 0x71, 0xc5, 0x32, 0xa9, 0x60, 0xf6, 0x4d, 0xb1, 0x1e, 0xc5, 0xc2, 0xf1, 0x65, 0xdf, 0x74,
+	0x8d, 0xab, 0x84, 0x98, 0xfe, 0xc0, 0x58, 0xba, 0x36, 0xcb, 0xa1, 0x8e, 0x53, 0x08, 0xf5, 0xcd,
+	0xa8, 0xfe, 0xf5, 0x7c, 0xc9, 0xf6, 0xdc, 0x3a, 0x4e, 0x80, 0x98, 0xab, 0x5c, 0x2d, 0x96, 0x6c,
+	0xee, 0x23, 0x2e, 0x05, 0x90, 0x08, 0x35, 0x7e, 0x0c, 0x86, 0x43, 0x8f, 0x23, 0x92, 0x7a, 0x65,
+	0xe6, 0xc3, 0xa2, 0x02, 0x0b, 0x3c, 0x85, 0x50, 0xbb, 0xd4, 0x7e, 0xc8, 0x6e, 0x86, 0x19, 0xc7,
+	0xc0, 0xe6, 0x8a, 0xdd, 0xbe, 0x67, 0xc5, 0x2a, 0xc3, 0xb3, 0x71, 0x28, 0xd1, 0x0a, 0x6d, 0xc4,
+	0x00, 0xad, 0xda, 0xd4, 0xb1, 0xf8, 0xd0, 0xb5, 0x70, 0x48, 0x48, 0x06, 0x3c, 0xd6, 0xd4, 0xe9,
+	0xc4, 0x33, 0x2e, 0x2f, 0xad, 0xb9, 0x3e, 0xbf, 0x26, 0xe6, 0xca, 0x26, 0x9e, 0x8f, 0x14, 0xe8,
+	0x04, 0x14, 0x4c, 0x20, 0xd6, 0xa0, 0xe6, 0xeb, 0xa7, 0x47, 0x99, 0x8b, 0xd0, 0x86, 0x26, 0x5e,
+	0xd7, 0x93, 0x0e, 0xa1, 0xac, 0xa9, 0x53, 0x1f, 0x75, 0xa1, 0x62, 0x05, 0x64, 0x11, 0xed, 0x83,
+	0xd1, 0x3c, 0x6b, 0xea, 0x14, 0x87, 0x0c, 0xe9, 0x27, 0xa8, 0xeb, 0xd1, 0x92, 0x7f, 0x96, 0x95,
+	0x5e, 0x9f, 0x25, 0xae, 0x71, 0x08, 0xe5, 0xa9, 0xaa, 0xdc, 0x6b, 0x9b, 0xae, 0x95, 0xd8, 0x36,
+	0x50, 0x4f, 0xe4, 0xd3, 0x8a, 0xf8, 0xc1, 0x43, 0xae, 0x0f, 0xd2, 0x0b, 0x80, 0xb1, 0xa6, 0x46,
+	0x1a, 0x99, 0x63, 0xa6, 0xb0, 0x76, 0xcc, 0x48, 0x23, 0x00, 0xea, 0x8b, 0xcb, 0x1e, 0x42, 0x87,
+	0xce, 0xe4, 0xa6, 0x83, 0x75, 0x38, 0x6a, 0x4a, 0x9f, 0x0f, 0x79, 0x48, 0x48, 0xff, 0x2c, 0x41,
+	0x43, 0xb6, 0x0d, 0x6f, 0x41, 0x0f, 0x38, 0xe9, 0x1f, 0x25, 0xa8, 0xd0, 0x0f, 0x1f, 0xd5, 0xa0,
+	0x34, 0xd2, 0x74, 0x61, 0x0b, 0xb5, 0x01, 0xfa, 0x1f, 0x15, 0x75, 0x38, 0x1b, 0xca, 0xfa, 0x58,
+	0x28, 0xa0, 0x16, 0x34, 0x34, 0x75, 0x3a, 0x93, 0x47, 0x32, 0x3e, 0x13, 0x8a, 0xe8, 0x1b, 0x78,
+	0x44, 0x49, 0x7d, 0x22, 0xe3, 0xc9, 0x74, 0x3c, 0x3b, 0x91, 0x95, 0xd1, 0x14, 0x0f, 0x84, 0x12,
+	0xda, 0x03, 0xc4, 0x18, 0xca, 0x50, 0x95, 0x47, 0xb3, 0xfe, 0x60, 0x88, 0xe5, 0xfe, 0x40, 0x28,
+	0x47, 0x0a, 0x7d, 0xac, 0x9c, 0x4c, 0x66, 0xda, 0xc9, 0xec, 0x83, 0xa2, 0xf6, 0xb5, 0x0f, 0x42,
+	0x05, 0x1d, 0x80, 0x48, 0x19, 0x23, 0x4d, 0xd7, 0x29, 0xae, 0x9d, 0xf5, 0x94, 0x59, 0xef, 0xbd,
+	0xac, 0xaa, 0x83, 0x91, 0x50, 0x8d, 0xfd, 0x30, 0x73, 0x7a, 0xec, 0xa7, 0x86, 0x9e, 0xc3, 0x0f,
+	0x94, 0x31, 0xc1, 0xb2, 0xaa, 0x9f, 0x29, 0xba, 0xae, 0x68, 0xea, 0x4c, 0x51, 0x27, 0x03, 0x7c,
+	0x32, 0xc0, 0x03, 0xb5, 0x37, 0x98, 0x7d, 0x90, 0xb1, 0xaa, 0xa8, 0x43, 0xa1, 0x8e, 0xf6, 0x61,
+	0x8f, 0x85, 0xde, 0x9b, 0x28, 0xe7, 0xf2, 0x84, 0x0a, 0x46, 0x66, 0x1a, 0x48, 0x64, 0xc3, 0x39,
+	0x1b, 0x63, 0xad, 0x37, 0xd0, 0x75, 0x9a, 0xef, 0x00, 0x63, 0x0d, 0x0b, 0x80, 0xba, 0x70, 0x90,
+	0x8e, 0xeb, 0x74, 0xf0, 0x71, 0xa6, 0x7f, 0x54, 0x7b, 0xb1, 0x6e, 0x13, 0xed, 0xc2, 0x0e, 0x95,
+	0x50, 0x26, 0xd3, 0xd9, 0x58, 0x53, 0x69, 0x2d, 0x26, 0xba, 0xb0, 0x8d, 0x76, 0xa0, 0x15, 0x57,
+	0x8a, 0xaa, 0x0b, 0xad, 0x75, 0xe8, 0x58, 0x68, 0x47, 0x89, 0x45, 0xd0, 0xb8, 0x37, 0xa3, 0x59,
+	0x08, 0x9d, 0xa8, 0x1e, 0x19, 0x46, 0x8f, 0x47, 0x25, 0x20, 0x04, 0xed, 0x34, 0xf7, 0x44, 0x11,
+	0x76, 0xd0, 0x23, 0xe8, 0xa4, 0x31, 0xf9, 0x4c, 0x11, 0x90, 0xf4, 0x16, 0xda, 0xac, 0xbf, 0x63,
+	0xc3, 0x33, 0x16, 0x24, 0x20, 0x1e, 0x12, 0xa0, 0x74, 0x4a, 0xee, 0xf8, 0x98, 0xd0, 0x4f, 0x3a,
+	0x1a, 0xe7, 0x86, 0xbd, 0x8a, 0xae, 0xa3, 0x21, 0x21, 0xfd, 0xb5, 0xc0, 0xec, 0x31, 0xed, 0xd4,
+	0x68, 0xc6, 0xd3, 0xc2, 0x2d, 0x24, 0xc0, 0x83, 0xee, 0x0b, 0x7b, 0x50, 0xa5, 0x9b, 0xc4, 0xca,
+	0xe7, 0x5b, 0x2a, 0xa7, 0xd0, 0xaf, 0x01, 0xe2, 0x10, 0x7d, 0xb1, 0xcc, 0xd6, 0xd6, 0x2e, 0x5f,
+	0x5b, 0xd9, 0x04, 0x70, 0x4a, 0x50, 0xfa, 0x04, 0x1d, 0x6d, 0x34, 0xc9, 0xc4, 0xd8, 0x85, 0x26,
+	0xdb, 0xac, 0x2e, 0x8d, 0x39, 0xe1, 0x87, 0x55, 0x0b, 0xa7, 0xa1, 0x78, 0x8f, 0xa3, 0x24, 0xcb,
+	0xa4, 0x98, 0xda, 0xe3, 0x22, 0xf0, 0xbe, 0x48, 0xe9, 0xd5, 0xb5, 0x75, 0x4e, 0x3c, 0xdf, 0x72,
+	0x1d, 0x9e, 0x93, 0x08, 0xb5, 0x9b, 0x10, 0xe0, 0x35, 0x89, 0x48, 0x5a, 0xaf, 0x8b, 0x95, 0x65,
+	0x9b, 0x13, 0x6b, 0x11, 0x5f, 0xf6, 0x63, 0x80, 0xee, 0xd4, 0x73, 0x76, 0x1e, 0xbf, 0x37, 0xfc,
+	0x6b, 0xee, 0x25, 0x85, 0x50, 0xed, 0x2b, 0x2b, 0xe0, 0x41, 0x84, 0x37, 0xa7, 0x04, 0x90, 0xde,
+	0x42, 0x7d, 0xe4, 0x5e, 0x8d, 0xc8, 0x0d, 0xb1, 0x69, 0x07, 0x6d, 0xfa, 0xc1, 0xfd, 0x87, 0x04,
+	0xcd, 0x60, 0x6e, 0xd8, 0x36, 0xef, 0x44, 0x1d, 0x73, 0x4a, 0x1a, 0x40, 0x1d, 0x13, 0x7f, 0xe9,
+	0x3a, 0x3e, 0x41, 0x4f, 0xa1, 0xe9, 0x33, 0x7b, 0xb3, 0xb9, 0x6b, 0x12, 0x7e, 0xb4, 0x43, 0x08,
+	0xf5, 0x5c, 0x93, 0xd0, 0xe4, 0x16, 0xc4, 0xf7, 0x8d, 0xab, 0x28, 0x81, 0x88, 0x94, 0xfe, 0x5c,
+	0x80, 0x26, 0x3d, 0x8b, 0xa2, 0xc2, 0x3f, 0x87, 0xaa, 0xe6, 0xac, 0x30, 0xf9, 0xc4, 0xf7, 0xef,
+	0x9d, 0xd4, 0xb6, 0x1b, 0x8a, 0x60, 0x2e, 0x80, 0xde, 0xc1, 0xb6, 0xbe, 0xba, 0x90, 0xd9, 0x3d,
+	0xe7, 0xdc, 0xb0, 0x99, 0xe5, 0x76, 0xdc, 0xef, 0x98, 0xc5, 0xf6, 0x22, 0x9c, 0x11, 0xa5, 0x43,
+	0x36, 0xf4, 0xdc, 0xd5, 0x32, 0x3a, 0xb3, 0xc3, 0xb2, 0x65, 0x30, 0xe9, 0x14, 0x2a, 0xf4, 0xba,
+	0xec, 0xa3, 0x6f, 0x01, 0x2e, 0x6d, 0xf7, 0x76, 0x36, 0x67, 0xaf, 0x5a, 0xbe, 0x97, 0x52, 0x24,
+	0x7c, 0xd3, 0x7e, 0x0f, 0x15, 0x4a, 0xd0, 0x83, 0x9f, 0xce, 0x5b, 0xeb, 0x28, 0x7a, 0x96, 0x53,
+	0x6d, 0x1c, 0xf2, 0xa4, 0xa7, 0x50, 0xa3, 0xdd, 0x72, 0x57, 0x01, 0x2d, 0xb3, 0x49, 0x6c, 0xe3,
+	0x8e, 0x5b, 0x0a, 0x09, 0xa9, 0x06, 0x95, 0xc1, 0x62, 0x19, 0xdc, 0xbd, 0x78, 0x05, 0xed, 0x6c,
+	0xe8, 0xa8, 0x0e, 0xe5, 0x5f, 0x34, 0x85, 0x3e, 0x42, 0x1a, 0x50, 0x19, 0x0d, 0xe4, 0xf3, 0x81,
+	0x50, 0x40, 0x00, 0x55, 0x0a, 0x9e, 0xbf, 0x11, 0x8a, 0xaf, 0xff, 0xd3, 0x84, 0xca, 0xf1, 0xb1,
+	0x6e, 0x2d, 0xd0, 0x4b, 0xa8, 0xf1, 0xa9, 0x42, 0xdb, 0xbc, 0x0e, 0xcc, 0xea, 0xfe, 0x63, 0x4e,
+	0x65, 0x66, 0x4e, 0xda, 0x42, 0xaf, 0xa0, 0xa9, 0x93, 0x20, 0x1e, 0x81, 0x0e, 0x17, 0x8b, 0x80,
+	0xfd, 0x75, 0x40, 0xda, 0x42, 0xcf, 0xa0, 0x3a, 0x24, 0x01, 0x7d, 0x5f, 0x66, 0x5d, 0x40, 0xf2,
+	0x50, 0x90, 0xb6, 0xd0, 0xef, 0x40, 0x0c, 0xa5, 0x72, 0x5e, 0x19, 0x4f, 0xbf, 0xf0, 0x18, 0xdb,
+	0x3f, 0xf8, 0x8c, 0x80, 0x2f, 0x6d, 0xa1, 0x1f, 0x01, 0xc6, 0xee, 0x2d, 0xf1, 0x5c, 0x67, 0x33,
+	0x8c, 0x28, 0xe2, 0x68, 0x38, 0xa5, 0x2d, 0x74, 0x04, 0x4d, 0xfd, 0x7a, 0x15, 0x98, 0xee, 0xed,
+	0xc3, 0xe4, 0xff, 0x1f, 0x1a, 0x98, 0x5c, 0xb8, 0x6e, 0xf0, 0x20, 0x69, 0xda, 0xb0, 0xc0, 0x5d,
+	0x5e, 0xe1, 0x71, 0x8f, 0x9e, 0xf6, 0xc4, 0xfb, 0xb2, 0xca, 0x6b, 0xe8, 0xe8, 0x81, 0xe1, 0x05,
+	0x5f, 0xa3, 0xf3, 0x33, 0xec, 0x60, 0xe2, 0xaf, 0x69, 0x45, 0xd7, 0x0c, 0x3e, 0x5b, 0x79, 0x7a,
+	0xcf, 0xc3, 0x76, 0xa9, 0x53, 0xb4, 0xb9, 0x94, 0xf6, 0x53, 0x97, 0x1a, 0x69, 0x0b, 0xfd, 0x1f,
+	0xbd, 0x0e, 0x06, 0xec, 0xf2, 0x93, 0x0d, 0xa7, 0x99, 0x88, 0xd1, 0xf2, 0xbf, 0x81, 0xe6, 0x90,
+	0x04, 0xf1, 0xd5, 0x67, 0x27, 0x75, 0x7b, 0xe1, 0x76, 0x3b, 0xd9, 0xeb, 0x8f, 0xcf, 0x9a, 0x00,
+	0xd4, 0xb8, 0xb3, 0x9a, 0x3a, 0x96, 0x9f, 0x17, 0x4b, 0x33, 0x31, 0xc3, 0x9d, 0xc4, 0x4d, 0xcb,
+	0x0f, 0xfe, 0x9e, 0xc2, 0x72, 0x25, 0xd9, 0xb6, 0x73, 0x32, 0xc9, 0xd1, 0x79, 0x07, 0x3b, 0x29,
+	0x47, 0xbe, 0xe6, 0x8c, 0x35, 0x35, 0x76, 0x97, 0xdc, 0xa8, 0xf2, 0xdd, 0xc5, 0x73, 0xf8, 0xe0,
+	0x10, 0x5f, 0x41, 0x9b, 0xeb, 0x3c, 0x38, 0xc2, 0xb7, 0x20, 0x24, 0x6e, 0xbe, 0x2a, 0xc0, 0x5f,
+	0xc1, 0x36, 0x1f, 0x9a, 0xf0, 0xb1, 0xf0, 0xb0, 0x10, 0xdf, 0x40, 0x93, 0x6b, 0xb1, 0x37, 0xc4,
+	0xc3, 0x94, 0x8e, 0x61, 0x57, 0x67, 0xfd, 0x65, 0xe7, 0xa8, 0xe2, 0x98, 0xd6, 0xdc, 0xa0, 0x7b,
+	0x18, 0xda, 0x4b, 0xd4, 0xd3, 0x47, 0xec, 0x67, 0x6c, 0xd0, 0x55, 0x7f, 0x8f, 0x8d, 0xec, 0x31,
+	0x9d, 0x67, 0xe3, 0x47, 0xa8, 0x0f, 0x49, 0x10, 0xee, 0xdc, 0x39, 0x91, 0x47, 0xc5, 0x66, 0x02,
+	0xac, 0xb6, 0x9d, 0xde, 0xb5, 0xe1, 0x5c, 0x11, 0x7a, 0x08, 0x85, 0x2f, 0x0f, 0xc4, 0x45, 0x52,
+	0xc7, 0x52, 0x9e, 0xa3, 0x53, 0xf8, 0x26, 0x1c, 0xe8, 0xcd, 0xd7, 0x48, 0x8e, 0xdf, 0x27, 0x09,
+	0xb4, 0x21, 0x1f, 0x2f, 0x3d, 0xb6, 0x34, 0xf2, 0x97, 0x5e, 0xb8, 0x2a, 0x8e, 0x7f, 0xf8, 0xed,
+	0xf7, 0x57, 0x56, 0x70, 0xbd, 0xba, 0x38, 0x9a, 0xbb, 0x0b, 0xf6, 0x07, 0xf0, 0xdc, 0xf5, 0x4c,
+	0xfe, 0x8f, 0x71, 0xfc, 0xdf, 0xf1, 0x45, 0x95, 0xfd, 0xe1, 0xfb, 0xe6, 0xbf, 0x01, 0x00, 0x00,
+	0xff, 0xff, 0x64, 0x15, 0xb3, 0xe8, 0x4f, 0x16, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -1923,8 +1973,8 @@
 	GetONU(ctx context.Context, in *ONURequest, opts ...grpc.CallOption) (*ONU, error)
 	// Get status of all ONUs
 	GetONUs(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ONUs, error)
-	// Get all the Services
-	GetServices(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Services, error)
+	// Get all the Services by Uni ID
+	GetServices(ctx context.Context, in *UNIRequest, opts ...grpc.CallOption) (*Services, error)
 	// Get all the UNIs of an ONU by serial number
 	GetOnuUnis(ctx context.Context, in *ONURequest, opts ...grpc.CallOption) (*UNIs, error)
 	// Shutdown an ONU by serial number
@@ -1953,6 +2003,8 @@
 	ChangeIgmpState(ctx context.Context, in *IgmpRequest, opts ...grpc.CallOption) (*Response, error)
 	// Get Traffic scheduler information for ONU
 	GetOnuTrafficSchedulers(ctx context.Context, in *ONURequest, opts ...grpc.CallOption) (*ONUTrafficSchedulers, error)
+	//Return all the UNIs for all the ONUs
+	GetUnis(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*UNIs, error)
 }
 
 type bBSimClient struct {
@@ -2071,7 +2123,7 @@
 	return out, nil
 }
 
-func (c *bBSimClient) GetServices(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Services, error) {
+func (c *bBSimClient) GetServices(ctx context.Context, in *UNIRequest, opts ...grpc.CallOption) (*Services, error) {
 	out := new(Services)
 	err := c.cc.Invoke(ctx, "/bbsim.BBSim/GetServices", in, out, opts...)
 	if err != nil {
@@ -2206,6 +2258,15 @@
 	return out, nil
 }
 
+func (c *bBSimClient) GetUnis(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*UNIs, error) {
+	out := new(UNIs)
+	err := c.cc.Invoke(ctx, "/bbsim.BBSim/GetUnis", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // BBSimServer is the server API for BBSim service.
 type BBSimServer interface {
 	// Get BBSim version
@@ -2231,8 +2292,8 @@
 	GetONU(context.Context, *ONURequest) (*ONU, error)
 	// Get status of all ONUs
 	GetONUs(context.Context, *Empty) (*ONUs, error)
-	// Get all the Services
-	GetServices(context.Context, *Empty) (*Services, error)
+	// Get all the Services by Uni ID
+	GetServices(context.Context, *UNIRequest) (*Services, error)
 	// Get all the UNIs of an ONU by serial number
 	GetOnuUnis(context.Context, *ONURequest) (*UNIs, error)
 	// Shutdown an ONU by serial number
@@ -2261,6 +2322,8 @@
 	ChangeIgmpState(context.Context, *IgmpRequest) (*Response, error)
 	// Get Traffic scheduler information for ONU
 	GetOnuTrafficSchedulers(context.Context, *ONURequest) (*ONUTrafficSchedulers, error)
+	//Return all the UNIs for all the ONUs
+	GetUnis(context.Context, *Empty) (*UNIs, error)
 }
 
 // UnimplementedBBSimServer can be embedded to have forward compatible implementations.
@@ -2303,7 +2366,7 @@
 func (*UnimplementedBBSimServer) GetONUs(ctx context.Context, req *Empty) (*ONUs, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetONUs not implemented")
 }
-func (*UnimplementedBBSimServer) GetServices(ctx context.Context, req *Empty) (*Services, error) {
+func (*UnimplementedBBSimServer) GetServices(ctx context.Context, req *UNIRequest) (*Services, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetServices not implemented")
 }
 func (*UnimplementedBBSimServer) GetOnuUnis(ctx context.Context, req *ONURequest) (*UNIs, error) {
@@ -2348,6 +2411,9 @@
 func (*UnimplementedBBSimServer) GetOnuTrafficSchedulers(ctx context.Context, req *ONURequest) (*ONUTrafficSchedulers, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetOnuTrafficSchedulers not implemented")
 }
+func (*UnimplementedBBSimServer) GetUnis(ctx context.Context, req *Empty) (*UNIs, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetUnis not implemented")
+}
 
 func RegisterBBSimServer(s *grpc.Server, srv BBSimServer) {
 	s.RegisterService(&_BBSim_serviceDesc, srv)
@@ -2570,7 +2636,7 @@
 }
 
 func _BBSim_GetServices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Empty)
+	in := new(UNIRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
@@ -2582,7 +2648,7 @@
 		FullMethod: "/bbsim.BBSim/GetServices",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(BBSimServer).GetServices(ctx, req.(*Empty))
+		return srv.(BBSimServer).GetServices(ctx, req.(*UNIRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
@@ -2839,6 +2905,24 @@
 	return interceptor(ctx, in, info, handler)
 }
 
+func _BBSim_GetUnis_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BBSimServer).GetUnis(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/bbsim.BBSim/GetUnis",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BBSimServer).GetUnis(ctx, req.(*Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 var _BBSim_serviceDesc = grpc.ServiceDesc{
 	ServiceName: "bbsim.BBSim",
 	HandlerType: (*BBSimServer)(nil),
@@ -2951,6 +3035,10 @@
 			MethodName: "GetOnuTrafficSchedulers",
 			Handler:    _BBSim_GetOnuTrafficSchedulers_Handler,
 		},
+		{
+			MethodName: "GetUnis",
+			Handler:    _BBSim_GetUnis_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "api/bbsim/bbsim.proto",
diff --git a/api/bbsim/bbsim.proto b/api/bbsim/bbsim.proto
index 086057f..64bd659 100644
--- a/api/bbsim/bbsim.proto
+++ b/api/bbsim/bbsim.proto
@@ -145,6 +145,11 @@
     uint32 PonPortId = 1;
 }
 
+message UNIRequest {
+    string OnuSerialNumber = 1;
+    string UniID = 2;
+}
+
 // Alarms
 
 message AlarmType {
@@ -282,8 +287,8 @@
     rpc GetONUs (Empty) returns (ONUs) {
     }
 
-    // Get all the Services
-    rpc GetServices (Empty) returns (Services) {
+    // Get all the Services by Uni ID
+    rpc GetServices (UNIRequest) returns (Services) {
     }
 
     // Get all the UNIs of an ONU by serial number
@@ -331,4 +336,7 @@
     // Get Traffic scheduler information for ONU
     rpc GetOnuTrafficSchedulers (ONURequest) returns (ONUTrafficSchedulers) {
     }
+    //Return all the UNIs for all the ONUs
+    rpc GetUnis (Empty) returns (UNIs) {
+    }
 }
diff --git a/cmd/bbsimctl/bbsimctl.go b/cmd/bbsimctl/bbsimctl.go
index 293c164..9d1ed93 100644
--- a/cmd/bbsimctl/bbsimctl.go
+++ b/cmd/bbsimctl/bbsimctl.go
@@ -38,6 +38,7 @@
 	commands.RegisterConfigCommands(parser)
 	commands.RegisterOltCommands(parser)
 	commands.RegisterONUCommands(parser)
+	commands.RegisterUNICommands(parser)
 	commands.RegisterServiceCommands(parser)
 	commands.RegisterPonCommands(parser)
 	commands.RegisterCompletionCommands(parser)
diff --git a/internal/bbr/devices/validate.go b/internal/bbr/devices/validate.go
index a5f1d85..e0e0f99 100644
--- a/internal/bbr/devices/validate.go
+++ b/internal/bbr/devices/validate.go
@@ -22,6 +22,7 @@
 	"time"
 
 	"github.com/opencord/bbsim/api/bbsim"
+	pb "github.com/opencord/bbsim/api/bbsim"
 	log "github.com/sirupsen/logrus"
 	"google.golang.org/grpc"
 )
@@ -35,7 +36,12 @@
 	ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
 	defer cancel()
 
-	services, err := client.GetServices(ctx, &bbsim.Empty{})
+	req := pb.UNIRequest{
+		OnuSerialNumber: "",
+		UniID:           "",
+	}
+
+	services, err := client.GetServices(ctx, &req)
 
 	if err != nil {
 		log.WithFields(log.Fields{
diff --git a/internal/bbsim/api/onus_handler.go b/internal/bbsim/api/onus_handler.go
index 0a67105..4ea60e7 100644
--- a/internal/bbsim/api/onus_handler.go
+++ b/internal/bbsim/api/onus_handler.go
@@ -583,3 +583,19 @@
 
 	return res, nil
 }
+
+func (s BBSimServer) GetUnis(ctx context.Context, req *bbsim.Empty) (*bbsim.UNIs, error) {
+	onus, err := s.GetONUs(ctx, req)
+
+	if err != nil {
+		return nil, err
+	}
+	unis := []*bbsim.UNI{}
+	for _, onu := range onus.Items {
+		unis = append(unis, onu.Unis...)
+	}
+	unis_ret := bbsim.UNIs{
+		Items: unis,
+	}
+	return &unis_ret, nil
+}
diff --git a/internal/bbsim/api/services_handler.go b/internal/bbsim/api/services_handler.go
index cfb971f..f016919 100644
--- a/internal/bbsim/api/services_handler.go
+++ b/internal/bbsim/api/services_handler.go
@@ -20,6 +20,7 @@
 	"context"
 	"github.com/opencord/bbsim/api/bbsim"
 	"github.com/opencord/bbsim/internal/bbsim/devices"
+	"strconv"
 )
 
 func convertBBSimServiceToProtoService(s *devices.Service) *bbsim.Service {
@@ -50,7 +51,7 @@
 	return services
 }
 
-func (s BBSimServer) GetServices(ctx context.Context, req *bbsim.Empty) (*bbsim.Services, error) {
+func (s BBSimServer) GetServices(ctx context.Context, req *bbsim.UNIRequest) (*bbsim.Services, error) {
 
 	services := bbsim.Services{
 		Items: []*bbsim.Service{},
@@ -63,7 +64,16 @@
 			for _, u := range o.UniPorts {
 				uni := u.(*devices.UniPort)
 				s := convertBBsimServicesToProtoServices(uni.Services)
-				services.Items = append(services.Items, s...)
+				for _, service := range s {
+					intVar, err := strconv.Atoi(req.UniID)
+					if req.UniID == "" && req.OnuSerialNumber == "" {
+						services.Items = append(services.Items, s...)
+					} else if err == nil && service.UniId == uint32(intVar) && service.OnuSn == req.OnuSerialNumber {
+						services.Items = append(services.Items, s...)
+					} else if req.UniID == "" && service.OnuSn == req.OnuSerialNumber {
+						services.Items = append(services.Items, s...)
+					}
+				}
 			}
 		}
 	}
diff --git a/internal/bbsimctl/commands/onu.go b/internal/bbsimctl/commands/onu.go
index bef627e..4ae8841 100644
--- a/internal/bbsimctl/commands/onu.go
+++ b/internal/bbsimctl/commands/onu.go
@@ -35,8 +35,6 @@
 const (
 	DEFAULT_ONU_DEVICE_HEADER_FORMAT               = "table{{ .PonPortID }}\t{{ .ID }}\t{{ .SerialNumber }}\t{{ .OperState }}\t{{ .InternalState }}\t{{ .ImageSoftwareExpectedSections }}\t{{ .ImageSoftwareReceivedSections }}\t{{ .ActiveImageEntityId }}\t{{ .CommittedImageEntityId }}"
 	DEFAULT_ONU_DEVICE_HEADER_FORMAT_WITH_SERVICES = "table{{ .PonPortID }}\t{{ .ID }}\t{{ .SerialNumber }}\t{{ .OperState }}\t{{ .InternalState }}\t{{ .ImageSoftwareExpectedSections }}\t{{ .ImageSoftwareReceivedSections }}\t{{ .ActiveImageEntityId }}\t{{ .CommittedImageEntityId }}\t{{ .Unis }}"
-	DEFAULT_UNI_HEADER_FORMAT                      = "table{{ .OnuSn }}\t{{ .OnuID }}\t{{ .ID }}\t{{ .MeID }}\t{{ .PortNo }}\t{{ .OperState }}"
-	DEFAULT_UNI_HEADER_FORMAT_WITH_SERVICES        = "table{{ .OnuSn }}\t{{ .OnuID }}\t{{ .ID }}\t{{ .MeID }}\t{{ .PortNo }}\t{{ .OperState }}\t{{ .Services }}"
 )
 
 type OnuSnString string
@@ -111,10 +109,15 @@
 	} `positional-args:"yes" required:"yes"`
 }
 
+type ONUServices struct {
+	Args struct {
+		OnuSn OnuSnString
+	} `positional-args:"yes"`
+}
+
 type ONUOptions struct {
 	List              ONUList              `command:"list"`
 	Get               ONUGet               `command:"get"`
-	Unis              ONUUnis              `command:"unis"`
 	ShutDown          ONUShutDown          `command:"shutdown"`
 	PowerOn           ONUPowerOn           `command:"poweron"`
 	RestartEapol      ONUEapolRestart      `command:"auth_restart"`
@@ -123,6 +126,7 @@
 	TrafficSchedulers ONUTrafficSchedulers `command:"traffic_schedulers"`
 	Alarms            AlarmOptions         `command:"alarms"`
 	Flows             ONUFlows             `command:"flows"`
+	Services          ONUServices          `command:"services"`
 }
 
 func RegisterONUCommands(parser *flags.Parser) {
@@ -192,36 +196,6 @@
 	return nil
 }
 
-func (options *ONUUnis) Execute(args []string) error {
-
-	client, conn := connect()
-	defer conn.Close()
-
-	ctx, cancel := context.WithTimeout(context.Background(), config.GlobalConfig.Grpc.Timeout)
-	defer cancel()
-	req := pb.ONURequest{
-		SerialNumber: string(options.Args.OnuSn),
-	}
-	res, err := client.GetOnuUnis(ctx, &req)
-
-	if err != nil {
-		log.Fatalf("Cannot not get unis for ONU %s: %v", options.Args.OnuSn, err)
-		return err
-	}
-
-	var tableFormat format.Format
-	if options.Verbose {
-		tableFormat = format.Format(DEFAULT_UNI_HEADER_FORMAT_WITH_SERVICES)
-	} else {
-		tableFormat = format.Format(DEFAULT_UNI_HEADER_FORMAT)
-	}
-	if err := tableFormat.Execute(os.Stdout, true, res.Items); err != nil {
-		log.Fatalf("Error while formatting Unis table: %s", err)
-	}
-
-	return nil
-}
-
 func (options *ONUShutDown) Execute(args []string) error {
 
 	client, conn := connect()
@@ -539,3 +513,20 @@
 
 	return nil
 }
+
+func (options *ONUServices) Execute(args []string) error {
+	services, err := getServices(string(options.Args.OnuSn), "")
+
+	if err != nil {
+		log.Errorf("Cannot get services for ONU %s: %v", options.Args.OnuSn, err)
+		return err
+	}
+
+	// print out
+	tableFormat := format.Format(DEFAULT_SERVICE_HEADER_FORMAT)
+	if err := tableFormat.Execute(os.Stdout, true, services.Items); err != nil {
+		log.Fatalf("Error while formatting ONUs table: %s", err)
+	}
+
+	return nil
+}
diff --git a/internal/bbsimctl/commands/services.go b/internal/bbsimctl/commands/services.go
index d3b6bdd..1f3216a 100644
--- a/internal/bbsimctl/commands/services.go
+++ b/internal/bbsimctl/commands/services.go
@@ -41,7 +41,7 @@
 	_, _ = parser.AddCommand("service", "Service Commands", "Commands to interact with ONU Services", &ServiceOptions{})
 }
 
-func getServices() *pb.Services {
+func getServices(OnuSn string, UniID string) (*pb.Services, error) {
 
 	client, conn := connect()
 	defer conn.Close()
@@ -50,17 +50,23 @@
 	ctx, cancel := context.WithTimeout(context.Background(), config.GlobalConfig.Grpc.Timeout)
 	defer cancel()
 
-	services, err := client.GetServices(ctx, &pb.Empty{})
+	req := pb.UNIRequest{
+		OnuSerialNumber: OnuSn,
+		UniID:           UniID,
+	}
+
+	services, err := client.GetServices(ctx, &req)
+
+	return services, err
+}
+
+func (options *ServiceList) Execute(args []string) error {
+	services, err := getServices("", "")
+
 	if err != nil {
 		log.Fatalf("could not get OLT: %v", err)
 		return nil
 	}
-	return services
-}
-
-func (options *ServiceList) Execute(args []string) error {
-	services := getServices()
-
 	// print out
 	tableFormat := format.Format(DEFAULT_SERVICE_HEADER_FORMAT)
 	if err := tableFormat.Execute(os.Stdout, true, services.Items); err != nil {
diff --git a/internal/bbsimctl/commands/uni.go b/internal/bbsimctl/commands/uni.go
new file mode 100644
index 0000000..ba1c795
--- /dev/null
+++ b/internal/bbsimctl/commands/uni.go
@@ -0,0 +1,141 @@
+/*
+ * Portions copyright 2019-present Open Networking Foundation
+ * Original copyright 2019-present Ciena Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package commands
+
+import (
+	"context"
+	"os"
+
+	"github.com/jessevdk/go-flags"
+	pb "github.com/opencord/bbsim/api/bbsim"
+	"github.com/opencord/bbsim/internal/bbsimctl/config"
+	"github.com/opencord/cordctl/pkg/format"
+	log "github.com/sirupsen/logrus"
+)
+
+const (
+	DEFAULT_UNI_HEADER_FORMAT               = "table{{ .OnuSn }}\t{{ .OnuID }}\t{{ .ID }}\t{{ .MeID }}\t{{ .PortNo }}\t{{ .OperState }}"
+	DEFAULT_UNI_HEADER_FORMAT_WITH_SERVICES = "table{{ .OnuSn }}\t{{ .OnuID }}\t{{ .ID }}\t{{ .MeID }}\t{{ .PortNo }}\t{{ .OperState }}\t{{ .Services }}"
+)
+
+type UniIdInt string
+
+type UNIList struct {
+	Verbose bool `short:"v" long:"verbose" description:"Print all the Unis from all the ONUs"`
+}
+
+type UNIGet struct {
+	Verbose bool `short:"v" long:"verbose" description:"Print all the informations we have about UNIs"`
+	Args    struct {
+		OnuSn OnuSnString
+	} `positional-args:"yes" required:"yes"`
+}
+
+type UNIServices struct {
+	Verbose bool `short:"v" long:"verbose" description:"Print all the Services from the specified UNI"`
+	Args    struct {
+		OnuSn OnuSnString
+		UniId UniIdInt
+	} `positional-args:"yes"`
+}
+
+type UNIOptions struct {
+	List     UNIList     `command:"list"`
+	Get      UNIGet      `command:"get"`
+	Services UNIServices `command:"services"`
+}
+
+func RegisterUNICommands(parser *flags.Parser) {
+	_, _ = parser.AddCommand("uni", "UNI Commands", "Commands to query and manipulate UNIs", &UNIOptions{})
+}
+
+func (options *UNIList) Execute(args []string) error {
+	client, conn := connect()
+	defer conn.Close()
+
+	// Contact the server and print out its response.
+	ctx, cancel := context.WithTimeout(context.Background(), config.GlobalConfig.Grpc.Timeout)
+	defer cancel()
+
+	unis, err := client.GetUnis(ctx, &pb.Empty{})
+	if err != nil {
+		log.Fatalf("could not get UNIs: %v", err)
+		return err
+	}
+
+	var tableFormat format.Format
+	if options.Verbose {
+		tableFormat = format.Format(DEFAULT_UNI_HEADER_FORMAT_WITH_SERVICES)
+	} else {
+		tableFormat = format.Format(DEFAULT_UNI_HEADER_FORMAT)
+	}
+	if err := tableFormat.Execute(os.Stdout, true, unis.Items); err != nil {
+		log.Fatalf("Error while formatting Unis table: %s", err)
+	}
+
+	return nil
+}
+
+func (options *UNIGet) Execute(args []string) error {
+
+	client, conn := connect()
+	defer conn.Close()
+
+	ctx, cancel := context.WithTimeout(context.Background(), config.GlobalConfig.Grpc.Timeout)
+	defer cancel()
+	req := pb.ONURequest{
+		SerialNumber: string(options.Args.OnuSn),
+	}
+	res, err := client.GetOnuUnis(ctx, &req)
+
+	if err != nil {
+		log.Fatalf("Cannot not get unis for ONU %s: %v", options.Args.OnuSn, err)
+		return err
+	}
+
+	var tableFormat format.Format
+	if options.Verbose {
+		tableFormat = format.Format(DEFAULT_UNI_HEADER_FORMAT_WITH_SERVICES)
+	} else {
+		tableFormat = format.Format(DEFAULT_UNI_HEADER_FORMAT)
+	}
+	if err := tableFormat.Execute(os.Stdout, true, res.Items); err != nil {
+		log.Fatalf("Error while formatting Unis table: %s", err)
+	}
+
+	return nil
+}
+
+//Get Services for specified UNI
+//First get UNIs from specified ONU SN
+//Then get Services from appropriate UNI
+func (options *UNIServices) Execute(args []string) error {
+	services, err := getServices(string(options.Args.OnuSn), string(options.Args.UniId))
+
+	if err != nil {
+		log.Fatalf("Cannot not get services for ONU %s and UNI %s: %v", options.Args.OnuSn, options.Args.UniId, err)
+		return err
+	}
+
+	tableFormat := format.Format(DEFAULT_SERVICE_HEADER_FORMAT)
+	if err := tableFormat.Execute(os.Stdout, true, services.Items); err != nil {
+		log.Fatalf("Error while formatting ONUs table: %s", err)
+	}
+
+	return nil
+}
