diff --git a/VERSION b/VERSION
index a01185b..81c871d 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.10.0-dev
+1.10.0
diff --git a/api/bbsim/bbsim.pb.go b/api/bbsim/bbsim.pb.go
index 6b4bfd6..e33f59c 100644
--- a/api/bbsim/bbsim.pb.go
+++ b/api/bbsim/bbsim.pb.go
@@ -26,6 +26,31 @@
 // proto package needs to be updated.
 const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
 
+type UniType int32
+
+const (
+	UniType_ETH  UniType = 0
+	UniType_POTS UniType = 1
+)
+
+var UniType_name = map[int32]string{
+	0: "ETH",
+	1: "POTS",
+}
+
+var UniType_value = map[string]int32{
+	"ETH":  0,
+	"POTS": 1,
+}
+
+func (x UniType) String() string {
+	return proto.EnumName(UniType_name, int32(x))
+}
+
+func (UniType) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_ef7750073d18011b, []int{0}
+}
+
 type SubActionTypes int32
 
 const (
@@ -51,7 +76,7 @@
 }
 
 func (SubActionTypes) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{0}
+	return fileDescriptor_ef7750073d18011b, []int{1}
 }
 
 type OltAllocatedResourceType_Type int32
@@ -735,6 +760,7 @@
 	OperState            string     `protobuf:"bytes,5,opt,name=OperState,proto3" json:"OperState,omitempty"`
 	PortNo               int32      `protobuf:"varint,6,opt,name=PortNo,proto3" json:"PortNo,omitempty"`
 	Services             []*Service `protobuf:"bytes,7,rep,name=services,proto3" json:"services,omitempty"`
+	Type                 UniType    `protobuf:"varint,8,opt,name=Type,proto3,enum=bbsim.UniType" json:"Type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
 	XXX_unrecognized     []byte     `json:"-"`
 	XXX_sizecache        int32      `json:"-"`
@@ -814,6 +840,13 @@
 	return nil
 }
 
+func (m *UNI) GetType() UniType {
+	if m != nil {
+		return m.Type
+	}
+	return UniType_ETH
+}
+
 type Service struct {
 	Name                 string   `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"`
 	HwAddress            string   `protobuf:"bytes,2,opt,name=HwAddress,proto3" json:"HwAddress,omitempty"`
