diff --git a/api/bbsim/bbsim.pb.go b/api/bbsim/bbsim.pb.go
index 304f76f..6ffddb2 100644
--- a/api/bbsim/bbsim.pb.go
+++ b/api/bbsim/bbsim.pb.go
@@ -24,6 +24,31 @@
 // proto package needs to be updated.
 const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
 
+type SubActionTypes int32
+
+const (
+	SubActionTypes_JOIN  SubActionTypes = 0
+	SubActionTypes_LEAVE SubActionTypes = 1
+)
+
+var SubActionTypes_name = map[int32]string{
+	0: "JOIN",
+	1: "LEAVE",
+}
+
+var SubActionTypes_value = map[string]int32{
+	"JOIN":  0,
+	"LEAVE": 1,
+}
+
+func (x SubActionTypes) String() string {
+	return proto.EnumName(SubActionTypes_name, int32(x))
+}
+
+func (SubActionTypes) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_ef7750073d18011b, []int{0}
+}
+
 // These types correspond to the messages permitted in the oneof
 // in AlarmIndication in the openolt protos
 type AlarmType_Types int32
@@ -759,6 +784,53 @@
 	return ""
 }
 
+type IgmpRequest struct {
+	OnuReq               *ONURequest    `protobuf:"bytes,1,opt,name=OnuReq,proto3" json:"OnuReq,omitempty"`
+	SubActionVal         SubActionTypes `protobuf:"varint,2,opt,name=SubActionVal,proto3,enum=bbsim.SubActionTypes" json:"SubActionVal,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
+	XXX_unrecognized     []byte         `json:"-"`
+	XXX_sizecache        int32          `json:"-"`
+}
+
+func (m *IgmpRequest) Reset()         { *m = IgmpRequest{} }
+func (m *IgmpRequest) String() string { return proto.CompactTextString(m) }
+func (*IgmpRequest) ProtoMessage()    {}
+func (*IgmpRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_ef7750073d18011b, []int{12}
+}
+
+func (m *IgmpRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_IgmpRequest.Unmarshal(m, b)
+}
+func (m *IgmpRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_IgmpRequest.Marshal(b, m, deterministic)
+}
+func (m *IgmpRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_IgmpRequest.Merge(m, src)
+}
+func (m *IgmpRequest) XXX_Size() int {
+	return xxx_messageInfo_IgmpRequest.Size(m)
+}
+func (m *IgmpRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_IgmpRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_IgmpRequest proto.InternalMessageInfo
+
+func (m *IgmpRequest) GetOnuReq() *ONURequest {
+	if m != nil {
+		return m.OnuReq
+	}
+	return nil
+}
+
+func (m *IgmpRequest) GetSubActionVal() SubActionTypes {
+	if m != nil {
+		return m.SubActionVal
+	}
+	return SubActionTypes_JOIN
+}
+
 type Empty struct {
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
@@ -769,7 +841,7 @@
 func (m *Empty) String() string { return proto.CompactTextString(m) }
 func (*Empty) ProtoMessage()    {}
 func (*Empty) Descriptor() ([]byte, []int) {
-	return fileDescriptor_ef7750073d18011b, []int{12}
+	return fileDescriptor_ef7750073d18011b, []int{13}
 }
 
 func (m *Empty) XXX_Unmarshal(b []byte) error {
@@ -791,6 +863,7 @@
 var xxx_messageInfo_Empty proto.InternalMessageInfo
 
 func init() {
+	proto.RegisterEnum("bbsim.SubActionTypes", SubActionTypes_name, SubActionTypes_value)
 	proto.RegisterEnum("bbsim.AlarmType_Types", AlarmType_Types_name, AlarmType_Types_value)
 	proto.RegisterType((*PONPort)(nil), "bbsim.PONPort")
 	proto.RegisterType((*NNIPort)(nil), "bbsim.NNIPort")
@@ -804,77 +877,83 @@
 	proto.RegisterType((*VersionNumber)(nil), "bbsim.VersionNumber")
 	proto.RegisterType((*LogLevel)(nil), "bbsim.LogLevel")
 	proto.RegisterType((*Response)(nil), "bbsim.Response")
+	proto.RegisterType((*IgmpRequest)(nil), "bbsim.IgmpRequest")
 	proto.RegisterType((*Empty)(nil), "bbsim.Empty")
 }
 
 func init() { proto.RegisterFile("api/bbsim/bbsim.proto", fileDescriptor_ef7750073d18011b) }
 
 var fileDescriptor_ef7750073d18011b = []byte{
-	// 1009 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0x4d, 0x4f, 0xeb, 0x56,
-	0x13, 0x4e, 0x08, 0xce, 0xc7, 0x04, 0x82, 0x19, 0x3e, 0x5e, 0x0b, 0xa1, 0xb7, 0xc8, 0xba, 0xad,
-	0xb8, 0x55, 0xcb, 0x6d, 0xe1, 0x56, 0xbd, 0x8b, 0x6e, 0x4c, 0x62, 0x82, 0x75, 0xc3, 0x71, 0x74,
-	0xec, 0x80, 0x58, 0x59, 0x4e, 0x72, 0x04, 0x96, 0xec, 0x38, 0xb5, 0x9d, 0x8b, 0x58, 0x57, 0xfd,
-	0x4d, 0xfd, 0x1b, 0xdd, 0x74, 0xdb, 0xff, 0xd1, 0x5d, 0x75, 0xec, 0x63, 0xc7, 0x81, 0x5b, 0x29,
-	0xea, 0xa6, 0x1b, 0x74, 0xe6, 0x99, 0x79, 0xce, 0xcc, 0x3c, 0x9e, 0x33, 0x04, 0x0e, 0xdc, 0xb9,
-	0xf7, 0x6e, 0x3c, 0x8e, 0xbd, 0x20, 0xfb, 0x7b, 0x36, 0x8f, 0xc2, 0x24, 0x44, 0x29, 0x35, 0xd4,
-	0x1f, 0xa1, 0x31, 0x34, 0xc9, 0x30, 0x8c, 0x12, 0xec, 0xc0, 0x86, 0xd1, 0x53, 0xaa, 0x27, 0xd5,
-	0x53, 0x89, 0x6e, 0x18, 0x3d, 0x3c, 0x86, 0x96, 0x39, 0x67, 0x91, 0x95, 0xb8, 0x09, 0x53, 0x36,
-	0x4e, 0xaa, 0xa7, 0x2d, 0xba, 0x04, 0x38, 0x91, 0x10, 0xe3, 0x5f, 0x10, 0xff, 0xa8, 0x42, 0xcd,
-	0xf4, 0x5f, 0xb3, 0x54, 0xd8, 0xb2, 0x58, 0xe4, 0xb9, 0x3e, 0x59, 0x04, 0x63, 0x16, 0x09, 0xe2,
-	0x0a, 0xb6, 0x7a, 0x73, 0xed, 0xc5, 0xcd, 0xf8, 0x06, 0xb6, 0x8d, 0x59, 0xc2, 0xa2, 0x99, 0xeb,
-	0x67, 0x11, 0x9b, 0x69, 0xc4, 0x2a, 0x88, 0x5f, 0x43, 0x53, 0x14, 0x1e, 0x2b, 0xd2, 0x49, 0xed,
-	0xb4, 0x7d, 0xde, 0x39, 0xcb, 0x84, 0x11, 0x30, 0x2d, 0xfc, 0x3c, 0x56, 0xa8, 0x13, 0x2b, 0xf5,
-	0x95, 0x58, 0x01, 0xd3, 0xc2, 0xaf, 0xfe, 0xc5, 0xfb, 0x22, 0xa3, 0xff, 0xac, 0xaf, 0x63, 0x68,
-	0x0d, 0xc3, 0x19, 0xaf, 0xc5, 0xe8, 0x29, 0x52, 0x9a, 0x7e, 0x09, 0x20, 0xc2, 0xa6, 0x65, 0xbb,
-	0x0f, 0x4a, 0x3d, 0x75, 0xa4, 0x67, 0x8e, 0x75, 0x39, 0xd6, 0xc8, 0x30, 0x7e, 0xe6, 0xb7, 0x5c,
-	0x3f, 0x69, 0xd3, 0x69, 0xc4, 0xe2, 0x58, 0x69, 0x66, 0x95, 0x14, 0x00, 0x1e, 0x42, 0x9d, 0xdf,
-	0x47, 0x42, 0xa5, 0x95, 0x72, 0x84, 0xa5, 0x9e, 0xc2, 0xa6, 0x49, 0x46, 0x31, 0x9e, 0x80, 0xe4,
-	0x25, 0x2c, 0x88, 0x95, 0x6a, 0x2a, 0x16, 0x08, 0xb1, 0x4c, 0x32, 0xa2, 0x99, 0x43, 0xfd, 0x0e,
-	0x80, 0x5b, 0xec, 0xe7, 0x05, 0x8b, 0x93, 0x57, 0xda, 0x54, 0x5f, 0x6b, 0xa3, 0xfe, 0x59, 0x83,
-	0x96, 0xe6, 0xbb, 0x51, 0x60, 0x3f, 0xcf, 0x99, 0xfa, 0x7b, 0x0d, 0x24, 0x7e, 0x88, 0xb1, 0x01,
-	0xb5, 0x81, 0x69, 0xc9, 0x15, 0xec, 0x00, 0xf4, 0xee, 0x0d, 0xd2, 0x77, 0xfa, 0x9a, 0x35, 0x94,
-	0xab, 0xb8, 0x0d, 0x2d, 0x93, 0x8c, 0x1c, 0x6d, 0xa0, 0xd1, 0x1b, 0x79, 0x03, 0xff, 0x07, 0x7b,
-	0xdc, 0xb4, 0x6c, 0x8d, 0xda, 0xa3, 0xa1, 0x73, 0xa5, 0x19, 0x83, 0x11, 0xd5, 0xe5, 0x1a, 0x1e,
-	0x02, 0xa6, 0x0e, 0xa3, 0x4f, 0xb4, 0x81, 0xd3, 0xd3, 0xfb, 0x54, 0xeb, 0xe9, 0xf2, 0x66, 0x4e,
-	0xe8, 0x51, 0xe3, 0xca, 0x76, 0xcc, 0x2b, 0xe7, 0xce, 0x20, 0x3d, 0xf3, 0x4e, 0x96, 0xf0, 0x18,
-	0x14, 0xee, 0x18, 0x98, 0x96, 0xc5, 0x71, 0xf3, 0xa6, 0x6b, 0x38, 0xdd, 0x6b, 0x8d, 0x10, 0x7d,
-	0x20, 0xd7, 0x8b, 0x3c, 0xe9, 0x75, 0x56, 0x91, 0xa7, 0x81, 0x6f, 0xe1, 0x4b, 0xee, 0xb0, 0xa9,
-	0x46, 0xac, 0x1b, 0xc3, 0xb2, 0x0c, 0x93, 0x38, 0x06, 0xb1, 0x75, 0x7a, 0xa5, 0x53, 0x9d, 0x74,
-	0x75, 0xe7, 0x4e, 0xa3, 0xc4, 0x20, 0x7d, 0xb9, 0x89, 0x47, 0x70, 0x98, 0x96, 0xde, 0xb5, 0x8d,
-	0x5b, 0xcd, 0xe6, 0x81, 0xf9, 0x35, 0x2d, 0x54, 0x60, 0x9f, 0xfb, 0x86, 0xd4, 0xec, 0xea, 0x96,
-	0xc5, 0xfb, 0xd5, 0x29, 0x35, 0xa9, 0x0c, 0x78, 0x02, 0xc7, 0xe5, 0xba, 0x3e, 0xea, 0xf7, 0x8e,
-	0x75, 0x4f, 0xba, 0x05, 0xb7, 0x8d, 0x07, 0xb0, 0xcb, 0x23, 0x0c, 0x7b, 0xe4, 0x0c, 0x4d, 0xc2,
-	0xb5, 0xb0, 0x2d, 0x79, 0x0b, 0x77, 0x61, 0xbb, 0x50, 0x8a, 0xd3, 0xe5, 0xed, 0x97, 0xd0, 0xa5,
-	0xdc, 0xc9, 0x1b, 0xcb, 0xa1, 0x61, 0xd7, 0xe1, 0x5d, 0xc8, 0x3b, 0xb9, 0x1e, 0x2b, 0x8e, 0xae,
-	0xa8, 0x4a, 0x46, 0x84, 0x4e, 0xd9, 0x7b, 0x65, 0xc8, 0xbb, 0xb8, 0x07, 0x3b, 0x65, 0x4c, 0xbb,
-	0x31, 0x64, 0x54, 0x3f, 0x40, 0x27, 0xfd, 0xbe, 0x43, 0x37, 0x72, 0x03, 0x96, 0xb0, 0x08, 0x65,
-	0xa8, 0x7d, 0x64, 0xcf, 0x62, 0x1a, 0xf8, 0x11, 0xf7, 0x41, 0xba, 0x75, 0xfd, 0x45, 0xbe, 0x4e,
-	0x32, 0x43, 0xfd, 0xad, 0x0a, 0x5b, 0x29, 0x35, 0x9f, 0xa7, 0xf7, 0xa5, 0x51, 0x49, 0xe9, 0x9d,
-	0xf3, 0x43, 0x31, 0x83, 0x05, 0x7e, 0x96, 0x8e, 0x0f, 0x5d, 0x06, 0xae, 0xf5, 0x42, 0x0f, 0xa1,
-	0xce, 0x9f, 0xd9, 0x22, 0x16, 0xcf, 0x53, 0x58, 0xf8, 0x03, 0x40, 0x51, 0x77, 0xac, 0x6c, 0xa6,
-	0x63, 0x7f, 0x50, 0x4e, 0x59, 0x78, 0x69, 0x29, 0x50, 0xfd, 0xb5, 0x0a, 0xdb, 0xb7, 0x2c, 0x8a,
-	0xbd, 0x70, 0x26, 0x12, 0x28, 0xd0, 0xf8, 0x94, 0x01, 0xa2, 0xef, 0xdc, 0xe4, 0x4f, 0x72, 0xbc,
-	0xf0, 0xfc, 0xa9, 0xed, 0x05, 0xc5, 0x3a, 0x2d, 0x00, 0xfc, 0x3f, 0xc0, 0x24, 0x0c, 0x02, 0x2f,
-	0xb9, 0x76, 0xe3, 0x47, 0x51, 0x5c, 0x09, 0xe1, 0xec, 0x07, 0x2f, 0x11, 0xb5, 0x67, 0x8b, 0x63,
-	0x09, 0xa8, 0x1f, 0xa0, 0x39, 0x08, 0x1f, 0x06, 0xec, 0x13, 0xf3, 0xb9, 0xc6, 0x3e, 0x3f, 0x88,
-	0xfc, 0x99, 0xc1, 0x1b, 0x9f, 0xb8, 0xbe, 0x2f, 0x64, 0x69, 0x52, 0x61, 0xa9, 0x3a, 0x34, 0x29,
-	0x8b, 0xe7, 0xe1, 0x2c, 0x66, 0xf8, 0x05, 0xb4, 0xe3, 0xf4, 0x3e, 0x67, 0x12, 0x4e, 0x99, 0xd8,
-	0x7d, 0x90, 0x41, 0xdd, 0x70, 0xca, 0x78, 0x73, 0x01, 0x8b, 0x63, 0xf7, 0x21, 0x6f, 0x20, 0x37,
-	0xd5, 0x06, 0x48, 0x7a, 0x30, 0x4f, 0x9e, 0xcf, 0x7f, 0x91, 0x40, 0xba, 0xbc, 0xb4, 0xbc, 0x00,
-	0xdf, 0x41, 0x43, 0x48, 0x83, 0x5b, 0x42, 0xc9, 0x34, 0xe4, 0x68, 0x5f, 0x58, 0x2b, 0xc2, 0xa9,
-	0x15, 0x7c, 0x03, 0xf5, 0x3e, 0x4b, 0xf8, 0xff, 0x94, 0xd5, 0xf8, 0x62, 0xfd, 0xf8, 0x89, 0x5a,
-	0xc1, 0x6f, 0x01, 0x86, 0xe1, 0x13, 0x8b, 0xc2, 0xd9, 0xeb, 0xc8, 0x1d, 0x61, 0xe5, 0x1d, 0xa9,
-	0x15, 0x3c, 0x83, 0xb6, 0xf5, 0xb8, 0x48, 0xa6, 0xe1, 0xd3, 0x7a, 0xf1, 0xdf, 0x40, 0x8b, 0xb2,
-	0x71, 0x18, 0x26, 0x6b, 0x45, 0x7f, 0x05, 0x0d, 0x5e, 0x32, 0xdf, 0x99, 0xab, 0xb1, 0xed, 0xe5,
-	0xca, 0x8c, 0xd5, 0x0a, 0xbe, 0xcd, 0x5a, 0x23, 0x23, 0xdc, 0x2d, 0xed, 0xd2, 0x6c, 0xda, 0x8f,
-	0x4a, 0xeb, 0x55, 0xad, 0xe0, 0xf7, 0xd0, 0xb6, 0x58, 0x52, 0x7c, 0xcd, 0x3c, 0x69, 0x0e, 0x1c,
-	0xbd, 0x04, 0xd4, 0x0a, 0x5e, 0x94, 0x7a, 0xfc, 0x7c, 0x8a, 0xcf, 0x94, 0x7e, 0xbe, 0xd4, 0x71,
-	0x6d, 0xce, 0x7b, 0xd8, 0xa2, 0x2c, 0x4e, 0xdc, 0x28, 0xd1, 0xdd, 0x79, 0xe8, 0xaf, 0xc9, 0xba,
-	0x80, 0xb6, 0x60, 0xf5, 0x1e, 0x27, 0xf3, 0x35, 0x49, 0x3f, 0x01, 0x5a, 0x2c, 0x49, 0x9f, 0x9e,
-	0x31, 0x9b, 0x7a, 0x13, 0x37, 0xe1, 0x83, 0xb4, 0x57, 0x7e, 0x92, 0xff, 0xcc, 0x1e, 0xd7, 0xd3,
-	0x1f, 0x47, 0x17, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x83, 0x0f, 0x4c, 0x7d, 0x35, 0x09, 0x00,
-	0x00,
+	// 1097 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcd, 0x4e, 0xe3, 0x56,
+	0x14, 0x4e, 0x48, 0x9c, 0x9f, 0x93, 0x10, 0xcc, 0x99, 0x19, 0x6a, 0x21, 0xd4, 0x22, 0x6b, 0xa6,
+	0x62, 0x46, 0x2d, 0xd3, 0xc2, 0x54, 0xa5, 0x52, 0x37, 0x26, 0x31, 0xc1, 0x9d, 0x60, 0x47, 0xd7,
+	0x0e, 0x88, 0x95, 0xe5, 0x24, 0x57, 0xc1, 0x92, 0x1d, 0x67, 0x6c, 0x67, 0x10, 0x0f, 0xd0, 0x67,
+	0xea, 0xaa, 0xef, 0xd0, 0x4d, 0xb7, 0x7d, 0x8f, 0xee, 0xaa, 0x6b, 0x5f, 0x3b, 0x0e, 0xa0, 0x2a,
+	0xea, 0xa6, 0x1b, 0xe4, 0xf3, 0x9d, 0xef, 0x3b, 0x7f, 0xf7, 0xde, 0x13, 0xe0, 0x95, 0xb3, 0x70,
+	0xdf, 0x8f, 0xc7, 0x91, 0xeb, 0xa7, 0x7f, 0x8f, 0x17, 0x61, 0x10, 0x07, 0x28, 0x24, 0x86, 0xfc,
+	0x23, 0xd4, 0x87, 0x86, 0x3e, 0x0c, 0xc2, 0x18, 0x3b, 0xb0, 0xa5, 0xf5, 0xa4, 0xf2, 0x61, 0xf9,
+	0x48, 0x20, 0x5b, 0x5a, 0x0f, 0x0f, 0xa0, 0x69, 0x2c, 0x68, 0x68, 0xc6, 0x4e, 0x4c, 0xa5, 0xad,
+	0xc3, 0xf2, 0x51, 0x93, 0xac, 0x00, 0x26, 0xd4, 0x75, 0xed, 0x3f, 0x08, 0xff, 0x2c, 0x43, 0xc5,
+	0xf0, 0x9e, 0xaa, 0x64, 0x68, 0x9b, 0x34, 0x74, 0x1d, 0x4f, 0x5f, 0xfa, 0x63, 0x1a, 0x72, 0xe1,
+	0x1a, 0xb6, 0x1e, 0xb9, 0xf2, 0x28, 0x32, 0xbe, 0x86, 0x6d, 0x6d, 0x1e, 0xd3, 0x70, 0xee, 0x78,
+	0x29, 0xa3, 0x9a, 0x30, 0xd6, 0x41, 0x7c, 0x07, 0x0d, 0x5e, 0x78, 0x24, 0x09, 0x87, 0x95, 0xa3,
+	0xd6, 0x49, 0xe7, 0x38, 0x1d, 0x0c, 0x87, 0x49, 0xee, 0x67, 0x5c, 0x3e, 0x9d, 0x48, 0xaa, 0xad,
+	0x71, 0x39, 0x4c, 0x72, 0xbf, 0xfc, 0x37, 0xeb, 0x4b, 0x1f, 0xfd, 0x6f, 0x7d, 0x1d, 0x40, 0x73,
+	0x18, 0xcc, 0x59, 0x2d, 0x5a, 0x4f, 0x12, 0x92, 0xf4, 0x2b, 0x00, 0x11, 0xaa, 0xa6, 0xe5, 0xcc,
+	0xa4, 0x5a, 0xe2, 0x48, 0xbe, 0x19, 0xd6, 0x65, 0x58, 0x3d, 0xc5, 0xd8, 0x37, 0x8b, 0x72, 0x79,
+	0xaf, 0x4c, 0xa7, 0x21, 0x8d, 0x22, 0xa9, 0x91, 0x56, 0x92, 0x03, 0xb8, 0x07, 0x35, 0x16, 0x4f,
+	0x0f, 0xa4, 0x66, 0xa2, 0xe1, 0x96, 0x7c, 0x04, 0x55, 0x43, 0x1f, 0x45, 0x78, 0x08, 0x82, 0x1b,
+	0x53, 0x3f, 0x92, 0xca, 0xc9, 0xb0, 0x80, 0x0f, 0xcb, 0xd0, 0x47, 0x24, 0x75, 0xc8, 0xdf, 0x01,
+	0x30, 0x8b, 0x7e, 0x5a, 0xd2, 0x28, 0x7e, 0x32, 0x9b, 0xf2, 0xd3, 0xd9, 0xc8, 0x7f, 0x55, 0xa0,
+	0xa9, 0x78, 0x4e, 0xe8, 0x5b, 0x0f, 0x0b, 0x2a, 0xff, 0x51, 0x01, 0x81, 0x7d, 0x44, 0x58, 0x87,
+	0xca, 0xc0, 0x30, 0xc5, 0x12, 0x76, 0x00, 0x7a, 0xb7, 0x9a, 0xde, 0xb7, 0xfb, 0x8a, 0x39, 0x14,
+	0xcb, 0xb8, 0x0d, 0x4d, 0x43, 0x1f, 0xd9, 0xca, 0x40, 0x21, 0x57, 0xe2, 0x16, 0x7e, 0x01, 0x2f,
+	0x98, 0x69, 0x5a, 0x0a, 0xb1, 0x46, 0x43, 0xfb, 0x42, 0xd1, 0x06, 0x23, 0xa2, 0x8a, 0x15, 0xdc,
+	0x03, 0x4c, 0x1c, 0x5a, 0x5f, 0x57, 0x06, 0x76, 0x4f, 0xed, 0x13, 0xa5, 0xa7, 0x8a, 0xd5, 0x4c,
+	0xd0, 0x23, 0xda, 0x85, 0x65, 0x1b, 0x17, 0xf6, 0x8d, 0xa6, 0xf7, 0x8c, 0x1b, 0x51, 0xc0, 0x03,
+	0x90, 0x98, 0x63, 0x60, 0x98, 0x26, 0xc3, 0x8d, 0xab, 0xae, 0x66, 0x77, 0x2f, 0x15, 0x5d, 0x57,
+	0x07, 0x62, 0x2d, 0xcf, 0x93, 0x84, 0x33, 0xf3, 0x3c, 0x75, 0x7c, 0x0b, 0x6f, 0x98, 0xc3, 0x22,
+	0x8a, 0x6e, 0x5e, 0x69, 0xa6, 0xa9, 0x19, 0xba, 0xad, 0xe9, 0x96, 0x4a, 0x2e, 0x54, 0xa2, 0xea,
+	0x5d, 0xd5, 0xbe, 0x51, 0x88, 0xae, 0xe9, 0x7d, 0xb1, 0x81, 0xfb, 0xb0, 0x97, 0x94, 0xde, 0xb5,
+	0xb4, 0x6b, 0xc5, 0x62, 0xc4, 0x2c, 0x4c, 0x13, 0x25, 0x78, 0xc9, 0x7c, 0x43, 0x62, 0x74, 0x55,
+	0xd3, 0x64, 0xfd, 0xaa, 0x84, 0x18, 0x44, 0x04, 0x3c, 0x84, 0x83, 0x62, 0x5d, 0x1f, 0xd5, 0x5b,
+	0xdb, 0xbc, 0xd5, 0xbb, 0xb9, 0xb6, 0x85, 0xaf, 0x60, 0x97, 0x31, 0x34, 0x6b, 0x64, 0x0f, 0x0d,
+	0x9d, 0xcd, 0xc2, 0x32, 0xc5, 0x36, 0xee, 0xc2, 0x76, 0x3e, 0x29, 0x26, 0x17, 0xb7, 0x1f, 0x43,
+	0xe7, 0x62, 0x27, 0x6b, 0x2c, 0x83, 0x86, 0x5d, 0x9b, 0x75, 0x21, 0xee, 0x64, 0xf3, 0x58, 0x73,
+	0x74, 0x79, 0x55, 0x22, 0x22, 0x74, 0x8a, 0xde, 0x0b, 0x4d, 0xdc, 0xc5, 0x17, 0xb0, 0x53, 0xc4,
+	0x94, 0x2b, 0x4d, 0x44, 0xf9, 0x0c, 0x3a, 0xc9, 0xf9, 0x0e, 0x9d, 0xd0, 0xf1, 0x69, 0x4c, 0x43,
+	0x14, 0xa1, 0xf2, 0x91, 0x3e, 0xf0, 0xdb, 0xc0, 0x3e, 0xf1, 0x25, 0x08, 0xd7, 0x8e, 0xb7, 0xcc,
+	0xd6, 0x49, 0x6a, 0xc8, 0xbf, 0x95, 0xa1, 0x9d, 0x48, 0xb3, 0xfb, 0xf4, 0xa1, 0x70, 0x55, 0x12,
+	0x79, 0xe7, 0x64, 0x8f, 0xdf, 0xc1, 0x1c, 0x3f, 0x4e, 0xae, 0x0f, 0x59, 0x11, 0x37, 0x7a, 0xa1,
+	0x7b, 0x50, 0x63, 0xcf, 0x6c, 0x19, 0xf1, 0xe7, 0xc9, 0x2d, 0xfc, 0x01, 0x20, 0xaf, 0x3b, 0x92,
+	0xaa, 0xc9, 0xb5, 0x7f, 0x55, 0x4c, 0x99, 0x7b, 0x49, 0x81, 0x28, 0xff, 0x5a, 0x86, 0xed, 0x6b,
+	0x1a, 0x46, 0x6e, 0x30, 0xe7, 0x09, 0x24, 0xa8, 0x7f, 0x4e, 0x01, 0xde, 0x77, 0x66, 0xb2, 0x27,
+	0x39, 0x5e, 0xba, 0xde, 0xd4, 0x72, 0xfd, 0x7c, 0x9d, 0xe6, 0x00, 0x7e, 0x09, 0x30, 0x09, 0x7c,
+	0xdf, 0x8d, 0x2f, 0x9d, 0xe8, 0x8e, 0x17, 0x57, 0x40, 0x98, 0x7a, 0xe6, 0xc6, 0xbc, 0xf6, 0x74,
+	0x71, 0xac, 0x00, 0xf9, 0x0c, 0x1a, 0x83, 0x60, 0x36, 0xa0, 0x9f, 0xa9, 0xc7, 0x66, 0xec, 0xb1,
+	0x0f, 0x9e, 0x3f, 0x35, 0x58, 0xe3, 0x13, 0xc7, 0xf3, 0xf8, 0x58, 0x1a, 0x84, 0x5b, 0xb2, 0x0a,
+	0x0d, 0x42, 0xa3, 0x45, 0x30, 0x8f, 0x28, 0x7e, 0x05, 0xad, 0x28, 0x89, 0x67, 0x4f, 0x82, 0x29,
+	0xe5, 0xbb, 0x0f, 0x52, 0xa8, 0x1b, 0x4c, 0x29, 0x6b, 0xce, 0xa7, 0x51, 0xe4, 0xcc, 0xb2, 0x06,
+	0x32, 0x53, 0x8e, 0xa0, 0xa5, 0xcd, 0xfc, 0x45, 0x76, 0x80, 0x6f, 0xa1, 0x66, 0xcc, 0x97, 0x84,
+	0x7e, 0x4a, 0x82, 0xb4, 0x4e, 0x76, 0x0b, 0x1b, 0x24, 0xa5, 0x10, 0x4e, 0xc0, 0x9f, 0xa0, 0x6d,
+	0x2e, 0xc7, 0xca, 0x24, 0x76, 0x83, 0xf9, 0xb5, 0xe3, 0x25, 0x81, 0x3b, 0xf9, 0xec, 0x73, 0x57,
+	0x7a, 0xda, 0x6b, 0x54, 0xb9, 0x0e, 0x82, 0xea, 0x2f, 0xe2, 0x87, 0x77, 0x6f, 0xa0, 0xb3, 0x4e,
+	0xc4, 0x06, 0x54, 0x7f, 0x31, 0x34, 0x5d, 0x2c, 0x61, 0x13, 0x84, 0x81, 0xaa, 0x5c, 0xab, 0x62,
+	0xf9, 0xe4, 0x77, 0x01, 0x84, 0xf3, 0x73, 0xd3, 0xf5, 0xf1, 0x3d, 0xd4, 0xf9, 0xb1, 0x61, 0x9b,
+	0x67, 0x4a, 0x22, 0xed, 0xbf, 0xe4, 0xd6, 0xda, 0xa1, 0xca, 0x25, 0x7c, 0x0d, 0xb5, 0x3e, 0x8d,
+	0xd9, 0xef, 0xdd, 0x3a, 0x3f, 0x5f, 0x8d, 0x5e, 0x2c, 0x97, 0xf0, 0x5b, 0x80, 0x61, 0x70, 0x4f,
+	0xc3, 0x60, 0xfe, 0x94, 0xb9, 0xc3, 0xad, 0x6c, 0xda, 0x72, 0x09, 0x8f, 0xa1, 0x65, 0xde, 0x2d,
+	0xe3, 0x69, 0x70, 0xbf, 0x19, 0xff, 0x1b, 0x68, 0x12, 0x3a, 0x0e, 0x82, 0x78, 0x23, 0xf6, 0xd7,
+	0x50, 0x67, 0x25, 0xb3, 0x7d, 0xbe, 0xce, 0x6d, 0xad, 0x0e, 0x23, 0x92, 0x4b, 0xec, 0xac, 0x52,
+	0x1e, 0x3e, 0x3d, 0xa5, 0xfd, 0xc2, 0xea, 0x97, 0x4b, 0xf8, 0x3d, 0xb4, 0x4c, 0x1a, 0xe7, 0x37,
+	0x2d, 0x4b, 0x9a, 0x01, 0xfb, 0x8f, 0x01, 0xb9, 0x84, 0xa7, 0x85, 0x1e, 0x9f, 0x4f, 0xf1, 0x4c,
+	0xe9, 0x27, 0xab, 0x39, 0x6e, 0xac, 0xf9, 0x00, 0x6d, 0x42, 0xa3, 0xd8, 0x09, 0x63, 0xd5, 0x59,
+	0x04, 0xde, 0x86, 0xaa, 0x53, 0x68, 0x71, 0x55, 0xef, 0x6e, 0xb2, 0xd8, 0x50, 0xf4, 0x33, 0xa0,
+	0x49, 0xe3, 0x64, 0x2d, 0x68, 0xf3, 0xa9, 0x3b, 0x71, 0xd8, 0xbd, 0xc3, 0x17, 0xc5, 0x75, 0xf1,
+	0x2f, 0xea, 0x33, 0xd8, 0xe9, 0xde, 0x39, 0xf3, 0x19, 0x65, 0x0f, 0x26, 0xfd, 0xcd, 0x47, 0xce,
+	0x2a, 0x3c, 0xa1, 0x67, 0x94, 0xe3, 0x5a, 0xf2, 0x2f, 0xdf, 0xe9, 0x3f, 0x01, 0x00, 0x00, 0xff,
+	0xff, 0xef, 0x83, 0x18, 0x5d, 0x0b, 0x0a, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -902,6 +981,7 @@
 	RestartEapol(ctx context.Context, in *ONURequest, opts ...grpc.CallOption) (*Response, error)
 	RestartDhcp(ctx context.Context, in *ONURequest, opts ...grpc.CallOption) (*Response, error)
 	SetAlarmIndication(ctx context.Context, in *AlarmRequest, opts ...grpc.CallOption) (*Response, error)
+	ChangeIgmpState(ctx context.Context, in *IgmpRequest, opts ...grpc.CallOption) (*Response, error)
 }
 
 type bBSimClient struct {
@@ -1029,6 +1109,15 @@
 	return out, nil
 }
 
+func (c *bBSimClient) ChangeIgmpState(ctx context.Context, in *IgmpRequest, opts ...grpc.CallOption) (*Response, error) {
+	out := new(Response)
+	err := c.cc.Invoke(ctx, "/bbsim.BBSim/ChangeIgmpState", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // BBSimServer is the server API for BBSim service.
 type BBSimServer interface {
 	Version(context.Context, *Empty) (*VersionNumber, error)
@@ -1044,6 +1133,7 @@
 	RestartEapol(context.Context, *ONURequest) (*Response, error)
 	RestartDhcp(context.Context, *ONURequest) (*Response, error)
 	SetAlarmIndication(context.Context, *AlarmRequest) (*Response, error)
+	ChangeIgmpState(context.Context, *IgmpRequest) (*Response, error)
 }
 
 // UnimplementedBBSimServer can be embedded to have forward compatible implementations.
@@ -1089,6 +1179,9 @@
 func (*UnimplementedBBSimServer) SetAlarmIndication(ctx context.Context, req *AlarmRequest) (*Response, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SetAlarmIndication not implemented")
 }
+func (*UnimplementedBBSimServer) ChangeIgmpState(ctx context.Context, req *IgmpRequest) (*Response, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ChangeIgmpState not implemented")
+}
 
 func RegisterBBSimServer(s *grpc.Server, srv BBSimServer) {
 	s.RegisterService(&_BBSim_serviceDesc, srv)
@@ -1328,6 +1421,24 @@
 	return interceptor(ctx, in, info, handler)
 }
 
+func _BBSim_ChangeIgmpState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(IgmpRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(BBSimServer).ChangeIgmpState(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/bbsim.BBSim/ChangeIgmpState",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(BBSimServer).ChangeIgmpState(ctx, req.(*IgmpRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 var _BBSim_serviceDesc = grpc.ServiceDesc{
 	ServiceName: "bbsim.BBSim",
 	HandlerType: (*BBSimServer)(nil),
@@ -1384,6 +1495,10 @@
 			MethodName: "SetAlarmIndication",
 			Handler:    _BBSim_SetAlarmIndication_Handler,
 		},
+		{
+			MethodName: "ChangeIgmpState",
+			Handler:    _BBSim_ChangeIgmpState_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "api/bbsim/bbsim.proto",
diff --git a/api/bbsim/bbsim.proto b/api/bbsim/bbsim.proto
index 3cd7336..86f9b48 100644
--- a/api/bbsim/bbsim.proto
+++ b/api/bbsim/bbsim.proto
@@ -123,6 +123,16 @@
     string message = 2;
 }
 
+enum SubActionTypes {
+    JOIN = 0;
+    LEAVE = 1;
+}
+
+message IgmpRequest {
+	ONURequest OnuReq = 1;
+	SubActionTypes SubActionVal = 2;
+}
+
 message Empty {}
 
 service BBSim {
@@ -139,4 +149,5 @@
     rpc RestartEapol (ONURequest) returns (Response) {}
     rpc RestartDhcp (ONURequest) returns (Response) {}
     rpc SetAlarmIndication (AlarmRequest) returns (Response) {}
-}
\ No newline at end of file
+    rpc ChangeIgmpState (IgmpRequest) returns (Response) {}
+}