@@ -1768,6 +1801,7 @@
 var xxx_messageInfo_Empty proto.InternalMessageInfo
 
 func init() {
+	proto.RegisterEnum("bbsim.UniType", UniType_name, UniType_value)
 	proto.RegisterEnum("bbsim.SubActionTypes", SubActionTypes_name, SubActionTypes_value)
 	proto.RegisterEnum("bbsim.OltAllocatedResourceType_Type", OltAllocatedResourceType_Type_name, OltAllocatedResourceType_Type_value)
 	proto.RegisterEnum("bbsim.AlarmType_Types", AlarmType_Types_name, AlarmType_Types_value)
@@ -1804,139 +1838,141 @@
 func init() { proto.RegisterFile("api/bbsim/bbsim.proto", fileDescriptor_ef7750073d18011b) }
 
 var fileDescriptor_ef7750073d18011b = []byte{
-	// 2106 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xdb, 0x6e, 0xdb, 0xc8,
-	0x19, 0xb6, 0x4e, 0x96, 0xf4, 0xcb, 0x92, 0xe8, 0xd9, 0xd8, 0x4b, 0x38, 0xde, 0x8d, 0xc1, 0xcd,
+	// 2141 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xdd, 0x6e, 0xdb, 0xc8,
+	0x15, 0xb6, 0xfe, 0x2c, 0xe9, 0xc8, 0x92, 0xe8, 0xd9, 0xd8, 0x4b, 0x38, 0xde, 0x8d, 0xc1, 0xcd,
 	0x16, 0x4e, 0xd0, 0x75, 0x36, 0x49, 0x77, 0x9b, 0x5c, 0xca, 0x92, 0xac, 0x70, 0x2d, 0x93, 0xc2,
-	0x50, 0x72, 0x90, 0xf6, 0x42, 0xa0, 0xc5, 0xb1, 0x4d, 0x94, 0x22, 0x15, 0x72, 0x64, 0xd7, 0x0f,
-	0x50, 0xf4, 0x11, 0x7a, 0xb9, 0x40, 0x1f, 0xa0, 0xb7, 0x7d, 0x8d, 0x3e, 0x41, 0x7b, 0xd5, 0xf7,
-	0x28, 0x66, 0x38, 0x3c, 0x49, 0x74, 0xe2, 0x5c, 0xf5, 0x46, 0xe0, 0xff, 0xfd, 0xe7, 0xc3, 0x9c,
-	0x04, 0x3b, 0xe6, 0xc2, 0x7e, 0x71, 0x71, 0x11, 0xd8, 0xf3, 0xf0, 0xf7, 0x68, 0xe1, 0x7b, 0xd4,
-	0x43, 0x15, 0x4e, 0xec, 0x3d, 0xbe, 0xf1, 0x1c, 0x7a, 0x6d, 0x4e, 0x39, 0x18, 0xbc, 0xf0, 0x16,
-	0xc4, 0xf5, 0x1c, 0x1a, 0xca, 0xec, 0x1d, 0x64, 0x99, 0x94, 0xcc, 0xae, 0xd9, 0xf7, 0xa5, 0xed,
-	0x90, 0x50, 0x42, 0xf9, 0x4f, 0x11, 0xaa, 0x23, 0x5d, 0x1b, 0x79, 0x3e, 0x45, 0x2d, 0x28, 0xaa,
-	0x3d, 0xb9, 0x70, 0x50, 0x38, 0xac, 0xe0, 0xa2, 0xda, 0x43, 0xfb, 0x50, 0xd7, 0x17, 0xc4, 0x37,
-	0xa8, 0x49, 0x89, 0x5c, 0x3c, 0x28, 0x1c, 0xd6, 0x71, 0x02, 0xa0, 0xa7, 0xd0, 0x54, 0x5d, 0x4a,
-	0x7c, 0xd7, 0x74, 0x42, 0x89, 0x12, 0x97, 0xc8, 0x82, 0xe8, 0x00, 0x1a, 0x23, 0x73, 0xf6, 0x27,
-	0x42, 0xbb, 0xde, 0xd2, 0xa5, 0x72, 0xf9, 0xa0, 0x70, 0x58, 0xc6, 0x69, 0x08, 0x9d, 0x40, 0xbb,
-	0xe3, 0x38, 0xde, 0xcc, 0xa4, 0xc4, 0xd2, 0xdd, 0xa5, 0x6a, 0x05, 0x72, 0xe5, 0xa0, 0x74, 0xd8,
-	0x78, 0xb5, 0x7f, 0x14, 0xa6, 0x3b, 0xf2, 0xdc, 0x58, 0x00, 0x93, 0xc0, 0x5b, 0xfa, 0x33, 0x12,
-	0xe0, 0x55, 0x25, 0xf4, 0x0b, 0x6c, 0xc7, 0xd0, 0x80, 0xcc, 0x59, 0x46, 0x81, 0xbc, 0xf9, 0x00,
-	0x4b, 0xeb, 0x6a, 0x19, 0x5b, 0xfc, 0x83, 0x45, 0x55, 0xfd, 0x22, 0x5b, 0x91, 0x9a, 0x72, 0x0a,
-	0x3b, 0xb9, 0xb2, 0x48, 0x81, 0x2d, 0x83, 0xf8, 0xb6, 0xe9, 0x68, 0xcb, 0xf9, 0x05, 0xf1, 0x79,
-	0xe1, 0xeb, 0x38, 0x83, 0xf1, 0x96, 0x58, 0xbc, 0xf6, 0xac, 0x25, 0x96, 0xf2, 0x7b, 0xa8, 0x6a,
-	0x9a, 0xfa, 0xe5, 0xdd, 0x52, 0xfe, 0x5b, 0x80, 0x92, 0xee, 0xac, 0x6b, 0xad, 0x06, 0x51, 0xcc,
-	0x09, 0x22, 0x63, 0xb9, 0xf4, 0xd9, 0x39, 0x28, 0xe7, 0xcd, 0x01, 0xf3, 0x3b, 0x92, 0xab, 0x9c,
-	0x55, 0x54, 0x47, 0xe8, 0x39, 0xd4, 0x44, 0x22, 0x51, 0xbb, 0x5b, 0xa2, 0xb0, 0x02, 0xc6, 0x31,
-	0x9f, 0xc9, 0x8a, 0x11, 0x8d, 0x1a, 0x1a, 0xc9, 0x0a, 0x18, 0xc7, 0x7c, 0xe5, 0x2f, 0x05, 0x90,
-	0x75, 0x87, 0xae, 0x95, 0x7b, 0x7c, 0xb7, 0x20, 0xe8, 0x0d, 0x94, 0xe9, 0xdd, 0x82, 0xf0, 0xf4,
-	0x5b, 0xaf, 0x9e, 0x0a, 0x23, 0xf7, 0x89, 0x1f, 0xb1, 0x1f, 0xcc, 0x35, 0x94, 0x17, 0x50, 0xe6,
-	0x16, 0x1a, 0x50, 0x9d, 0x68, 0xa7, 0x9a, 0xfe, 0x5e, 0x93, 0x36, 0xd0, 0x16, 0xd4, 0x3a, 0xc3,
-	0xa1, 0xde, 0x9d, 0xaa, 0x3d, 0xa9, 0xc0, 0xa8, 0x41, 0xff, 0x6c, 0x3a, 0xd2, 0xf1, 0x58, 0x2a,
-	0x2a, 0xff, 0x28, 0xc0, 0xa3, 0x3c, 0xc3, 0x08, 0x85, 0x96, 0x44, 0xb7, 0x43, 0xab, 0xfb, 0x50,
-	0x1f, 0x79, 0x2e, 0x4b, 0x40, 0x34, 0xbb, 0x89, 0x13, 0x00, 0x3d, 0x82, 0x0a, 0x1f, 0x71, 0x5e,
-	0xfa, 0x26, 0x0e, 0x09, 0xb4, 0x0b, 0x9b, 0x8c, 0xaf, 0x79, 0xbc, 0xde, 0x4d, 0x2c, 0x28, 0xf4,
-	0x2d, 0x40, 0xe4, 0x4b, 0xb5, 0xe4, 0x0a, 0x6f, 0x74, 0x0a, 0x61, 0x7a, 0x27, 0x8e, 0x77, 0xab,
-	0x5a, 0xf2, 0x26, 0x5f, 0x8b, 0x82, 0x52, 0x30, 0xec, 0xe4, 0xc5, 0x1b, 0xa0, 0xb7, 0x50, 0xf7,
-	0x23, 0x42, 0x2e, 0xf0, 0xf2, 0x3f, 0xfe, 0x44, 0xe5, 0x70, 0x22, 0xad, 0xfc, 0x5a, 0x86, 0x92,
-	0xae, 0x4d, 0xfe, 0x6f, 0x43, 0x97, 0xaa, 0x6b, 0x4f, 0x94, 0x22, 0x01, 0xd0, 0x01, 0xd4, 0xdf,
-	0xdd, 0x76, 0x2c, 0xcb, 0x27, 0x41, 0x20, 0xd7, 0x98, 0xfe, 0x71, 0x51, 0x2e, 0xe0, 0x04, 0x44,
-	0x7b, 0x71, 0x8d, 0xeb, 0x4c, 0x99, 0xb3, 0xa3, 0x3a, 0x1f, 0x41, 0x2d, 0x20, 0xfe, 0x8d, 0xcd,
-	0xaa, 0x02, 0x99, 0xa1, 0x34, 0x42, 0x98, 0x4b, 0xc7, 0x32, 0xa8, 0x07, 0xdf, 0xa8, 0x73, 0xf3,
-	0x8a, 0x18, 0xde, 0x25, 0xbd, 0x35, 0x7d, 0xd2, 0xff, 0xf3, 0x82, 0xcc, 0x28, 0xb1, 0x0c, 0x32,
-	0xa3, 0xb6, 0xe7, 0x06, 0x72, 0x83, 0xc7, 0xf7, 0x69, 0xa1, 0x35, 0x2b, 0x98, 0xcc, 0x88, 0x7d,
-	0x93, 0xb2, 0xb2, 0x95, 0x63, 0x65, 0x55, 0x08, 0xfd, 0x08, 0x5f, 0x75, 0x66, 0xd4, 0xbe, 0x21,
-	0x5c, 0xac, 0xef, 0x52, 0x9b, 0xde, 0xa9, 0x96, 0xdc, 0xe4, 0xba, 0x79, 0x2c, 0xf4, 0x33, 0xec,
-	0x76, 0xbd, 0xf9, 0xdc, 0xa6, 0x94, 0x58, 0x59, 0xa5, 0x16, 0x57, 0xba, 0x87, 0x8b, 0xbe, 0x85,
-	0xf2, 0xd2, 0xb5, 0x03, 0xb9, 0xcd, 0x2b, 0x04, 0xa2, 0x42, 0x13, 0x4d, 0xc5, 0x1c, 0x57, 0xfe,
-	0x59, 0x80, 0xd2, 0x44, 0x53, 0xd7, 0x26, 0x44, 0xcc, 0x7c, 0x4f, 0x6c, 0x7d, 0x21, 0x21, 0x50,
-	0xc3, 0x15, 0xf3, 0x10, 0x12, 0x6c, 0x45, 0x9d, 0x11, 0xb5, 0x27, 0xd6, 0x01, 0xff, 0xce, 0x4e,
-	0x4f, 0x65, 0x75, 0x7a, 0x92, 0xb5, 0xb3, 0xc9, 0xcd, 0x47, 0x3d, 0x7d, 0x9e, 0xea, 0x69, 0x35,
-	0xaf, 0xa7, 0x49, 0x3f, 0x95, 0xbf, 0x96, 0xa0, 0x2a, 0x50, 0x16, 0x81, 0x66, 0xce, 0xe3, 0x35,
-	0xcd, 0xbe, 0x59, 0x04, 0xc9, 0x74, 0x89, 0xed, 0x38, 0x99, 0xac, 0x7b, 0x33, 0x31, 0xc6, 0xe6,
-	0x15, 0xcf, 0xa4, 0x82, 0xf9, 0x37, 0xc3, 0xba, 0x0c, 0x0b, 0xc7, 0x97, 0x7f, 0xb3, 0x35, 0xae,
-	0x11, 0x62, 0x05, 0x7d, 0x73, 0xe1, 0x39, 0x3c, 0x87, 0x1a, 0x4e, 0x21, 0xcc, 0x37, 0xa7, 0x7a,
-	0xd7, 0xb3, 0x05, 0xdf, 0x73, 0x6b, 0x38, 0x01, 0x62, 0xae, 0x7a, 0x35, 0x5f, 0xf0, 0xb9, 0x8f,
-	0xb8, 0x0c, 0x40, 0x32, 0x54, 0xc5, 0x31, 0x18, 0x0e, 0x3d, 0x8e, 0x48, 0xe6, 0x95, 0x9b, 0x0f,
-	0x8b, 0x0a, 0x3c, 0xf0, 0x14, 0xc2, 0xec, 0x32, 0xfb, 0x21, 0xbb, 0x11, 0x66, 0x1c, 0x03, 0xeb,
-	0x2b, 0x76, 0xeb, 0x9e, 0x15, 0xab, 0x0e, 0xce, 0x46, 0xa1, 0x44, 0x33, 0xb4, 0x11, 0x03, 0xac,
-	0x6a, 0x13, 0xd7, 0x16, 0x43, 0xd7, 0xc4, 0x21, 0xa1, 0x98, 0xf0, 0x48, 0xd7, 0x26, 0x63, 0xdf,
-	0xbc, 0xbc, 0xb4, 0x67, 0xc6, 0xec, 0x9a, 0x58, 0x4b, 0x87, 0xf8, 0x01, 0x52, 0xa1, 0x4d, 0x19,
-	0x98, 0x40, 0xbc, 0x41, 0x8d, 0x57, 0x4f, 0x8e, 0x32, 0x17, 0xa1, 0x35, 0x4d, 0xbc, 0xaa, 0xa7,
-	0x1c, 0x42, 0x59, 0xd7, 0x26, 0x01, 0x3a, 0x80, 0x8a, 0x4d, 0xc9, 0x3c, 0xda, 0x07, 0xa3, 0x79,
-	0xd6, 0xb5, 0x09, 0x0e, 0x19, 0xca, 0x8f, 0x50, 0x33, 0xa2, 0x25, 0xff, 0x34, 0x2b, 0xbd, 0x3a,
-	0x4b, 0x42, 0xe3, 0x10, 0xca, 0x13, 0x4d, 0xbd, 0xd7, 0x36, 0x5b, 0x2b, 0xb1, 0x6d, 0x60, 0x9e,
-	0xc8, 0xc7, 0x25, 0x09, 0xe8, 0x43, 0xae, 0x0f, 0xca, 0x73, 0x80, 0x91, 0xae, 0x45, 0x1a, 0x99,
-	0x63, 0xa6, 0xb0, 0x72, 0xcc, 0x28, 0x43, 0x00, 0xe6, 0x4b, 0xc8, 0x1e, 0x42, 0x9b, 0xcd, 0xe4,
-	0xba, 0x83, 0x55, 0x38, 0x6a, 0x4a, 0x4f, 0x0c, 0x79, 0x48, 0x28, 0xff, 0x2e, 0x41, 0xbd, 0xe3,
-	0x98, 0xfe, 0x9c, 0x1d, 0x70, 0xca, 0xbf, 0x4a, 0x50, 0x61, 0x1f, 0x01, 0xaa, 0x42, 0x69, 0xa8,
-	0x1b, 0xd2, 0x06, 0x6a, 0x01, 0xf4, 0x3e, 0xa8, 0xda, 0x60, 0x3a, 0xe8, 0x18, 0x23, 0xa9, 0x80,
-	0x9a, 0x50, 0xd7, 0xb5, 0xc9, 0xb4, 0x33, 0xec, 0xe0, 0x33, 0xa9, 0x88, 0xbe, 0x86, 0xaf, 0x18,
-	0x69, 0x8c, 0x3b, 0x78, 0x3c, 0x19, 0x4d, 0x4f, 0x3a, 0xea, 0x70, 0x82, 0xfb, 0x52, 0x09, 0xed,
-	0x02, 0xe2, 0x0c, 0x75, 0xa0, 0x75, 0x86, 0xd3, 0x5e, 0x7f, 0x80, 0x3b, 0xbd, 0xbe, 0x54, 0x8e,
-	0x14, 0x7a, 0x58, 0x3d, 0x19, 0x4f, 0xf5, 0x93, 0xe9, 0x7b, 0x55, 0xeb, 0xe9, 0xef, 0xa5, 0x0a,
-	0xda, 0x07, 0x99, 0x31, 0x86, 0xba, 0x61, 0x30, 0x5c, 0x3f, 0xeb, 0xaa, 0xd3, 0xee, 0xbb, 0x8e,
-	0xa6, 0xf5, 0x87, 0xd2, 0x66, 0xec, 0x87, 0x9b, 0x33, 0x62, 0x3f, 0x55, 0xf4, 0x0c, 0xbe, 0x67,
-	0x8c, 0x31, 0xee, 0x68, 0xc6, 0x99, 0x6a, 0x18, 0xaa, 0xae, 0x4d, 0x55, 0x6d, 0xdc, 0xc7, 0x27,
-	0x7d, 0xdc, 0xd7, 0xba, 0xfd, 0xe9, 0xfb, 0x0e, 0xd6, 0x54, 0x6d, 0x20, 0xd5, 0xd0, 0x1e, 0xec,
-	0xf2, 0xd0, 0xbb, 0x63, 0xf5, 0xbc, 0x33, 0x66, 0x82, 0x91, 0x99, 0x3a, 0x92, 0xf9, 0x70, 0x4e,
-	0x47, 0x58, 0xef, 0xf6, 0x0d, 0x83, 0xe5, 0xdb, 0xc7, 0x58, 0xc7, 0x12, 0xa0, 0x03, 0xd8, 0x4f,
-	0xc7, 0x75, 0xda, 0xff, 0x30, 0x35, 0x3e, 0x68, 0xdd, 0x58, 0xb7, 0x81, 0x76, 0x60, 0x9b, 0x49,
-	0xa8, 0xe3, 0xc9, 0x74, 0xa4, 0x6b, 0xac, 0x16, 0x63, 0x43, 0xda, 0x42, 0xdb, 0xd0, 0x8c, 0x2b,
-	0xc5, 0xd4, 0xa5, 0xe6, 0x2a, 0x74, 0x2c, 0xb5, 0xa2, 0xc4, 0x22, 0x68, 0xd4, 0x9d, 0xb2, 0x2c,
-	0xa4, 0x76, 0x54, 0x8f, 0x0c, 0xa3, 0x2b, 0xa2, 0x92, 0x10, 0x82, 0x56, 0x9a, 0x7b, 0xa2, 0x4a,
-	0xdb, 0xe8, 0x2b, 0x68, 0xa7, 0xb1, 0xce, 0x99, 0x2a, 0x21, 0xe5, 0x0d, 0xb4, 0x78, 0x7f, 0x47,
-	0xa6, 0x6f, 0xce, 0x09, 0x25, 0x3e, 0x92, 0xa0, 0x74, 0x4a, 0xee, 0xc4, 0x98, 0xb0, 0x4f, 0x36,
-	0x1a, 0xe7, 0xa6, 0xb3, 0x8c, 0xae, 0xa3, 0x21, 0xa1, 0xfc, 0xbd, 0xc0, 0xed, 0x71, 0xed, 0xd4,
-	0x68, 0xc6, 0xd3, 0x22, 0x2c, 0x24, 0xc0, 0x83, 0xee, 0x0b, 0xbb, 0xb0, 0xc9, 0x36, 0x89, 0x65,
-	0x20, 0xb6, 0x54, 0x41, 0xa1, 0x9f, 0x00, 0xe2, 0x10, 0x03, 0xb9, 0xcc, 0xd7, 0xd6, 0x8e, 0x58,
-	0x5b, 0xd9, 0x04, 0x70, 0x4a, 0x50, 0xf9, 0x08, 0x6d, 0x7d, 0x38, 0xce, 0xc4, 0x78, 0x00, 0x0d,
-	0xbe, 0x59, 0x5d, 0x9a, 0x33, 0x22, 0x0e, 0xab, 0x26, 0x4e, 0x43, 0xf1, 0x1e, 0xc7, 0x48, 0x9e,
-	0x49, 0x31, 0xb5, 0xc7, 0x45, 0xe0, 0x7d, 0x91, 0xb2, 0xab, 0x6b, 0xf3, 0x9c, 0xf8, 0x81, 0xed,
-	0xb9, 0x22, 0x27, 0x19, 0xaa, 0x37, 0x21, 0x20, 0x6a, 0x12, 0x91, 0xac, 0x5e, 0x17, 0x4b, 0xdb,
-	0xb1, 0xc6, 0xf6, 0x3c, 0xbe, 0xec, 0xc7, 0x00, 0xdb, 0xa9, 0x67, 0xfc, 0x3c, 0x7e, 0x67, 0x06,
-	0xd7, 0xc2, 0x4b, 0x0a, 0x61, 0xda, 0x57, 0x36, 0x15, 0x41, 0x84, 0x37, 0xa7, 0x04, 0x50, 0xde,
-	0x40, 0x6d, 0xe8, 0x5d, 0x0d, 0xc9, 0x0d, 0x71, 0x58, 0x07, 0x1d, 0xf6, 0x21, 0xfc, 0x87, 0x04,
-	0xcb, 0x60, 0x66, 0x3a, 0x8e, 0xe8, 0x44, 0x0d, 0x0b, 0x4a, 0xe9, 0x43, 0x0d, 0x93, 0x60, 0xe1,
-	0xb9, 0x01, 0x41, 0x4f, 0xa0, 0x11, 0x70, 0x7b, 0xd3, 0x99, 0x67, 0x11, 0x71, 0xb4, 0x43, 0x08,
-	0x75, 0x3d, 0x8b, 0xb0, 0xe4, 0xe6, 0x24, 0x08, 0xcc, 0xab, 0x28, 0x81, 0x88, 0x54, 0xfe, 0x56,
-	0x80, 0x06, 0x3b, 0x8b, 0xa2, 0xc2, 0x3f, 0x83, 0x4d, 0xdd, 0x5d, 0x62, 0xf2, 0x51, 0xec, 0xdf,
-	0xdb, 0xa9, 0x6d, 0x37, 0x14, 0xc1, 0x42, 0x00, 0xbd, 0x85, 0x2d, 0x63, 0x79, 0xd1, 0xe1, 0xf7,
-	0x9c, 0x73, 0xd3, 0xe1, 0x96, 0x5b, 0x71, 0xbf, 0x63, 0x16, 0xdf, 0x8b, 0x70, 0x46, 0x94, 0x0d,
-	0xd9, 0xc0, 0xf7, 0x96, 0x8b, 0xe8, 0xcc, 0x0e, 0xcb, 0x96, 0xc1, 0x94, 0x53, 0xa8, 0xb0, 0xeb,
-	0x72, 0x80, 0xbe, 0x01, 0xb8, 0x74, 0xbc, 0xdb, 0xe9, 0x8c, 0xbf, 0x6a, 0xc5, 0x5e, 0xca, 0x90,
-	0xf0, 0x4d, 0xfb, 0x1d, 0x54, 0x18, 0xc1, 0x0e, 0x7e, 0x36, 0x6f, 0xcd, 0xa3, 0xe8, 0x59, 0xce,
-	0xb4, 0x71, 0xc8, 0x53, 0x9e, 0x40, 0x95, 0x75, 0xcb, 0x5b, 0x52, 0x56, 0x66, 0x8b, 0x38, 0xe6,
-	0x9d, 0xb0, 0x14, 0x12, 0x4a, 0x15, 0x2a, 0xfd, 0xf9, 0x82, 0xde, 0x3d, 0x7f, 0x09, 0xad, 0x6c,
-	0xe8, 0xa8, 0x06, 0xe5, 0x5f, 0x74, 0x95, 0x3d, 0x42, 0xea, 0x50, 0x19, 0xf6, 0x3b, 0xe7, 0x7d,
-	0xa9, 0x80, 0x00, 0x36, 0x19, 0x78, 0xfe, 0x5a, 0x2a, 0xbe, 0xfa, 0x75, 0x0b, 0x2a, 0xc7, 0xc7,
-	0x86, 0x3d, 0x47, 0x2f, 0xa0, 0x2a, 0xa6, 0x0a, 0x6d, 0x89, 0x3a, 0x70, 0xab, 0x7b, 0x8f, 0x04,
-	0x95, 0x99, 0x39, 0x65, 0x03, 0xbd, 0x84, 0x86, 0x41, 0x68, 0x3c, 0x02, 0x6d, 0x21, 0x16, 0x01,
-	0x7b, 0xab, 0x80, 0xb2, 0x81, 0x9e, 0xc2, 0xe6, 0x80, 0x50, 0xf6, 0xbe, 0xcc, 0xba, 0x80, 0xe4,
-	0xa1, 0xa0, 0x6c, 0xa0, 0x3f, 0x82, 0x1c, 0x4a, 0xe5, 0xbc, 0x32, 0x9e, 0x7c, 0xe6, 0x31, 0xb6,
-	0xb7, 0xff, 0x09, 0x81, 0x40, 0xd9, 0x40, 0x3f, 0x00, 0x8c, 0xbc, 0x5b, 0xe2, 0x7b, 0xee, 0x7a,
-	0x18, 0x51, 0xc4, 0xd1, 0x70, 0x2a, 0x1b, 0xe8, 0x08, 0x1a, 0xc6, 0xf5, 0x92, 0x5a, 0xde, 0xed,
-	0xc3, 0xe4, 0x7f, 0x0b, 0x75, 0x4c, 0x2e, 0x3c, 0x8f, 0x3e, 0x48, 0x9a, 0x35, 0x8c, 0x7a, 0x8b,
-	0x2b, 0x3c, 0xea, 0xb2, 0xd3, 0x9e, 0xf8, 0x9f, 0x57, 0x79, 0x05, 0x6d, 0x83, 0x9a, 0x3e, 0xfd,
-	0x12, 0x9d, 0x9f, 0x61, 0x1b, 0x93, 0x60, 0x45, 0x2b, 0xba, 0x66, 0x88, 0xd9, 0xca, 0xd3, 0x7b,
-	0x16, 0xb6, 0x4b, 0x9b, 0xa0, 0xf5, 0xa5, 0xb4, 0x97, 0xba, 0xd4, 0x28, 0x1b, 0xe8, 0x37, 0xec,
-	0x3a, 0x48, 0xf9, 0xe5, 0x27, 0x1b, 0x4e, 0x23, 0x11, 0x63, 0xe5, 0x7f, 0x0d, 0x8d, 0x01, 0xa1,
-	0xf1, 0xd5, 0x67, 0x3b, 0x75, 0x7b, 0x11, 0x76, 0xdb, 0xd9, 0xeb, 0x4f, 0xc0, 0x9b, 0x00, 0xcc,
-	0xb8, 0xbb, 0x9c, 0xb8, 0x76, 0x90, 0x17, 0x4b, 0x23, 0x31, 0x23, 0x9c, 0xc4, 0x4d, 0xcb, 0x0f,
-	0xfe, 0x9e, 0xc2, 0x0a, 0xa5, 0x8e, 0xe3, 0xe4, 0x64, 0x92, 0xa3, 0xf3, 0x16, 0xb6, 0x53, 0x8e,
-	0x02, 0xdd, 0x1d, 0xe9, 0x5a, 0xec, 0x2e, 0xb9, 0x51, 0xe5, 0xbb, 0x8b, 0xe7, 0xf0, 0xc1, 0x21,
-	0xbe, 0x84, 0x96, 0xd0, 0x79, 0x70, 0x84, 0x6f, 0x40, 0x4a, 0xdc, 0x7c, 0x51, 0x80, 0xbf, 0x83,
-	0x2d, 0x31, 0x34, 0xe1, 0x63, 0xe1, 0x13, 0xad, 0x4a, 0x69, 0xbd, 0x86, 0x86, 0xd0, 0xe2, 0x6f,
-	0x88, 0x87, 0x29, 0x1d, 0xc3, 0x8e, 0xc1, 0xfb, 0xcb, 0xcf, 0x51, 0xd5, 0xb5, 0xec, 0x99, 0xc9,
-	0xf6, 0x30, 0xb4, 0x9b, 0x94, 0x25, 0x7d, 0xc4, 0x7e, 0xc2, 0x06, 0x5b, 0xf5, 0xf7, 0xd8, 0xc8,
-	0x1e, 0xd3, 0x79, 0x36, 0x7e, 0x80, 0xda, 0x80, 0xd0, 0x70, 0xe7, 0xce, 0xe9, 0x48, 0x54, 0x6c,
-	0x2e, 0xc0, 0x6b, 0xdb, 0xee, 0x5e, 0x9b, 0xee, 0x15, 0x61, 0x87, 0x50, 0xf8, 0xf2, 0x40, 0x42,
-	0x24, 0x75, 0x2c, 0xe5, 0x39, 0x3a, 0x85, 0xaf, 0xc3, 0x81, 0x5e, 0x7f, 0x8d, 0xe4, 0xf8, 0x7d,
-	0x9c, 0x40, 0x6b, 0xf2, 0xf1, 0xd2, 0xe3, 0x4b, 0x23, 0x7f, 0xe9, 0x89, 0x55, 0xf1, 0x13, 0xbb,
-	0x75, 0xdc, 0x98, 0x8e, 0x6d, 0x99, 0x94, 0x9c, 0x59, 0xc1, 0xc3, 0x86, 0xee, 0xf8, 0xfb, 0x3f,
-	0x7c, 0x77, 0x65, 0xd3, 0xeb, 0xe5, 0xc5, 0xd1, 0xcc, 0x9b, 0xf3, 0xff, 0x8d, 0x67, 0x9e, 0x6f,
-	0x89, 0x3f, 0x9a, 0xe3, 0xbf, 0x9c, 0x2f, 0x36, 0xf9, 0xff, 0xc4, 0xaf, 0xff, 0x17, 0x00, 0x00,
-	0xff, 0xff, 0xa6, 0x6b, 0x61, 0xb9, 0x86, 0x16, 0x00, 0x00,
+	0x50, 0x72, 0x90, 0xf6, 0x42, 0xa0, 0xc5, 0xb1, 0x4d, 0x94, 0x22, 0x15, 0x92, 0xb2, 0xeb, 0x07,
+	0x28, 0xfa, 0x08, 0xbd, 0x5c, 0xa0, 0x0f, 0xd0, 0x67, 0xe9, 0x7d, 0x81, 0xf6, 0xaa, 0xef, 0x51,
+	0x9c, 0xe1, 0x90, 0x22, 0x25, 0x39, 0x71, 0xae, 0x7a, 0x23, 0xf0, 0x7c, 0x73, 0xfe, 0xcf, 0x99,
+	0x33, 0x33, 0x82, 0x1d, 0x73, 0x66, 0xbf, 0xb8, 0xb8, 0x08, 0xec, 0x69, 0xf4, 0x7b, 0x34, 0xf3,
+	0xbd, 0xd0, 0x23, 0x25, 0x4e, 0xec, 0x3d, 0xbe, 0xf1, 0x9c, 0xf0, 0xda, 0x1c, 0x73, 0x30, 0x78,
+	0xe1, 0xcd, 0x98, 0xeb, 0x39, 0x61, 0xc4, 0xb3, 0x77, 0x90, 0x5d, 0x0c, 0xd9, 0xe4, 0x1a, 0xbf,
+	0x2f, 0x6d, 0x87, 0x45, 0x1c, 0xca, 0x7f, 0xf2, 0x50, 0x1e, 0xe8, 0xda, 0xc0, 0xf3, 0x43, 0xd2,
+	0x80, 0xbc, 0xda, 0x91, 0x73, 0x07, 0xb9, 0xc3, 0x12, 0xcd, 0xab, 0x1d, 0xb2, 0x0f, 0x55, 0x7d,
+	0xc6, 0x7c, 0x23, 0x34, 0x43, 0x26, 0xe7, 0x0f, 0x72, 0x87, 0x55, 0xba, 0x00, 0xc8, 0x53, 0xa8,
+	0xab, 0x6e, 0xc8, 0x7c, 0xd7, 0x74, 0x22, 0x8e, 0x02, 0xe7, 0xc8, 0x82, 0xe4, 0x00, 0x6a, 0x03,
+	0x73, 0xf2, 0x27, 0x16, 0xb6, 0xbd, 0xb9, 0x1b, 0xca, 0xc5, 0x83, 0xdc, 0x61, 0x91, 0xa6, 0x21,
+	0x72, 0x02, 0xcd, 0x96, 0xe3, 0x78, 0x13, 0x33, 0x64, 0x96, 0xee, 0xce, 0x55, 0x2b, 0x90, 0x4b,
+	0x07, 0x85, 0xc3, 0xda, 0xab, 0xfd, 0xa3, 0x28, 0xdc, 0x81, 0xe7, 0x26, 0x0c, 0x94, 0x05, 0xde,
+	0xdc, 0x9f, 0xb0, 0x80, 0x2e, 0x0b, 0x91, 0x5f, 0x60, 0x3b, 0x81, 0x7a, 0x6c, 0x8a, 0x11, 0x05,
+	0xf2, 0xe6, 0x03, 0x34, 0xad, 0x8a, 0x65, 0x74, 0xf1, 0x0f, 0xf4, 0xaa, 0xfc, 0x45, 0xba, 0x62,
+	0x31, 0xe5, 0x14, 0x76, 0xd6, 0xf2, 0x12, 0x05, 0xb6, 0x0c, 0xe6, 0xdb, 0xa6, 0xa3, 0xcd, 0xa7,
+	0x17, 0xcc, 0xe7, 0x89, 0xaf, 0xd2, 0x0c, 0xc6, 0x4b, 0x62, 0xf1, 0xdc, 0x63, 0x49, 0x2c, 0xe5,
+	0xf7, 0x50, 0xd6, 0x34, 0xf5, 0xcb, 0xab, 0xa5, 0xfc, 0x37, 0x07, 0x05, 0xdd, 0x59, 0x95, 0x5a,
+	0x76, 0x22, 0xbf, 0xc6, 0x89, 0x8c, 0xe6, 0xc2, 0x67, 0xfb, 0xa0, 0xb8, 0xae, 0x0f, 0xd0, 0xee,
+	0x40, 0x2e, 0xf3, 0xa5, 0xbc, 0x3a, 0x20, 0xcf, 0xa1, 0x22, 0x02, 0x89, 0xcb, 0xdd, 0x10, 0x89,
+	0x15, 0x30, 0x4d, 0xd6, 0x91, 0x57, 0xb4, 0x68, 0x5c, 0xd0, 0x98, 0x57, 0xc0, 0x34, 0x59, 0x57,
+	0xfe, 0x92, 0x03, 0x59, 0x77, 0xc2, 0x95, 0x74, 0x0f, 0xef, 0x66, 0x8c, 0xbc, 0x81, 0x62, 0x78,
+	0x37, 0x63, 0x3c, 0xfc, 0xc6, 0xab, 0xa7, 0x42, 0xc9, 0x7d, 0xec, 0x47, 0xf8, 0x43, 0xb9, 0x84,
+	0xf2, 0x02, 0x8a, 0x5c, 0x43, 0x0d, 0xca, 0x23, 0xed, 0x54, 0xd3, 0xdf, 0x6b, 0xd2, 0x06, 0xd9,
+	0x82, 0x4a, 0xab, 0xdf, 0xd7, 0xdb, 0x63, 0xb5, 0x23, 0xe5, 0x90, 0xea, 0x75, 0xcf, 0xc6, 0x03,
+	0x9d, 0x0e, 0xa5, 0xbc, 0xf2, 0x8f, 0x1c, 0x3c, 0x5a, 0xa7, 0x98, 0x90, 0x48, 0x93, 0xa8, 0x76,
+	0xa4, 0x75, 0x1f, 0xaa, 0x03, 0xcf, 0xc5, 0x00, 0x44, 0xb1, 0xeb, 0x74, 0x01, 0x90, 0x47, 0x50,
+	0xe2, 0x2d, 0xce, 0x53, 0x5f, 0xa7, 0x11, 0x41, 0x76, 0x61, 0x13, 0xd7, 0x35, 0x8f, 0xe7, 0xbb,
+	0x4e, 0x05, 0x45, 0xbe, 0x05, 0x88, 0x6d, 0xa9, 0x96, 0x5c, 0xe2, 0x85, 0x4e, 0x21, 0x28, 0x77,
+	0xe2, 0x78, 0xb7, 0xaa, 0x25, 0x6f, 0xf2, 0xbd, 0x28, 0x28, 0x85, 0xc2, 0xce, 0x3a, 0x7f, 0x03,
+	0xf2, 0x16, 0xaa, 0x7e, 0x4c, 0xc8, 0x39, 0x9e, 0xfe, 0xc7, 0x9f, 0xc8, 0x1c, 0x5d, 0x70, 0x2b,
+	0xbf, 0x16, 0xa1, 0xa0, 0x6b, 0xa3, 0xff, 0x5b, 0xd3, 0xa5, 0xf2, 0xda, 0x11, 0xa9, 0x58, 0x00,
+	0xe4, 0x00, 0xaa, 0xef, 0x6e, 0x5b, 0x96, 0xe5, 0xb3, 0x20, 0x90, 0x2b, 0x28, 0x7f, 0x9c, 0x97,
+	0x73, 0x74, 0x01, 0x92, 0xbd, 0x24, 0xc7, 0x55, 0x14, 0xe6, 0xcb, 0x71, 0x9e, 0x8f, 0xa0, 0x12,
+	0x30, 0xff, 0xc6, 0xc6, 0xac, 0x40, 0xa6, 0x29, 0x8d, 0x08, 0xe6, 0xdc, 0x09, 0x0f, 0xe9, 0xc0,
+	0x37, 0xea, 0xd4, 0xbc, 0x62, 0x86, 0x77, 0x19, 0xde, 0x9a, 0x3e, 0xeb, 0xfe, 0x79, 0xc6, 0x26,
+	0x21, 0xb3, 0x0c, 0x36, 0x09, 0x6d, 0xcf, 0x0d, 0xe4, 0x1a, 0xf7, 0xef, 0xd3, 0x4c, 0x2b, 0x5a,
+	0x28, 0x9b, 0x30, 0xfb, 0x26, 0xa5, 0x65, 0x6b, 0x8d, 0x96, 0x65, 0x26, 0xf2, 0x23, 0x7c, 0xd5,
+	0x9a, 0x84, 0xf6, 0x0d, 0xe3, 0x6c, 0x5d, 0x37, 0xb4, 0xc3, 0x3b, 0xd5, 0x92, 0xeb, 0x5c, 0x76,
+	0xdd, 0x12, 0xf9, 0x19, 0x76, 0xdb, 0xde, 0x74, 0x6a, 0x87, 0x21, 0xb3, 0xb2, 0x42, 0x0d, 0x2e,
+	0x74, 0xcf, 0x2a, 0xf9, 0x16, 0x8a, 0x73, 0xd7, 0x0e, 0xe4, 0x26, 0xcf, 0x10, 0x88, 0x0c, 0x8d,
+	0x34, 0x95, 0x72, 0x5c, 0xf9, 0x57, 0x0e, 0x0a, 0x23, 0x4d, 0x5d, 0xe9, 0x10, 0xd1, 0xf3, 0x1d,
+	0x31, 0xfa, 0x22, 0x42, 0xa0, 0x86, 0x2b, 0xfa, 0x21, 0x22, 0x70, 0x47, 0x9d, 0x31, 0xb5, 0x23,
+	0xf6, 0x01, 0xff, 0xce, 0x76, 0x4f, 0x69, 0xb9, 0x7b, 0x16, 0x7b, 0x67, 0x93, 0xab, 0x8f, 0x6b,
+	0xfa, 0x3c, 0x55, 0xd3, 0xf2, 0xba, 0x9a, 0xa6, 0xea, 0xa9, 0x88, 0x7d, 0x5c, 0xe1, 0xb3, 0x24,
+	0xe6, 0x1b, 0xb9, 0x76, 0x34, 0x35, 0xf0, 0x57, 0xf9, 0x6b, 0x01, 0xca, 0x42, 0x12, 0xbd, 0xd4,
+	0xcc, 0x69, 0xb2, 0xef, 0xf1, 0x1b, 0xbd, 0x5c, 0x74, 0xa0, 0x18, 0xd9, 0x8b, 0xee, 0xbb, 0x37,
+	0x5a, 0x63, 0x68, 0x5e, 0xf1, 0x68, 0x4b, 0x94, 0x7f, 0x23, 0xd6, 0x46, 0x2c, 0x6a, 0x71, 0xfe,
+	0x8d, 0x73, 0x40, 0x63, 0xcc, 0x0a, 0xba, 0xe6, 0xcc, 0x73, 0x78, 0x9c, 0x15, 0x9a, 0x42, 0xd0,
+	0x36, 0xa7, 0x3a, 0xd7, 0x93, 0x19, 0x9f, 0xcb, 0x15, 0xba, 0x00, 0x92, 0x55, 0xf5, 0x6a, 0x3a,
+	0xe3, 0x21, 0xc6, 0xab, 0x08, 0x10, 0x19, 0xca, 0xe2, 0xa8, 0x8c, 0x36, 0x06, 0x8d, 0x49, 0xb4,
+	0xca, 0xd5, 0x47, 0x89, 0x07, 0xee, 0x78, 0x0a, 0x41, 0xbd, 0xa8, 0x3f, 0x5a, 0xae, 0x45, 0x11,
+	0x27, 0xc0, 0xea, 0xae, 0xde, 0xba, 0x67, 0x57, 0xab, 0xbd, 0xb3, 0x41, 0xc4, 0x51, 0x8f, 0x74,
+	0x24, 0x00, 0x66, 0x6d, 0xe4, 0xda, 0xa2, 0x31, 0xeb, 0x34, 0x22, 0x14, 0x13, 0x1e, 0xe9, 0xda,
+	0x68, 0xe8, 0x9b, 0x97, 0x97, 0xf6, 0xc4, 0x98, 0x5c, 0x33, 0x6b, 0xee, 0x30, 0x3f, 0x20, 0x2a,
+	0x34, 0x43, 0x04, 0x17, 0x10, 0x2f, 0x50, 0xed, 0xd5, 0x93, 0xa3, 0xcc, 0x65, 0x69, 0x45, 0x92,
+	0x2e, 0xcb, 0x29, 0x87, 0x50, 0xd4, 0xb5, 0x51, 0x40, 0x0e, 0xa0, 0x64, 0x87, 0x6c, 0x1a, 0xcf,
+	0xca, 0xb8, 0xe7, 0x75, 0x6d, 0x44, 0xa3, 0x05, 0xe5, 0x47, 0xa8, 0x18, 0x71, 0x1b, 0x3d, 0xcd,
+	0x72, 0x2f, 0xf7, 0x9b, 0x90, 0x38, 0x84, 0xe2, 0x48, 0x53, 0xef, 0xd5, 0x8d, 0xfb, 0x29, 0xd1,
+	0x0d, 0x68, 0x89, 0x7d, 0x9c, 0xb3, 0x20, 0x7c, 0xc8, 0x15, 0x43, 0x79, 0x0e, 0x30, 0xd0, 0xb5,
+	0x58, 0x22, 0x73, 0x14, 0xe5, 0x96, 0x8e, 0x22, 0xa5, 0x0f, 0x80, 0xb6, 0x04, 0xef, 0x21, 0x34,
+	0xb1, 0x27, 0x57, 0x0d, 0x2c, 0xc3, 0x71, 0x51, 0x3a, 0xa2, 0xc9, 0x23, 0x42, 0xf9, 0x77, 0x01,
+	0xaa, 0x2d, 0xc7, 0xf4, 0xa7, 0x7c, 0xb3, 0xfc, 0xb3, 0x00, 0x25, 0xfc, 0x08, 0x48, 0x19, 0x0a,
+	0x7d, 0xdd, 0x90, 0x36, 0x48, 0x03, 0xa0, 0xf3, 0x41, 0xd5, 0x7a, 0xe3, 0x5e, 0xcb, 0x18, 0x48,
+	0x39, 0x52, 0x87, 0xaa, 0xae, 0x8d, 0xc6, 0xad, 0x7e, 0x8b, 0x9e, 0x49, 0x79, 0xf2, 0x35, 0x7c,
+	0x85, 0xa4, 0x31, 0x6c, 0xd1, 0xe1, 0x68, 0x30, 0x3e, 0x69, 0xa9, 0xfd, 0x11, 0xed, 0x4a, 0x05,
+	0xb2, 0x0b, 0x84, 0x2f, 0xa8, 0x3d, 0xad, 0xd5, 0x1f, 0x77, 0xba, 0x3d, 0xda, 0xea, 0x74, 0xa5,
+	0x62, 0x2c, 0xd0, 0xa1, 0xea, 0xc9, 0x70, 0xac, 0x9f, 0x8c, 0xdf, 0xab, 0x5a, 0x47, 0x7f, 0x2f,
+	0x95, 0xc8, 0x3e, 0xc8, 0xb8, 0xd0, 0xd7, 0x0d, 0x03, 0x71, 0xfd, 0xac, 0xad, 0x8e, 0xdb, 0xef,
+	0x5a, 0x9a, 0xd6, 0xed, 0x4b, 0x9b, 0x89, 0x1d, 0xae, 0xce, 0x48, 0xec, 0x94, 0xc9, 0x33, 0xf8,
+	0x1e, 0x17, 0x86, 0xb4, 0xa5, 0x19, 0x67, 0xaa, 0x61, 0xa8, 0xba, 0x36, 0x56, 0xb5, 0x61, 0x97,
+	0x9e, 0x74, 0x69, 0x57, 0x6b, 0x77, 0xc7, 0xef, 0x5b, 0x54, 0x53, 0xb5, 0x9e, 0x54, 0x21, 0x7b,
+	0xb0, 0xcb, 0x5d, 0x6f, 0x0f, 0xd5, 0xf3, 0xd6, 0x10, 0x19, 0x63, 0x35, 0x55, 0x22, 0xf3, 0xe6,
+	0x1c, 0x0f, 0xa8, 0xde, 0xee, 0x1a, 0x06, 0xc6, 0xdb, 0xa5, 0x54, 0xa7, 0x12, 0x90, 0x03, 0xd8,
+	0x4f, 0xfb, 0x75, 0xda, 0xfd, 0x30, 0x36, 0x3e, 0x68, 0xed, 0x44, 0xb6, 0x46, 0x76, 0x60, 0x1b,
+	0x39, 0xd4, 0xe1, 0x68, 0x3c, 0xd0, 0x35, 0xcc, 0xc5, 0xd0, 0x90, 0xb6, 0xc8, 0x36, 0xd4, 0x93,
+	0x4c, 0xa1, 0xb8, 0x54, 0x5f, 0x86, 0x8e, 0xa5, 0x46, 0x1c, 0x58, 0x0c, 0x0d, 0xda, 0x63, 0x8c,
+	0x42, 0x6a, 0xc6, 0xf9, 0xc8, 0x2c, 0xb4, 0x85, 0x57, 0x12, 0x21, 0xd0, 0x48, 0xaf, 0x9e, 0xa8,
+	0xd2, 0x36, 0xf9, 0x0a, 0x9a, 0x69, 0xac, 0x75, 0xa6, 0x4a, 0x44, 0x79, 0x03, 0x0d, 0x5e, 0xdf,
+	0x81, 0xe9, 0x9b, 0x53, 0x16, 0x32, 0x9f, 0x48, 0x50, 0x38, 0x65, 0x77, 0xa2, 0x4d, 0xf0, 0x13,
+	0x5b, 0xe3, 0xdc, 0x74, 0xe6, 0xf1, 0x95, 0x35, 0x22, 0x94, 0xbf, 0xe7, 0xb8, 0x3e, 0x2e, 0x9d,
+	0x6a, 0xcd, 0xa4, 0x5b, 0x84, 0x86, 0x05, 0xf0, 0xa0, 0x3b, 0xc5, 0x2e, 0x6c, 0xe2, 0x90, 0x98,
+	0x07, 0x62, 0xa4, 0x0a, 0x8a, 0xfc, 0x04, 0x90, 0xb8, 0x18, 0xc8, 0x45, 0xbe, 0xb7, 0x76, 0xc4,
+	0xde, 0xca, 0x06, 0x40, 0x53, 0x8c, 0xca, 0x47, 0x68, 0xea, 0xfd, 0x61, 0xc6, 0xc7, 0x03, 0xa8,
+	0xf1, 0x61, 0x75, 0x69, 0x4e, 0x98, 0x38, 0xd0, 0xea, 0x34, 0x0d, 0x25, 0x33, 0x0e, 0x49, 0x1e,
+	0x49, 0x3e, 0x35, 0xe3, 0x62, 0xf0, 0x3e, 0x4f, 0xf1, 0x7a, 0x5b, 0x3f, 0x67, 0x7e, 0x60, 0x7b,
+	0xae, 0x88, 0x49, 0x86, 0xf2, 0x4d, 0x04, 0x88, 0x9c, 0xc4, 0x24, 0xe6, 0xeb, 0x62, 0x6e, 0x3b,
+	0xd6, 0xd0, 0x9e, 0x26, 0x0f, 0x82, 0x04, 0xc0, 0x49, 0x3d, 0xe1, 0x67, 0xf6, 0x3b, 0x33, 0xb8,
+	0x16, 0x56, 0x52, 0x08, 0x4a, 0x5f, 0xd9, 0xa1, 0x70, 0x22, 0xba, 0x5d, 0x2d, 0x00, 0xe5, 0x0d,
+	0x54, 0xfa, 0xde, 0x55, 0x9f, 0xdd, 0x30, 0x07, 0x2b, 0xe8, 0xe0, 0x87, 0xb0, 0x1f, 0x11, 0x18,
+	0xc1, 0xc4, 0x74, 0x1c, 0x51, 0x89, 0x0a, 0x15, 0x94, 0xd2, 0x85, 0x0a, 0x65, 0xc1, 0xcc, 0x73,
+	0x03, 0x46, 0x9e, 0x40, 0x2d, 0xe0, 0xfa, 0xc6, 0x13, 0xcf, 0x62, 0xe2, 0xf8, 0x87, 0x08, 0x6a,
+	0x7b, 0x16, 0xc3, 0xe0, 0xa6, 0x2c, 0x08, 0xcc, 0xab, 0x38, 0x80, 0x98, 0x54, 0xfe, 0x96, 0x83,
+	0x1a, 0x9e, 0x45, 0x71, 0xe2, 0x9f, 0xc1, 0xa6, 0xee, 0xce, 0x29, 0xfb, 0x28, 0xe6, 0xf7, 0x76,
+	0x6a, 0xec, 0x46, 0x2c, 0x54, 0x30, 0x90, 0xb7, 0xb0, 0x65, 0xcc, 0x2f, 0x5a, 0xfc, 0x2e, 0x74,
+	0x6e, 0x3a, 0x5c, 0x73, 0x23, 0xa9, 0x77, 0xb2, 0xc4, 0x67, 0x11, 0xcd, 0xb0, 0x62, 0x93, 0xf5,
+	0x7c, 0x6f, 0x3e, 0x8b, 0xcf, 0xec, 0x28, 0x6d, 0x19, 0x4c, 0x39, 0x85, 0x12, 0x5e, 0xa9, 0x03,
+	0xf2, 0x0d, 0xc0, 0xa5, 0xe3, 0xdd, 0x8e, 0x27, 0xfc, 0xe5, 0x2b, 0x66, 0x29, 0x22, 0xd1, 0xbb,
+	0xf7, 0x3b, 0x28, 0x21, 0x81, 0x07, 0x3f, 0xf6, 0x5b, 0xfd, 0x28, 0x7e, 0xba, 0xa3, 0x34, 0x8d,
+	0xd6, 0x94, 0x27, 0x50, 0xc6, 0x6a, 0x79, 0xf3, 0x10, 0xd3, 0x6c, 0x31, 0xc7, 0xbc, 0x13, 0x9a,
+	0x22, 0x42, 0x29, 0x43, 0xa9, 0x3b, 0x9d, 0x85, 0x77, 0xcf, 0xf7, 0xa1, 0x2c, 0x2e, 0x1f, 0x38,
+	0x3f, 0xbb, 0xc3, 0x77, 0xd2, 0x06, 0xa9, 0x40, 0x71, 0xa0, 0x0f, 0x0d, 0x29, 0xf7, 0xfc, 0x25,
+	0x34, 0xb2, 0x81, 0xe1, 0xda, 0x2f, 0xba, 0x8a, 0xcf, 0x98, 0x2a, 0x94, 0xfa, 0xdd, 0xd6, 0x79,
+	0x57, 0xca, 0x11, 0x80, 0x4d, 0x04, 0xcf, 0x5f, 0x4b, 0xf9, 0x57, 0xbf, 0x6e, 0x41, 0xe9, 0xf8,
+	0xd8, 0xb0, 0xa7, 0xe4, 0x05, 0x94, 0x45, 0xcf, 0x91, 0x2d, 0x91, 0x25, 0x6e, 0x73, 0xef, 0x91,
+	0xa0, 0x32, 0x1d, 0xa9, 0x6c, 0x90, 0x97, 0x50, 0x33, 0x58, 0x98, 0x34, 0x48, 0x53, 0xb0, 0xc5,
+	0xc0, 0xde, 0x32, 0xa0, 0x6c, 0x90, 0xa7, 0xb0, 0xd9, 0x63, 0x21, 0xbe, 0x50, 0xb3, 0x26, 0x60,
+	0xf1, 0xd4, 0x50, 0x36, 0xc8, 0x1f, 0x41, 0x8e, 0xb8, 0xd6, 0xbc, 0x53, 0x9e, 0x7c, 0xe6, 0x39,
+	0xb7, 0xb7, 0xff, 0x09, 0x86, 0x40, 0xd9, 0x20, 0x3f, 0x00, 0x0c, 0xbc, 0x5b, 0xe6, 0x7b, 0xee,
+	0xaa, 0x1b, 0xb1, 0xc7, 0x71, 0xeb, 0x2a, 0x1b, 0xe4, 0x08, 0x6a, 0xc6, 0xf5, 0x3c, 0xb4, 0xbc,
+	0xdb, 0x87, 0xf1, 0xff, 0x16, 0xaa, 0x94, 0x5d, 0x78, 0x5e, 0xf8, 0x20, 0x6e, 0x2c, 0x58, 0xe8,
+	0xcd, 0xae, 0xe8, 0xa0, 0x8d, 0x77, 0x01, 0xe6, 0x7f, 0x5e, 0xe4, 0x15, 0x34, 0x8d, 0xd0, 0xf4,
+	0xc3, 0x2f, 0x91, 0xf9, 0x19, 0xb6, 0x29, 0x0b, 0x96, 0xa4, 0xe2, 0x4b, 0x88, 0xe8, 0xbc, 0x75,
+	0x72, 0xcf, 0xa2, 0x72, 0x69, 0x23, 0xb2, 0xba, 0xd1, 0xf6, 0x52, 0x57, 0x1e, 0x65, 0x83, 0xfc,
+	0x06, 0x2f, 0x8b, 0x21, 0xbf, 0x1a, 0x65, 0xdd, 0xa9, 0x2d, 0xd8, 0x30, 0xfd, 0xaf, 0xa1, 0xd6,
+	0x63, 0x61, 0x72, 0x31, 0xda, 0x4e, 0xdd, 0x6d, 0x84, 0xde, 0x66, 0xf6, 0x72, 0x14, 0xf0, 0x22,
+	0x00, 0x2a, 0x77, 0xe7, 0x23, 0xd7, 0x0e, 0xd6, 0xf9, 0x52, 0x5b, 0xa8, 0x11, 0x46, 0x92, 0xa2,
+	0xad, 0x77, 0xfe, 0x9e, 0xc4, 0x0a, 0xa1, 0x96, 0xe3, 0xac, 0x89, 0x64, 0x8d, 0xcc, 0x5b, 0xd8,
+	0x4e, 0x19, 0x0a, 0x74, 0x77, 0xa0, 0x6b, 0x89, 0xb9, 0xc5, 0x7d, 0x6b, 0xbd, 0xb9, 0xa4, 0x0f,
+	0x1f, 0xec, 0xe2, 0x4b, 0x68, 0x08, 0x99, 0x07, 0x7b, 0xf8, 0x06, 0xa4, 0x85, 0x99, 0x2f, 0x72,
+	0xf0, 0x77, 0xb0, 0x25, 0x9a, 0x26, 0x7a, 0x4a, 0x7c, 0xa2, 0x54, 0x29, 0xa9, 0xd7, 0x50, 0x13,
+	0x52, 0xfc, 0x85, 0xf1, 0x30, 0xa1, 0x63, 0xd8, 0x31, 0x78, 0x7d, 0xf9, 0x29, 0xab, 0xba, 0x96,
+	0x3d, 0x31, 0x71, 0x86, 0x91, 0xdd, 0x45, 0x5a, 0xd2, 0x07, 0xf0, 0x27, 0x74, 0xe0, 0xae, 0xbf,
+	0x47, 0x47, 0xf6, 0x10, 0x5f, 0xa7, 0xe3, 0x07, 0xa8, 0xf4, 0x58, 0x18, 0xcd, 0xf5, 0x35, 0x15,
+	0x89, 0x93, 0xcd, 0x19, 0x78, 0x6e, 0x9b, 0xed, 0x6b, 0xd3, 0xbd, 0x62, 0x78, 0x44, 0x45, 0xef,
+	0x12, 0x22, 0x58, 0x52, 0x87, 0xd6, 0x3a, 0x43, 0xa7, 0xf0, 0x75, 0xd4, 0xd0, 0xab, 0x6f, 0x95,
+	0x35, 0x76, 0x1f, 0x2f, 0xa0, 0x15, 0xfe, 0x64, 0xeb, 0xf1, 0xad, 0xb1, 0x7e, 0xeb, 0x89, 0x5d,
+	0xf1, 0x13, 0xde, 0x49, 0x6e, 0x4c, 0xc7, 0xb6, 0xcc, 0x90, 0x9d, 0x59, 0xc1, 0xc3, 0x9a, 0xee,
+	0xf8, 0xfb, 0x3f, 0x7c, 0x77, 0x65, 0x87, 0xd7, 0xf3, 0x8b, 0xa3, 0x89, 0x37, 0xe5, 0xff, 0x3c,
+	0x4f, 0x3c, 0xdf, 0x12, 0x7f, 0x55, 0x27, 0x7f, 0x5a, 0x5f, 0x6c, 0xf2, 0x7f, 0x9a, 0x5f, 0xff,
+	0x2f, 0x00, 0x00, 0xff, 0xff, 0x55, 0x04, 0x3c, 0x13, 0xc8, 0x16, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
diff --git a/api/bbsim/bbsim.proto b/api/bbsim/bbsim.proto
index d5eeab7..d8943e7 100644
--- a/api/bbsim/bbsim.proto
+++ b/api/bbsim/bbsim.proto
@@ -92,6 +92,11 @@
     repeated UNI unis = 15;
 }
 
+enum UniType{
+    ETH = 0;
+    POTS = 1;
+}
+
 message UNI {
     int32 ID = 1;
     int32 OnuID = 2;
@@ -100,6 +105,7 @@
     string OperState = 5;
     int32 PortNo = 6;
     repeated Service services = 7;
+    UniType Type = 8;
 }
 
 message Service {
diff --git a/docs/source/bbsim_config.rst b/docs/source/bbsim_config.rst
index 9e614af..e07ab20 100644
--- a/docs/source/bbsim_config.rst
+++ b/docs/source/bbsim_config.rst
@@ -55,6 +55,8 @@
            IP address:port (default ":50060")
      -pon int
            Number of PON ports per OLT device to be emulated (default 1)
+     -pots int
+           Number of POTS UNI Ports per ONU device to be emulated (default 0)
      -rest_api_address string
            IP address:port (default ":50071")
      -services string
diff --git a/internal/bbsim/api/onus_handler.go b/internal/bbsim/api/onus_handler.go
index 92ab912..2638bf5 100644
--- a/internal/bbsim/api/onus_handler.go
+++ b/internal/bbsim/api/onus_handler.go
@@ -48,7 +48,7 @@
 				ImageSoftwareExpectedSections: int32(o.ImageSoftwareExpectedSections),
 				ActiveImageEntityId:           int32(o.ActiveImageEntityId),
 				CommittedImageEntityId:        int32(o.CommittedImageEntityId),
-				Unis:                          convertBBsimUniPortsToProtoUniPorts(o.UniPorts),
+				Unis:                          append(convertBBsimUniPortsToProtoUniPorts(o.UniPorts), convertBBsimPotsPortsToProtoUniPorts(o.PotsPorts)...),
 			}
 			onus.Items = append(onus.Items, &onu)
 		}
@@ -71,7 +71,7 @@
 		OperState:     onu.OperState.Current(),
 		InternalState: onu.InternalState.Current(),
 		PonPortID:     int32(onu.PonPortID),
-		Unis:          convertBBsimUniPortsToProtoUniPorts(onu.UniPorts),
+		Unis:          append(convertBBsimUniPortsToProtoUniPorts(onu.UniPorts), convertBBsimPotsPortsToProtoUniPorts(onu.PotsPorts)...),
 	}
 	return &res, nil
 }
diff --git a/internal/bbsim/api/uni_handler.go b/internal/bbsim/api/uni_handler.go
index 50b9911..89115aa 100644
--- a/internal/bbsim/api/uni_handler.go
+++ b/internal/bbsim/api/uni_handler.go
@@ -18,6 +18,7 @@
 
 import (
 	"context"
+
 	"github.com/opencord/bbsim/api/bbsim"
 	"github.com/opencord/bbsim/internal/bbsim/devices"
 )
@@ -31,6 +32,19 @@
 		PortNo:    int32(u.PortNo),
 		OperState: u.OperState.Current(),
 		Services:  convertBBsimServicesToProtoServices(u.Services),
+		Type:      bbsim.UniType_ETH,
+	}
+}
+
+func convertBBSimPotsPortToProtoUniPort(u *devices.PotsPort) *bbsim.UNI {
+	return &bbsim.UNI{
+		ID:        int32(u.ID),
+		OnuID:     int32(u.Onu.ID),
+		OnuSn:     u.Onu.Sn(),
+		MeID:      uint32(u.MeId.ToUint16()),
+		PortNo:    int32(u.PortNo),
+		OperState: u.OperState.Current(),
+		Type:      bbsim.UniType_POTS,
 	}
 }
 
@@ -43,6 +57,15 @@
 	return unis
 }
 
+func convertBBsimPotsPortsToProtoUniPorts(list []devices.PotsPortIf) []*bbsim.UNI {
+	unis := []*bbsim.UNI{}
+	for _, u := range list {
+		uni := u.(*devices.PotsPort)
+		unis = append(unis, convertBBSimPotsPortToProtoUniPort(uni))
+	}
+	return unis
+}
+
 func (s BBSimServer) GetOnuUnis(ctx context.Context, req *bbsim.ONURequest) (*bbsim.UNIs, error) {
 	onu, err := s.GetONU(ctx, req)
 
diff --git a/internal/bbsim/devices/olt.go b/internal/bbsim/devices/olt.go
index cf658eb..8520bf2 100644
--- a/internal/bbsim/devices/olt.go
+++ b/internal/bbsim/devices/olt.go
@@ -20,12 +20,13 @@
 	"context"
 	"encoding/hex"
 	"fmt"
-	"github.com/opencord/voltha-protos/v5/go/extension"
 	"net"
 	"strconv"
 	"sync"
 	"time"
 
+	"github.com/opencord/voltha-protos/v5/go/extension"
+
 	"github.com/opencord/bbsim/internal/bbsim/responders/dhcp"
 	"github.com/opencord/bbsim/internal/bbsim/types"
 	omcilib "github.com/opencord/bbsim/internal/common/omci"
@@ -79,6 +80,7 @@
 	NumPon               int
 	NumOnuPerPon         int
 	NumUni               int
+	NumPots              int
 	InternalState        *fsm.FSM
 	channel              chan types.Message
 	dhcpServer           dhcp.DHCPServerIf
@@ -124,6 +126,7 @@
 		"NumPon":       options.Olt.PonPorts,
 		"NumOnuPerPon": options.Olt.OnusPonPort,
 		"NumUni":       options.Olt.UniPorts,
+		"NumPots":      options.Olt.PotsPorts,
 	}).Debug("CreateOLT")
 
 	olt = OltDevice{
@@ -136,6 +139,7 @@
 		NumPon:              int(options.Olt.PonPorts),
 		NumOnuPerPon:        int(options.Olt.OnusPonPort),
 		NumUni:              int(options.Olt.UniPorts),
+		NumPots:             int(options.Olt.PotsPorts),
 		Pons:                []*PonPort{},
 		Nnis:                []*NniPort{},
 		Delay:               options.BBSim.Delay,
diff --git a/internal/bbsim/devices/onu.go b/internal/bbsim/devices/onu.go
index 97c1adc..cfc7099 100644
--- a/internal/bbsim/devices/onu.go
+++ b/internal/bbsim/devices/onu.go
@@ -108,9 +108,10 @@
 
 	Backoff *backoff.Backoff
 	// ONU State
-	UniPorts []UniPortIf
-	Flows    []FlowKey
-	FlowIds  []uint64 // keep track of the flows we currently have in the ONU
+	UniPorts  []UniPortIf
+	PotsPorts []PotsPortIf
+	Flows     []FlowKey
+	FlowIds   []uint64 // keep track of the flows we currently have in the ONU
 
 	OperState    *fsm.FSM
 	SerialNumber *openolt.SerialNumber
@@ -290,6 +291,11 @@
 					_ = uni.Disable()
 				}
 
+				// disable the POTS UNI ports
+				for _, pots := range o.PotsPorts {
+					_ = pots.Disable()
+				}
+
 				// verify all the flows removes are handled and
 				// terminate the ONU's ProcessOnuMessages Go routine
 				// NOTE may need to wait for the UNIs to be down too before shutting down the channel
@@ -316,11 +322,14 @@
 		},
 	)
 	onuLogger.WithFields(log.Fields{
-		"OnuId":  o.ID,
-		"IntfId": o.PonPortID,
-		"OnuSn":  o.Sn(),
-		"NumUni": olt.NumUni,
+		"OnuId":   o.ID,
+		"IntfId":  o.PonPortID,
+		"OnuSn":   o.Sn(),
+		"NumUni":  olt.NumUni,
+		"NumPots": olt.NumPots,
 	}).Debug("creating-uni-ports")
+
+	// create Ethernet UNIs
 	for i := 0; i < olt.NumUni; i++ {
 		uni, err := NewUniPort(uint32(i), &o, nextCtag, nextStag)
 		if err != nil {
@@ -333,8 +342,21 @@
 		}
 		o.UniPorts = append(o.UniPorts, uni)
 	}
+	// create POTS UNIs, with progressive IDs
+	for i := olt.NumUni; i < (olt.NumUni + olt.NumPots); i++ {
+		pots, err := NewPotsPort(uint32(i), &o)
+		if err != nil {
+			onuLogger.WithFields(log.Fields{
+				"OnuId":  o.ID,
+				"IntfId": o.PonPortID,
+				"OnuSn":  o.Sn(),
+				"Err":    err,
+			}).Fatal("cannot-create-pots-port")
+		}
+		o.PotsPorts = append(o.PotsPorts, pots)
+	}
 
-	mibDb, err := omcilib.GenerateMibDatabase(len(o.UniPorts))
+	mibDb, err := omcilib.GenerateMibDatabase(len(o.UniPorts), len(o.PotsPorts))
 	if err != nil {
 		onuLogger.WithFields(log.Fields{
 			"OnuId":  o.ID,
@@ -827,6 +849,33 @@
 					}).Warn("cannot-change-uni-status")
 				}
 			}
+		case me.PhysicalPathTerminationPointPotsUniClassID:
+			// if we're Setting a PPTP state
+			// we need to send the appropriate alarm (handled in the POTS struct)
+			pots, err := o.FindPotsByEntityId(msgObj.EntityInstance)
+			if err != nil {
+				onuLogger.Error(err)
+				success = false
+			} else {
+				// 1 locks the UNI, 0 unlocks it
+				adminState := msgObj.Attributes["AdministrativeState"].(uint8)
+				var err error
+				if adminState == 1 {
+					err = pots.Disable()
+				} else {
+					err = pots.Enable()
+				}
+				if err != nil {
+					onuLogger.WithFields(log.Fields{
+						"IntfId":       o.PonPortID,
+						"OnuId":        o.ID,
+						"PotsMeId":     pots.MeId,
+						"PotsId":       pots.ID,
+						"SerialNumber": o.Sn(),
+						"Err":          err.Error(),
+					}).Warn("cannot-change-pots-status")
+				}
+			}
 		case me.OnuGClassID:
 			o.AdminLockState = msgObj.Attributes["AdministrativeState"].(uint8)
 			onuLogger.WithFields(log.Fields{
@@ -1239,6 +1288,17 @@
 	return nil, fmt.Errorf("cannot-find-uni-with-id-%d-on-onu-%s", uniID, o.Sn())
 }
 
+// FindPotsById retrieves a POTS port by ID
+func (o *Onu) FindPotsById(uniID uint32) (*PotsPort, error) {
+	for _, p := range o.PotsPorts {
+		pots := p.(*PotsPort)
+		if pots.ID == uniID {
+			return pots, nil
+		}
+	}
+	return nil, fmt.Errorf("cannot-find-pots-with-id-%d-on-onu-%s", uniID, o.Sn())
+}
+
 // FindUniByEntityId retrieves a uni by MeID (the OMCI entity ID)
 func (o *Onu) FindUniByEntityId(meId uint16) (*UniPort, error) {
 	entityId := omcilib.EntityID{}.FromUint16(meId)
@@ -1251,6 +1311,18 @@
 	return nil, fmt.Errorf("cannot-find-uni-with-meid-%s-on-onu-%s", entityId.ToString(), o.Sn())
 }
 
+// FindPotsByEntityId retrieves a POTS uni by MeID (the OMCI entity ID)
+func (o *Onu) FindPotsByEntityId(meId uint16) (*PotsPort, error) {
+	entityId := omcilib.EntityID{}.FromUint16(meId)
+	for _, p := range o.PotsPorts {
+		pots := p.(*PotsPort)
+		if pots.MeId.Equals(entityId) {
+			return pots, nil
+		}
+	}
+	return nil, fmt.Errorf("cannot-find-pots-with-meid-%s-on-onu-%s", entityId.ToString(), o.Sn())
+}
+
 func (o *Onu) SetID(id uint32) {
 	onuLogger.WithFields(log.Fields{
 		"IntfId":       o.PonPortID,
diff --git a/internal/bbsim/devices/onu_test.go b/internal/bbsim/devices/onu_test.go
index bb5f0c1..35f0c28 100644
--- a/internal/bbsim/devices/onu_test.go
+++ b/internal/bbsim/devices/onu_test.go
@@ -17,8 +17,9 @@
 package devices
 
 import (
-	"github.com/stretchr/testify/assert"
 	"testing"
+
+	"github.com/stretchr/testify/assert"
 )
 
 func Test_Onu_CreateOnu(t *testing.T) {
@@ -26,8 +27,9 @@
 	nextStag := map[string]int{}
 
 	olt := OltDevice{
-		ID:     0,
-		NumUni: 4,
+		ID:      0,
+		NumUni:  4,
+		NumPots: 1,
 	}
 	pon := PonPort{
 		ID:  1,
@@ -38,4 +40,5 @@
 
 	assert.Equal(t, "BBSM00000101", onu.Sn())
 	assert.Equal(t, 4, len(onu.UniPorts))
+	assert.Equal(t, 1, len(onu.PotsPorts))
 }
diff --git a/internal/bbsim/devices/pots_port.go b/internal/bbsim/devices/pots_port.go
new file mode 100644
index 0000000..820f723
--- /dev/null
+++ b/internal/bbsim/devices/pots_port.go
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+
+ * 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 devices
+
+import (
+	"fmt"
+
+	"github.com/looplab/fsm"
+	bbsimTypes "github.com/opencord/bbsim/internal/bbsim/types"
+	omcilib "github.com/opencord/bbsim/internal/common/omci"
+	log "github.com/sirupsen/logrus"
+)
+
+var potsLogger = log.WithFields(log.Fields{
+	"module": "POTS",
+})
+
+const (
+	PotsStateUp   = "up"
+	PotsStateDown = "down"
+
+	potsTxEnable  = "enable"
+	potsTxDisable = "disable"
+)
+
+type PotsPortIf interface {
+	Enable() error
+	Disable() error
+}
+
+type PotsPort struct {
+	ID        uint32
+	MeId      omcilib.EntityID
+	PortNo    uint32
+	OperState *fsm.FSM
+	Onu       *Onu
+	logger    *log.Entry
+}
+
+func NewPotsPort(ID uint32, onu *Onu) (*PotsPort, error) {
+	pots := PotsPort{
+		ID:   ID,
+		Onu:  onu,
+		MeId: omcilib.GenerateUniPortEntityId(ID + 1),
+	}
+
+	pots.logger = potsLogger.WithFields(log.Fields{
+		"PotsUniId": pots.ID,
+		"OnuSn":     onu.Sn(),
+	})
+
+	pots.OperState = fsm.NewFSM(
+		PotsStateDown,
+		fsm.Events{
+			{Name: potsTxEnable, Src: []string{PotsStateDown}, Dst: PotsStateUp},
+			{Name: potsTxDisable, Src: []string{PotsStateUp}, Dst: PotsStateDown},
+		},
+		fsm.Callbacks{
+			"enter_state": func(e *fsm.Event) {
+				pots.logger.Debugf("changing-pots-operstate-from-%s-to-%s", e.Src, e.Dst)
+			},
+			fmt.Sprintf("enter_%s", PotsStateUp): func(e *fsm.Event) {
+				msg := bbsimTypes.Message{
+					Type: bbsimTypes.UniStatusAlarm,
+					Data: bbsimTypes.UniStatusAlarmMessage{
+						OnuSN:          pots.Onu.SerialNumber,
+						OnuID:          pots.Onu.ID,
+						AdminState:     0,
+						EntityID:       pots.MeId.ToUint16(),
+						RaiseOMCIAlarm: false, // never raise an LOS when enabling a UNI
+					},
+				}
+				pots.Onu.Channel <- msg
+			},
+			fmt.Sprintf("enter_%s", PotsStateDown): func(e *fsm.Event) {
+				msg := bbsimTypes.Message{
+					Type: bbsimTypes.UniStatusAlarm,
+					Data: bbsimTypes.UniStatusAlarmMessage{
+						OnuSN:          pots.Onu.SerialNumber,
+						OnuID:          pots.Onu.ID,
+						AdminState:     1,
+						EntityID:       pots.MeId.ToUint16(),
+						RaiseOMCIAlarm: true, // raise an LOS when disabling a UNI
+					},
+				}
+				pots.Onu.Channel <- msg
+			},
+		},
+	)
+
+	return &pots, nil
+}
+
+func (u *PotsPort) StorePortNo(portNo uint32) {
+	u.PortNo = portNo
+	u.logger.WithFields(log.Fields{
+		"PortNo": portNo,
+	}).Debug("logical-port-number-added-to-pots")
+}
+
+func (u *PotsPort) Enable() error {
+	return u.OperState.Event(potsTxEnable)
+}
+
+func (u *PotsPort) Disable() error {
+	if u.OperState.Is(PotsStateDown) {
+		return nil
+	}
+	return u.OperState.Event(potsTxDisable)
+}
diff --git a/internal/bbsim/devices/pots_port_test.go b/internal/bbsim/devices/pots_port_test.go
new file mode 100644
index 0000000..6a23b76
--- /dev/null
+++ b/internal/bbsim/devices/pots_port_test.go
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+
+ * 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 devices
+
+import (
+	"testing"
+
+	bbsimTypes "github.com/opencord/bbsim/internal/bbsim/types"
+	"github.com/stretchr/testify/assert"
+)
+
+func createTestPots() (*PotsPort, error) {
+	onu := &Onu{
+		ID:           0,
+		SerialNumber: NewSN(1, 1, 1),
+		PonPortID:    0,
+		Channel:      make(chan bbsimTypes.Message),
+	}
+
+	pots, err := NewPotsPort(1, onu)
+
+	return pots, err
+}
+
+func Test_Pots_Create(t *testing.T) {
+	pots, err := createTestPots()
+
+	assert.Nil(t, err)
+	assert.NotNil(t, pots)
+
+	// check initial operational state
+	assert.Equal(t, pots.OperState.Current(), PotsStateDown)
+}
+
+func Test_Pots_OperationalState(t *testing.T) {
+	pots, _ := createTestPots()
+
+	assert.Equal(t, pots.OperState.Current(), PotsStateDown)
+
+	go func() {
+		//When it will be enabled
+		msg, ok := <-pots.Onu.Channel
+		assert.True(t, ok)
+		assert.Equal(t, uint8(0), msg.Data.(bbsimTypes.UniStatusAlarmMessage).AdminState)
+
+		//When it will be disabled
+		msg, ok = <-pots.Onu.Channel
+		assert.True(t, ok)
+		assert.Equal(t, uint8(1), msg.Data.(bbsimTypes.UniStatusAlarmMessage).AdminState)
+	}()
+
+	err := pots.Enable()
+	assert.Nil(t, err)
+	assert.Equal(t, PotsStateUp, pots.OperState.Current())
+
+	err = pots.Disable()
+	assert.Nil(t, err)
+	assert.Equal(t, PotsStateDown, pots.OperState.Current())
+}
diff --git a/internal/bbsimctl/commands/uni.go b/internal/bbsimctl/commands/uni.go
index b025e72..073c088 100644
--- a/internal/bbsimctl/commands/uni.go
+++ b/internal/bbsimctl/commands/uni.go
@@ -32,8 +32,8 @@
 )
 
 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 }}"
+	DEFAULT_UNI_HEADER_FORMAT               = "table{{ .OnuSn }}\t{{ .OnuID }}\t{{ .ID }}\t{{ .MeID }}\t{{ .PortNo }}\t{{ .OperState }}\t{{ .Type }}"
+	DEFAULT_UNI_HEADER_FORMAT_WITH_SERVICES = "table{{ .OnuSn }}\t{{ .OnuID }}\t{{ .ID }}\t{{ .MeID }}\t{{ .PortNo }}\t{{ .OperState }}\t{{ .Type }}\t{{ .Services }}"
 )
 
 type UniIdInt string
diff --git a/internal/common/omci/get.go b/internal/common/omci/get.go
index a8fc6d7..1f76a0d 100644
--- a/internal/common/omci/get.go
+++ b/internal/common/omci/get.go
@@ -20,13 +20,14 @@
 	"encoding/hex"
 	"errors"
 	"fmt"
+	"math/rand"
+	"strconv"
+
 	"github.com/google/gopacket"
 	"github.com/opencord/omci-lib-go/v2"
 	me "github.com/opencord/omci-lib-go/v2/generated"
 	"github.com/opencord/voltha-protos/v5/go/openolt"
 	log "github.com/sirupsen/logrus"
-	"math/rand"
-	"strconv"
 )
 
 func ParseGetRequest(omciPkt gopacket.Packet) (*omci.GetRequest, error) {
@@ -72,10 +73,14 @@
 			activeImageEntityId, committedImageEntityId, standbyImageVersion, activeImageVersion, committedImageVersion)
 	case me.IpHostConfigDataClassID:
 		response = createIpHostResponse(msgObj.AttributeMask, msgObj.EntityInstance)
+	case me.VoipConfigDataClassID:
+		response = createVoipConfigDataResponse(msgObj.AttributeMask, msgObj.EntityInstance)
 	case me.UniGClassID:
 		response = createUnigResponse(msgObj.AttributeMask, msgObj.EntityInstance, onuDown)
 	case me.PhysicalPathTerminationPointEthernetUniClassID:
-		response = createPptpResponse(msgObj.AttributeMask, msgObj.EntityInstance, onuDown)
+		response = createPptpEthernetResponse(msgObj.AttributeMask, msgObj.EntityInstance, onuDown)
+	case me.PhysicalPathTerminationPointPotsUniClassID:
+		response = createPptpPotsResponse(msgObj.AttributeMask, msgObj.EntityInstance, onuDown)
 	case me.AniGClassID:
 		response = createAnigResponse(msgObj.AttributeMask, msgObj.EntityInstance)
 	case me.OnuDataClassID:
@@ -281,6 +286,28 @@
 	}
 }
 
+func createVoipConfigDataResponse(attributeMask uint16, entityInstance uint16) *omci.GetResponse {
+	return &omci.GetResponse{
+		MeBasePacket: omci.MeBasePacket{
+			EntityClass:    me.VoipConfigDataClassID,
+			EntityInstance: entityInstance,
+		},
+		Attributes: me.AttributeValueMap{
+			"ManagedEntityId":                   0,
+			"AvailableSignallingProtocols":      1,
+			"SignallingProtocolUsed":            1,
+			"AvailableVoipConfigurationMethods": 1,
+			"VoipConfigurationMethodUsed":       1,
+			"VoipConfigurationAddressPointer":   0xFFFF,
+			"VoipConfigurationState":            0,
+			"RetrieveProfile":                   0,
+			"ProfileVersion":                    0,
+		},
+		Result:        me.Success,
+		AttributeMask: attributeMask,
+	}
+}
+
 func createUnigResponse(attributeMask uint16, entityID uint16, onuDown bool) *omci.GetResponse {
 	// Valid values for uni_admin_state are 0 (unlocks) and 1 (locks)
 	omciAdminState := 1
@@ -315,7 +342,7 @@
 	}
 }
 
-func createPptpResponse(attributeMask uint16, entityID uint16, onuDown bool) *omci.GetResponse {
+func createPptpEthernetResponse(attributeMask uint16, entityID uint16, onuDown bool) *omci.GetResponse {
 	// Valid values for oper_state are 0 (enabled) and 1 (disabled)
 	// Valid values for uni_admin_state are 0 (unlocks) and 1 (locks)
 	onuAdminState := 1
@@ -361,6 +388,50 @@
 	}
 }
 
+func createPptpPotsResponse(attributeMask uint16, entityID uint16, onuDown bool) *omci.GetResponse {
+	// Valid values for oper_state are 0 (enabled) and 1 (disabled)
+	// Valid values for uni_admin_state are 0 (unlocks) and 1 (locks)
+	onuAdminState := 1
+	if !onuDown {
+		onuAdminState = 0
+	}
+	onuOperState := onuAdminState // For now make the assumption that oper state reflects the admin state
+	managedEntity, meErr := me.NewPhysicalPathTerminationPointPotsUni(me.ParamData{
+		EntityID: entityID,
+		Attributes: me.AttributeValueMap{
+			"ManagedEntityId":     entityID,
+			"AdministrativeState": onuAdminState,
+			"Deprecated":          0,
+			"Arc":                 0,
+			"ArcInterval":         0,
+			"Impedance":           0,
+			"TransmissionPath":    0,
+			"RxGain":              0,
+			"TxGain":              0,
+			"OperationalState":    onuOperState,
+			"HookState":           0,
+			"PotsHoldoverTime":    0,
+			"NominalFeedVoltage":  0,
+			"LossOfSoftswitch":    0,
+		},
+	})
+
+	if meErr.GetError() != nil {
+		omciLogger.Errorf("NewPhysicalPathTerminationPointPotsUni %v", meErr.Error())
+		return nil
+	}
+
+	return &omci.GetResponse{
+		MeBasePacket: omci.MeBasePacket{
+			EntityClass:    me.PhysicalPathTerminationPointPotsUniClassID,
+			EntityInstance: entityID,
+		},
+		Attributes:    managedEntity.GetAttributeValueMap(),
+		AttributeMask: attributeMask,
+		Result:        me.Success,
+	}
+}
+
 func createEthernetFramePerformanceMonitoringHistoryDataUpstreamResponse(attributeMask uint16, entityID uint16) *omci.GetResponse {
 	managedEntity, meErr := me.NewEthernetFramePerformanceMonitoringHistoryDataUpstream(me.ParamData{
 		EntityID: entityID,
diff --git a/internal/common/omci/onu_mib_db.go b/internal/common/omci/onu_mib_db.go
index 2a41c81..79ba3a5 100644
--- a/internal/common/omci/onu_mib_db.go
+++ b/internal/common/omci/onu_mib_db.go
@@ -20,6 +20,7 @@
 	"bytes"
 	"encoding/binary"
 	"encoding/hex"
+
 	me "github.com/opencord/omci-lib-go/v2/generated"
 )
 
@@ -69,6 +70,7 @@
 	cardHolderOnuType byte = 0x01 // ONU is a single piece of integrated equipment
 	ethernetUnitType  byte = 0x2f // Ethernet BASE-T
 	xgsPonUnitType    byte = 0xee // XG-PON10G10
+	potsUnitType      byte = 0x20 // POTS
 	cardHolderSlotID  byte = 0x01
 	tcontSlotId       byte = 0x80 // why is this not the same as the cardHolderSlotID, it does not point to anything
 	aniGId            byte = 0x01
@@ -90,7 +92,7 @@
 
 // creates a MIB database for a ONU
 // CircuitPack and CardHolder are static, everything else can be configured
-func GenerateMibDatabase(uniPortCount int) (*MibDb, error) {
+func GenerateMibDatabase(ethUniPortCount int, potsUniPortCount int) (*MibDb, error) {
 
 	mibDb := MibDb{
 		items: []MibDbEntry{},
@@ -129,7 +131,7 @@
 		me.CircuitPackClassID,
 		circuitPackEntityID,
 		me.AttributeValueMap{
-			"VendorId":            "ONF",
+			"VendorId":            ToOctets("ONF", 4),
 			"AdministrativeState": 0,
 			"OperationalState":    0,
 			"BridgedOrIpInd":      0,
@@ -185,7 +187,7 @@
 		circuitPackEntityID,
 		me.AttributeValueMap{
 			"Type":          ethernetUnitType,
-			"NumberOfPorts": uniPortCount,
+			"NumberOfPorts": ethUniPortCount,
 			"SerialNumber":  ToOctets("BBSM-Circuit-Pack", 20),
 			"Version":       ToOctets("v0.0.1", 20),
 		},
@@ -194,7 +196,7 @@
 		me.CircuitPackClassID,
 		circuitPackEntityID,
 		me.AttributeValueMap{
-			"VendorId":            "ONF",
+			"VendorId":            ToOctets("ONF", 4),
 			"AdministrativeState": 0,
 			"OperationalState":    0,
 			"BridgedOrIpInd":      0,
@@ -219,33 +221,101 @@
 		},
 	})
 
+	if potsUniPortCount > 0 {
+		// circuitPack POTS
+		// NOTE the circuit pack is divided in multiple messages as too big to fit in a single one
+		mibDb.items = append(mibDb.items, MibDbEntry{
+			me.CircuitPackClassID,
+			circuitPackEntityID,
+			me.AttributeValueMap{
+				"Type":          potsUnitType,
+				"NumberOfPorts": potsUniPortCount,
+				"SerialNumber":  ToOctets("BBSM-Circuit-Pack", 20),
+				"Version":       ToOctets("v0.0.1", 20),
+			},
+		})
+		mibDb.items = append(mibDb.items, MibDbEntry{
+			me.CircuitPackClassID,
+			circuitPackEntityID,
+			me.AttributeValueMap{
+				"VendorId":            ToOctets("ONF", 4),
+				"AdministrativeState": 0,
+				"OperationalState":    0,
+				"BridgedOrIpInd":      0,
+			},
+		})
+		mibDb.items = append(mibDb.items, MibDbEntry{
+			me.CircuitPackClassID,
+			circuitPackEntityID,
+			me.AttributeValueMap{
+				"EquipmentId":                 ToOctets("BBSM-Circuit-Pack", 20),
+				"CardConfiguration":           0,
+				"TotalTContBufferNumber":      8,
+				"TotalPriorityQueueNumber":    8,
+				"TotalTrafficSchedulerNumber": 16,
+			},
+		})
+		mibDb.items = append(mibDb.items, MibDbEntry{
+			me.CircuitPackClassID,
+			circuitPackEntityID,
+			me.AttributeValueMap{
+				"PowerShedOverride": uint32(0),
+			},
+		})
+	}
+
 	// PPTP and UNI-Gs
 	// NOTE this are dependent on the number of UNI this ONU supports
 	// Through an identical ID, the UNI-G ME is implicitly linked to an instance of a PPTP
-	for i := 1; i <= uniPortCount; i++ {
+	totalPortsCount := ethUniPortCount + potsUniPortCount
+	for i := 1; i <= totalPortsCount; i++ {
 		uniEntityId := GenerateUniPortEntityId(uint32(i))
 
-		mibDb.items = append(mibDb.items, MibDbEntry{
-			me.PhysicalPathTerminationPointEthernetUniClassID,
-			uniEntityId,
-			me.AttributeValueMap{
-				"ExpectedType":                  0,
-				"SensedType":                    ethernetUnitType,
-				"AutoDetectionConfiguration":    0,
-				"EthernetLoopbackConfiguration": 0,
-				"AdministrativeState":           0,
-				"OperationalState":              0,
-				"ConfigurationInd":              3,
-				"MaxFrameSize":                  1518,
-				"DteOrDceInd":                   0,
-				"PauseTime":                     0,
-				"BridgedOrIpInd":                2,
-				"Arc":                           0,
-				"ArcInterval":                   0,
-				"PppoeFilter":                   0,
-				"PowerControl":                  0,
-			},
-		})
+		if i <= ethUniPortCount {
+			// first, create the correct amount of ethernet UNIs, the same is done in onu.go
+			mibDb.items = append(mibDb.items, MibDbEntry{
+				me.PhysicalPathTerminationPointEthernetUniClassID,
+				uniEntityId,
+				me.AttributeValueMap{
+					"ExpectedType":                  0,
+					"SensedType":                    ethernetUnitType,
+					"AutoDetectionConfiguration":    0,
+					"EthernetLoopbackConfiguration": 0,
+					"AdministrativeState":           0,
+					"OperationalState":              0,
+					"ConfigurationInd":              3,
+					"MaxFrameSize":                  1518,
+					"DteOrDceInd":                   0,
+					"PauseTime":                     0,
+					"BridgedOrIpInd":                2,
+					"Arc":                           0,
+					"ArcInterval":                   0,
+					"PppoeFilter":                   0,
+					"PowerControl":                  0,
+				},
+			})
+		} else {
+			// the remaining ones are pots UNIs, the same is done in onu.go
+			mibDb.items = append(mibDb.items, MibDbEntry{
+				me.PhysicalPathTerminationPointPotsUniClassID,
+				uniEntityId,
+				me.AttributeValueMap{
+					"AdministrativeState": 0,
+					"Deprecated":          0,
+					"Arc":                 0,
+					"ArcInterval":         0,
+					"Impedance":           0,
+					"TransmissionPath":    0,
+					"RxGain":              0,
+					"TxGain":              0,
+					"OperationalState":    0,
+					"HookState":           0,
+					"PotsHoldoverTime":    0,
+					"NominalFeedVoltage":  0,
+					"LossOfSoftswitch":    0,
+				},
+			})
+		}
 
 		mibDb.items = append(mibDb.items, MibDbEntry{
 			me.UniGClassID,
diff --git a/internal/common/omci/onu_mib_db_test.go b/internal/common/omci/onu_mib_db_test.go
index aefbae5..378ac6e 100644
--- a/internal/common/omci/onu_mib_db_test.go
+++ b/internal/common/omci/onu_mib_db_test.go
@@ -17,10 +17,11 @@
 package omci
 
 import (
+	"testing"
+
 	"github.com/opencord/omci-lib-go/v2"
 	me "github.com/opencord/omci-lib-go/v2/generated"
 	"github.com/stretchr/testify/assert"
-	"testing"
 )
 
 func TestEntityID_ToUint16(t *testing.T) {
@@ -55,7 +56,7 @@
 
 func Test_GenerateMibDatabase(t *testing.T) {
 	const uniPortCount = 4
-	mibDb, err := GenerateMibDatabase(uniPortCount)
+	mibDb, err := GenerateMibDatabase(uniPortCount, 0)
 
 	expectedItems := 9                     //ONU-G + 2 Circuit Packs (4 messages each)
 	expectedItems += 2 * uniPortCount      // 1 PPTP and 1 UniG per UNI
@@ -89,3 +90,41 @@
 	}
 
 }
+
+func Test_GenerateMibDatabase_withPots(t *testing.T) {
+	const uniPortCount = 4
+	const potsPortCount = 1
+	mibDb, err := GenerateMibDatabase(uniPortCount, potsPortCount)
+
+	expectedItems := 13                                      //ONU-G + 3 Circuit Packs (4 messages each)
+	expectedItems += 2 * (uniPortCount + potsPortCount)      // 1 PPTP and 1 UniG per UNI
+	expectedItems += 1                                       // ANI-G
+	expectedItems += 2 * tconts                              // T-CONT and traffic schedulers
+	expectedItems += 1                                       // ONU-2g
+	expectedItems += 2 * 8 * tconts                          // 8 upstream queues for each T-CONT, and we report each queue twice
+	expectedItems += 2 * 16 * (uniPortCount + potsPortCount) // 16 downstream queues for each T-CONT, and we report each queue twice
+
+	assert.NoError(t, err)
+	assert.NotNil(t, mibDb)
+	assert.Equal(t, expectedItems, int(mibDb.NumberOfCommands))
+
+	// now try to serialize all messages to check on the attributes
+	for _, entry := range mibDb.items {
+		reportedMe, meErr := me.LoadManagedEntityDefinition(entry.classId, me.ParamData{
+			EntityID:   entry.entityId.ToUint16(),
+			Attributes: entry.params,
+		})
+		assert.NoError(t, meErr.GetError())
+
+		response := &omci.MibUploadNextResponse{
+			MeBasePacket: omci.MeBasePacket{
+				EntityClass: me.OnuDataClassID,
+			},
+			ReportedME: *reportedMe,
+		}
+
+		_, err := Serialize(omci.MibUploadNextResponseType, response, uint16(10))
+		assert.NoError(t, err)
+	}
+
+}
diff --git a/internal/common/options.go b/internal/common/options.go
index 83b5b56..c0798ae 100644
--- a/internal/common/options.go
+++ b/internal/common/options.go
@@ -93,6 +93,7 @@
 	PortStatsInterval  int    `yaml:"port_stats_interval"`
 	OmciResponseRate   uint8  `yaml:"omci_response_rate"`
 	UniPorts           uint32 `yaml:"uni_ports"`
+	PotsPorts          uint32 `yaml:"pots_ports"`
 }
 
 type BBSimConfig struct {
@@ -231,7 +232,8 @@
 	nni := flag.Int("nni", int(conf.Olt.NniPorts), "Number of NNI ports per OLT device to be emulated")
 	pon := flag.Int("pon", int(conf.Olt.PonPorts), "Number of PON ports per OLT device to be emulated")
 	onu := flag.Int("onu", int(conf.Olt.OnusPonPort), "Number of ONU devices per PON port to be emulated")
-	uni := flag.Int("uni", int(conf.Olt.UniPorts), "Number of UNI Ports per ONU device to be emulated")
+	uni := flag.Int("uni", int(conf.Olt.UniPorts), "Number of Ethernet UNI Ports per ONU device to be emulated")
+	pots := flag.Int("pots", int(conf.Olt.PotsPorts), "Number of POTS UNI Ports per ONU device to be emulated")
 
 	oltRebootDelay := flag.Int("oltRebootDelay", conf.Olt.OltRebootDelay, "Time that BBSim should before restarting after a reboot")
 	omci_response_rate := flag.Int("omci_response_rate", int(conf.Olt.OmciResponseRate), "Amount of OMCI messages to respond to")
@@ -262,6 +264,7 @@
 	conf.Olt.NniPorts = uint32(*nni)
 	conf.Olt.PonPorts = uint32(*pon)
 	conf.Olt.UniPorts = uint32(*uni)
+	conf.Olt.PotsPorts = uint32(*pots)
 	conf.Olt.OnusPonPort = uint32(*onu)
 	conf.Olt.OltRebootDelay = *oltRebootDelay
 	conf.Olt.OmciResponseRate = uint8(*omci_response_rate)
@@ -338,6 +341,7 @@
 			PortStatsInterval:  20,
 			OmciResponseRate:   10,
 			UniPorts:           4,
+			PotsPorts:          0,
 		},
 		BBRConfig{
 			LogLevel:  "debug",
