diff --git a/VERSION b/VERSION
index cd23180..0ead0c6 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.0.17
+0.0.17-dev
diff --git a/api/bbsim/bbsim.pb.go b/api/bbsim/bbsim.pb.go
index b63f5c7..41683e0 100644
--- a/api/bbsim/bbsim.pb.go
+++ b/api/bbsim/bbsim.pb.go
@@ -27,18 +27,21 @@
 type SubActionTypes int32
 
 const (
-	SubActionTypes_JOIN  SubActionTypes = 0
-	SubActionTypes_LEAVE SubActionTypes = 1
+	SubActionTypes_JOIN   SubActionTypes = 0
+	SubActionTypes_LEAVE  SubActionTypes = 1
+	SubActionTypes_JOINV3 SubActionTypes = 2
 )
 
 var SubActionTypes_name = map[int32]string{
 	0: "JOIN",
 	1: "LEAVE",
+	2: "JOINV3",
 }
 
 var SubActionTypes_value = map[string]int32{
-	"JOIN":  0,
-	"LEAVE": 1,
+	"JOIN":   0,
+	"LEAVE":  1,
+	"JOINV3": 2,
 }
 
 func (x SubActionTypes) String() string {
@@ -884,85 +887,85 @@
 func init() { proto.RegisterFile("api/bbsim/bbsim.proto", fileDescriptor_ef7750073d18011b) }
 
 var fileDescriptor_ef7750073d18011b = []byte{
-	// 1090 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcf, 0x6e, 0xdb, 0xc6,
-	0x13, 0x96, 0x2c, 0x51, 0x7f, 0x46, 0xb2, 0x4c, 0x4f, 0x12, 0xff, 0x08, 0xc3, 0xf8, 0xd5, 0x20,
-	0x92, 0xc2, 0x09, 0xda, 0xa4, 0x75, 0x5a, 0x34, 0x05, 0x7a, 0xa1, 0x25, 0x5a, 0x66, 0x23, 0x2f,
-	0x85, 0x25, 0x65, 0xc3, 0x27, 0x82, 0x92, 0x16, 0x32, 0x01, 0x52, 0x54, 0x48, 0x2a, 0x86, 0x1f,
-	0xa0, 0xcf, 0xd1, 0x27, 0xe9, 0x3b, 0xf4, 0xd2, 0x6b, 0xdf, 0xa3, 0xb7, 0x62, 0xc9, 0x25, 0x25,
-	0xd9, 0x46, 0x21, 0xf4, 0xd2, 0x8b, 0xb0, 0xf3, 0xcd, 0xf7, 0xcd, 0xce, 0xcc, 0xee, 0x0e, 0x05,
-	0x2f, 0xdc, 0x85, 0xf7, 0x6e, 0x3c, 0x8e, 0xbd, 0x20, 0xfb, 0x7d, 0xbb, 0x88, 0xc2, 0x24, 0x44,
-	0x29, 0x35, 0xd4, 0x1f, 0xa0, 0x3e, 0x34, 0xc9, 0x30, 0x8c, 0x12, 0xec, 0xc0, 0x8e, 0xd1, 0x53,
-	0xca, 0xc7, 0xe5, 0x13, 0x89, 0xee, 0x18, 0x3d, 0x3c, 0x82, 0xa6, 0xb9, 0x60, 0x91, 0x95, 0xb8,
-	0x09, 0x53, 0x76, 0x8e, 0xcb, 0x27, 0x4d, 0xba, 0x02, 0xb8, 0x90, 0x10, 0xe3, 0x5f, 0x08, 0xff,
-	0x28, 0x43, 0xc5, 0xf4, 0x1f, 0xab, 0x54, 0x68, 0x5b, 0x2c, 0xf2, 0x5c, 0x9f, 0x2c, 0x83, 0x31,
-	0x8b, 0x84, 0x70, 0x03, 0xdb, 0x8c, 0x5c, 0x79, 0x10, 0x19, 0x5f, 0xc2, 0xae, 0x31, 0x4f, 0x58,
-	0x34, 0x77, 0xfd, 0x8c, 0x51, 0x4d, 0x19, 0x9b, 0x20, 0xbe, 0x81, 0x86, 0x48, 0x3c, 0x56, 0xa4,
-	0xe3, 0xca, 0x49, 0xeb, 0xb4, 0xf3, 0x36, 0x6b, 0x8c, 0x80, 0x69, 0xe1, 0xe7, 0x5c, 0xd1, 0x9d,
-	0x58, 0xa9, 0x6d, 0x70, 0x05, 0x4c, 0x0b, 0xbf, 0xfa, 0x17, 0xaf, 0x8b, 0x8c, 0xfe, 0xb3, 0xba,
-	0x8e, 0xa0, 0x39, 0x0c, 0xe7, 0x3c, 0x17, 0xa3, 0xa7, 0x48, 0xe9, 0xf6, 0x2b, 0x00, 0x11, 0xaa,
-	0x96, 0xed, 0xce, 0x94, 0x5a, 0xea, 0x48, 0xd7, 0x1c, 0xeb, 0x72, 0xac, 0x9e, 0x61, 0x7c, 0xcd,
-	0xa3, 0x5c, 0xdc, 0x69, 0xd3, 0x69, 0xc4, 0xe2, 0x58, 0x69, 0x64, 0x99, 0x14, 0x00, 0x1e, 0x40,
-	0x8d, 0xc7, 0x23, 0xa1, 0xd2, 0x4c, 0x35, 0xc2, 0x52, 0x4f, 0xa0, 0x6a, 0x92, 0x51, 0x8c, 0xc7,
-	0x20, 0x79, 0x09, 0x0b, 0x62, 0xa5, 0x9c, 0x36, 0x0b, 0x44, 0xb3, 0x4c, 0x32, 0xa2, 0x99, 0x43,
-	0xfd, 0x06, 0x80, 0x5b, 0xec, 0xd3, 0x92, 0xc5, 0xc9, 0xa3, 0xde, 0x94, 0x1f, 0xf7, 0x46, 0xfd,
-	0xb3, 0x02, 0x4d, 0xcd, 0x77, 0xa3, 0xc0, 0xbe, 0x5f, 0x30, 0xf5, 0xf7, 0x0a, 0x48, 0x7c, 0x11,
-	0x63, 0x1d, 0x2a, 0x03, 0xd3, 0x92, 0x4b, 0xd8, 0x01, 0xe8, 0xdd, 0x18, 0xa4, 0xef, 0xf4, 0x35,
-	0x6b, 0x28, 0x97, 0x71, 0x17, 0x9a, 0x26, 0x19, 0x39, 0xda, 0x40, 0xa3, 0x97, 0xf2, 0x0e, 0xfe,
-	0x0f, 0x9e, 0x71, 0xd3, 0xb2, 0x35, 0x6a, 0x8f, 0x86, 0xce, 0xb9, 0x66, 0x0c, 0x46, 0x54, 0x97,
-	0x2b, 0x78, 0x00, 0x98, 0x3a, 0x8c, 0x3e, 0xd1, 0x06, 0x4e, 0x4f, 0xef, 0x53, 0xad, 0xa7, 0xcb,
-	0xd5, 0x5c, 0xd0, 0xa3, 0xc6, 0xb9, 0xed, 0x98, 0xe7, 0xce, 0xb5, 0x41, 0x7a, 0xe6, 0xb5, 0x2c,
-	0xe1, 0x11, 0x28, 0xdc, 0x31, 0x30, 0x2d, 0x8b, 0xe3, 0xe6, 0x65, 0xd7, 0x70, 0xba, 0x17, 0x1a,
-	0x21, 0xfa, 0x40, 0xae, 0x15, 0xfb, 0xa4, 0xe1, 0xac, 0x62, 0x9f, 0x3a, 0xbe, 0x86, 0x57, 0xdc,
-	0x61, 0x53, 0x8d, 0x58, 0x97, 0x86, 0x65, 0x19, 0x26, 0x71, 0x0c, 0x62, 0xeb, 0xf4, 0x5c, 0xa7,
-	0x3a, 0xe9, 0xea, 0xce, 0xb5, 0x46, 0x89, 0x41, 0xfa, 0x72, 0x03, 0x0f, 0xe1, 0x20, 0x4d, 0xbd,
-	0x6b, 0x1b, 0x57, 0x9a, 0xcd, 0x89, 0x79, 0x98, 0x26, 0x2a, 0xf0, 0x9c, 0xfb, 0x86, 0xd4, 0xec,
-	0xea, 0x96, 0xc5, 0xeb, 0xd5, 0x29, 0x35, 0xa9, 0x0c, 0x78, 0x0c, 0x47, 0xeb, 0x79, 0x7d, 0xd4,
-	0x6f, 0x1c, 0xeb, 0x86, 0x74, 0x0b, 0x6d, 0x0b, 0x5f, 0xc0, 0x3e, 0x67, 0x18, 0xf6, 0xc8, 0x19,
-	0x9a, 0x84, 0xf7, 0xc2, 0xb6, 0xe4, 0x36, 0xee, 0xc3, 0x6e, 0xd1, 0x29, 0x2e, 0x97, 0x77, 0x1f,
-	0x42, 0x67, 0x72, 0x27, 0x2f, 0x2c, 0x87, 0x86, 0x5d, 0x87, 0x57, 0x21, 0xef, 0xe5, 0xfd, 0xd8,
-	0x70, 0x74, 0x45, 0x56, 0x32, 0x22, 0x74, 0xd6, 0xbd, 0xe7, 0x86, 0xbc, 0x8f, 0xcf, 0x60, 0x6f,
-	0x1d, 0xd3, 0x2e, 0x0d, 0x19, 0xd5, 0x0f, 0xd0, 0x49, 0xcf, 0x77, 0xe8, 0x46, 0x6e, 0xc0, 0x12,
-	0x16, 0xa1, 0x0c, 0x95, 0x8f, 0xec, 0x5e, 0xdc, 0x06, 0xbe, 0xc4, 0xe7, 0x20, 0x5d, 0xb9, 0xfe,
-	0x32, 0x1f, 0x27, 0x99, 0xa1, 0xfe, 0x5a, 0x86, 0x76, 0x2a, 0xcd, 0xef, 0xd3, 0xd1, 0xda, 0x55,
-	0x11, 0xf2, 0x15, 0xb0, 0xd5, 0x4b, 0x3c, 0x80, 0x1a, 0x7f, 0x4e, 0xcb, 0x58, 0x3c, 0x43, 0x61,
-	0xe1, 0xf7, 0x00, 0x45, 0x7e, 0xb1, 0x52, 0x4d, 0xaf, 0xf7, 0x0b, 0x71, 0xbd, 0x37, 0xb3, 0xa7,
-	0x6b, 0x44, 0xf5, 0x97, 0x32, 0xec, 0x5e, 0xb1, 0x28, 0xf6, 0xc2, 0xb9, 0xd8, 0x40, 0x81, 0xfa,
-	0xe7, 0x0c, 0x10, 0x09, 0xe6, 0x26, 0x4f, 0x7e, 0xbc, 0xf4, 0xfc, 0xa9, 0xed, 0x05, 0xc5, 0xd8,
-	0x2c, 0x00, 0xfc, 0x3f, 0xc0, 0x24, 0x0c, 0x02, 0x2f, 0xb9, 0x70, 0xe3, 0x5b, 0x91, 0xdc, 0x1a,
-	0xc2, 0xd5, 0x33, 0x2f, 0x11, 0xb9, 0x67, 0x03, 0x62, 0x05, 0xa8, 0x1f, 0xa0, 0x31, 0x08, 0x67,
-	0x03, 0xf6, 0x99, 0xf9, 0xbc, 0x97, 0x3e, 0x5f, 0x88, 0xfd, 0x33, 0x83, 0x17, 0x3e, 0x71, 0x7d,
-	0x5f, 0xb4, 0xa5, 0x41, 0x85, 0xa5, 0xea, 0xd0, 0xa0, 0x2c, 0x5e, 0x84, 0xf3, 0x98, 0xe1, 0x17,
-	0xd0, 0x8a, 0xd3, 0x78, 0xce, 0x24, 0x9c, 0x32, 0x31, 0xe3, 0x20, 0x83, 0xba, 0xe1, 0x94, 0xf1,
-	0xe2, 0x02, 0x16, 0xc7, 0xee, 0x2c, 0x2f, 0x20, 0x37, 0xd5, 0x18, 0x5a, 0xc6, 0x2c, 0x58, 0xe4,
-	0x07, 0xf5, 0x1a, 0x6a, 0xe6, 0x7c, 0x49, 0xd9, 0xa7, 0x34, 0x48, 0xeb, 0x74, 0x7f, 0x6d, 0x52,
-	0x64, 0x14, 0x2a, 0x08, 0xf8, 0x23, 0xb4, 0xad, 0xe5, 0x58, 0x9b, 0x24, 0x5e, 0x38, 0xbf, 0x72,
-	0xfd, 0x34, 0x70, 0xa7, 0xe8, 0x7d, 0xe1, 0x4a, 0x87, 0x02, 0xdd, 0xa0, 0xaa, 0x75, 0x90, 0xf4,
-	0x60, 0x91, 0xdc, 0xbf, 0x79, 0x05, 0x9d, 0x4d, 0x22, 0x36, 0xa0, 0xfa, 0xb3, 0x69, 0x10, 0xb9,
-	0x84, 0x4d, 0x90, 0x06, 0xba, 0x76, 0xa5, 0xcb, 0xe5, 0xd3, 0xdf, 0x24, 0x90, 0xce, 0xce, 0x2c,
-	0x2f, 0xc0, 0x77, 0x50, 0x17, 0xc7, 0x86, 0x6d, 0xb1, 0x53, 0x1a, 0xe9, 0xf0, 0xb9, 0xb0, 0x36,
-	0x0e, 0x55, 0x2d, 0xe1, 0x4b, 0xa8, 0xf5, 0x59, 0xc2, 0xbf, 0x6b, 0x9b, 0xfc, 0x62, 0x04, 0xfa,
-	0x89, 0x5a, 0xc2, 0xaf, 0x01, 0x86, 0xe1, 0x1d, 0x8b, 0xc2, 0xf9, 0x63, 0xe6, 0x9e, 0xb0, 0xf2,
-	0x6e, 0xab, 0x25, 0x7c, 0x0b, 0x2d, 0xeb, 0x76, 0x99, 0x4c, 0xc3, 0xbb, 0xed, 0xf8, 0x5f, 0x41,
-	0x93, 0xb2, 0x71, 0x18, 0x26, 0x5b, 0xb1, 0xbf, 0x84, 0x3a, 0x4f, 0x99, 0xcf, 0xed, 0x4d, 0x6e,
-	0x6b, 0x75, 0x18, 0xb1, 0x5a, 0xe2, 0x67, 0x95, 0xf1, 0xf0, 0xf1, 0x29, 0x1d, 0xae, 0x8d, 0x78,
-	0xb5, 0x84, 0xdf, 0x42, 0xcb, 0x62, 0x49, 0x71, 0xd3, 0xf2, 0x4d, 0x73, 0xe0, 0xf0, 0x21, 0xa0,
-	0x96, 0xf0, 0xfd, 0x5a, 0x8d, 0x4f, 0x6f, 0xf1, 0x44, 0xea, 0xa7, 0xab, 0x3e, 0x6e, 0xad, 0xf9,
-	0x0e, 0xda, 0x94, 0xc5, 0x89, 0x1b, 0x25, 0xba, 0xbb, 0x08, 0xfd, 0x2d, 0x55, 0xef, 0xa1, 0x25,
-	0x54, 0xbd, 0xdb, 0xc9, 0x62, 0x4b, 0xd1, 0x4f, 0x80, 0x16, 0x4b, 0xd2, 0xb1, 0x60, 0xcc, 0xa7,
-	0xde, 0xc4, 0xe5, 0xf7, 0x0e, 0x9f, 0xad, 0x8f, 0x8b, 0x7f, 0x50, 0x7f, 0x80, 0xbd, 0xee, 0xad,
-	0x3b, 0x9f, 0x31, 0xfe, 0x60, 0xb2, 0x6f, 0x3b, 0x0a, 0xd6, 0xda, 0x13, 0x7a, 0x42, 0x39, 0xae,
-	0xa5, 0x7f, 0xed, 0xde, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x89, 0x62, 0x0e, 0x33, 0xf3, 0x09,
-	0x00, 0x00,
+	// 1097 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xdf, 0x6e, 0xea, 0xc6,
+	0x13, 0x86, 0x80, 0xf9, 0x33, 0x10, 0xe2, 0x4c, 0xfe, 0xfc, 0xac, 0x28, 0xfa, 0x35, 0xb2, 0x4e,
+	0xab, 0x9c, 0xa3, 0x36, 0xa7, 0x27, 0x69, 0xd5, 0x54, 0xea, 0x8d, 0x03, 0x0e, 0x71, 0x0f, 0xb1,
+	0xd1, 0xda, 0x10, 0xe5, 0xca, 0x32, 0xb0, 0x22, 0x96, 0x6c, 0xcc, 0xb1, 0xcd, 0x89, 0xf2, 0x00,
+	0x7d, 0x8e, 0x3e, 0x49, 0xdf, 0xa1, 0x37, 0xbd, 0xed, 0x7b, 0xf4, 0xae, 0x5a, 0x7b, 0x6d, 0x20,
+	0x89, 0x2a, 0xd4, 0x9b, 0xde, 0xa0, 0x9d, 0x6f, 0xbe, 0x6f, 0x76, 0x66, 0x76, 0x77, 0x0c, 0x1c,
+	0x38, 0x73, 0xf7, 0xfd, 0x68, 0x14, 0xb9, 0x7e, 0xfa, 0x7b, 0x36, 0x0f, 0x83, 0x38, 0x40, 0x21,
+	0x31, 0xe4, 0x1f, 0xa0, 0xda, 0x37, 0xf4, 0x7e, 0x10, 0xc6, 0xd8, 0x82, 0x2d, 0xad, 0x23, 0x15,
+	0x4f, 0x8a, 0xa7, 0x02, 0xd9, 0xd2, 0x3a, 0x78, 0x0c, 0x75, 0x63, 0x4e, 0x43, 0x33, 0x76, 0x62,
+	0x2a, 0x6d, 0x9d, 0x14, 0x4f, 0xeb, 0x64, 0x09, 0x30, 0xa1, 0xae, 0x6b, 0xff, 0x42, 0xf8, 0x47,
+	0x11, 0x4a, 0x86, 0xf7, 0x52, 0x25, 0x43, 0xd3, 0xa4, 0xa1, 0xeb, 0x78, 0xfa, 0xc2, 0x1f, 0xd1,
+	0x90, 0x0b, 0xd7, 0xb0, 0xf5, 0xc8, 0xa5, 0x67, 0x91, 0xf1, 0x0d, 0x6c, 0x6b, 0xb3, 0x98, 0x86,
+	0x33, 0xc7, 0x4b, 0x19, 0xe5, 0x84, 0xb1, 0x0e, 0xe2, 0x3b, 0xa8, 0xf1, 0xc4, 0x23, 0x49, 0x38,
+	0x29, 0x9d, 0x36, 0xce, 0x5b, 0x67, 0x69, 0x63, 0x38, 0x4c, 0x72, 0x3f, 0xe3, 0xf2, 0xee, 0x44,
+	0x52, 0x65, 0x8d, 0xcb, 0x61, 0x92, 0xfb, 0xe5, 0xbf, 0x58, 0x5d, 0xfa, 0xe0, 0x3f, 0xab, 0xeb,
+	0x18, 0xea, 0xfd, 0x60, 0xc6, 0x72, 0xd1, 0x3a, 0x92, 0x90, 0x6c, 0xbf, 0x04, 0x10, 0xa1, 0x6c,
+	0x5a, 0xce, 0x54, 0xaa, 0x24, 0x8e, 0x64, 0xcd, 0xb0, 0x36, 0xc3, 0xaa, 0x29, 0xc6, 0xd6, 0x2c,
+	0xca, 0xcd, 0xa3, 0x32, 0x99, 0x84, 0x34, 0x8a, 0xa4, 0x5a, 0x9a, 0x49, 0x0e, 0xe0, 0x21, 0x54,
+	0x58, 0x3c, 0x3d, 0x90, 0xea, 0x89, 0x86, 0x5b, 0xf2, 0x29, 0x94, 0x0d, 0x7d, 0x10, 0xe1, 0x09,
+	0x08, 0x6e, 0x4c, 0xfd, 0x48, 0x2a, 0x26, 0xcd, 0x02, 0xde, 0x2c, 0x43, 0x1f, 0x90, 0xd4, 0x21,
+	0x7f, 0x0b, 0xc0, 0x2c, 0xfa, 0x69, 0x41, 0xa3, 0xf8, 0x45, 0x6f, 0x8a, 0x2f, 0x7b, 0x23, 0xff,
+	0x59, 0x82, 0xba, 0xe2, 0x39, 0xa1, 0x6f, 0x3d, 0xcd, 0xa9, 0xfc, 0x7b, 0x09, 0x04, 0xb6, 0x88,
+	0xb0, 0x0a, 0xa5, 0x9e, 0x61, 0x8a, 0x05, 0x6c, 0x01, 0x74, 0xee, 0x35, 0xbd, 0x6b, 0x77, 0x15,
+	0xb3, 0x2f, 0x16, 0x71, 0x1b, 0xea, 0x86, 0x3e, 0xb0, 0x95, 0x9e, 0x42, 0x6e, 0xc5, 0x2d, 0xfc,
+	0x1f, 0xec, 0x31, 0xd3, 0xb4, 0x14, 0x62, 0x0d, 0xfa, 0xf6, 0xb5, 0xa2, 0xf5, 0x06, 0x44, 0x15,
+	0x4b, 0x78, 0x08, 0x98, 0x38, 0xb4, 0xae, 0xae, 0xf4, 0xec, 0x8e, 0xda, 0x25, 0x4a, 0x47, 0x15,
+	0xcb, 0x99, 0xa0, 0x43, 0xb4, 0x6b, 0xcb, 0x36, 0xae, 0xed, 0x3b, 0x4d, 0xef, 0x18, 0x77, 0xa2,
+	0x80, 0xc7, 0x20, 0x31, 0x47, 0xcf, 0x30, 0x4d, 0x86, 0x1b, 0xb7, 0x6d, 0xcd, 0x6e, 0xdf, 0x28,
+	0xba, 0xae, 0xf6, 0xc4, 0x4a, 0xbe, 0x4f, 0x12, 0xce, 0xcc, 0xf7, 0xa9, 0xe2, 0x5b, 0xf8, 0x92,
+	0x39, 0x2c, 0xa2, 0xe8, 0xe6, 0xad, 0x66, 0x9a, 0x9a, 0xa1, 0xdb, 0x9a, 0x6e, 0xa9, 0xe4, 0x5a,
+	0x25, 0xaa, 0xde, 0x56, 0xed, 0x3b, 0x85, 0xe8, 0x9a, 0xde, 0x15, 0x6b, 0x78, 0x04, 0x87, 0x49,
+	0xea, 0x6d, 0x4b, 0x1b, 0x2a, 0x16, 0x23, 0x66, 0x61, 0xea, 0x28, 0xc1, 0x3e, 0xf3, 0xf5, 0x89,
+	0xd1, 0x56, 0x4d, 0x93, 0xd5, 0xab, 0x12, 0x62, 0x10, 0x11, 0xf0, 0x04, 0x8e, 0x57, 0xf3, 0xfa,
+	0xa8, 0xde, 0xdb, 0xe6, 0xbd, 0xde, 0xce, 0xb5, 0x0d, 0x3c, 0x80, 0x5d, 0xc6, 0xd0, 0xac, 0x81,
+	0xdd, 0x37, 0x74, 0xd6, 0x0b, 0xcb, 0x14, 0x9b, 0xb8, 0x0b, 0xdb, 0x79, 0xa7, 0x98, 0x5c, 0xdc,
+	0x7e, 0x0e, 0x5d, 0x89, 0xad, 0xac, 0xb0, 0x0c, 0xea, 0xb7, 0x6d, 0x56, 0x85, 0xb8, 0x93, 0xf5,
+	0x63, 0xcd, 0xd1, 0xe6, 0x59, 0x89, 0x88, 0xd0, 0x5a, 0xf5, 0x5e, 0x6b, 0xe2, 0x2e, 0xee, 0xc1,
+	0xce, 0x2a, 0xa6, 0xdc, 0x6a, 0x22, 0xca, 0x97, 0xd0, 0x4a, 0xce, 0xb7, 0xef, 0x84, 0x8e, 0x4f,
+	0x63, 0x1a, 0xa2, 0x08, 0xa5, 0x8f, 0xf4, 0x89, 0xdf, 0x06, 0xb6, 0xc4, 0x7d, 0x10, 0x86, 0x8e,
+	0xb7, 0xc8, 0xc6, 0x49, 0x6a, 0xc8, 0xbf, 0x16, 0xa1, 0x99, 0x48, 0xb3, 0xfb, 0x74, 0xbc, 0x72,
+	0x55, 0xb8, 0x7c, 0x09, 0x6c, 0xf4, 0x12, 0x0f, 0xa1, 0xc2, 0x9e, 0xd3, 0x22, 0xe2, 0xcf, 0x90,
+	0x5b, 0xf8, 0x3d, 0x40, 0x9e, 0x5f, 0x24, 0x95, 0x93, 0xeb, 0x7d, 0xc0, 0xaf, 0xf7, 0x7a, 0xf6,
+	0x64, 0x85, 0x28, 0xff, 0x52, 0x84, 0xed, 0x21, 0x0d, 0x23, 0x37, 0x98, 0xf1, 0x0d, 0x24, 0xa8,
+	0x7e, 0x4e, 0x01, 0x9e, 0x60, 0x66, 0xb2, 0xe4, 0x47, 0x0b, 0xd7, 0x9b, 0x58, 0xae, 0x9f, 0x8f,
+	0xcd, 0x1c, 0xc0, 0xff, 0x03, 0x8c, 0x03, 0xdf, 0x77, 0xe3, 0x1b, 0x27, 0x7a, 0xe0, 0xc9, 0xad,
+	0x20, 0x4c, 0x3d, 0x75, 0x63, 0x9e, 0x7b, 0x3a, 0x20, 0x96, 0x80, 0x7c, 0x09, 0xb5, 0x5e, 0x30,
+	0xed, 0xd1, 0xcf, 0xd4, 0x63, 0xbd, 0xf4, 0xd8, 0x82, 0xef, 0x9f, 0x1a, 0xac, 0xf0, 0xb1, 0xe3,
+	0x79, 0xbc, 0x2d, 0x35, 0xc2, 0x2d, 0x59, 0x85, 0x1a, 0xa1, 0xd1, 0x3c, 0x98, 0x45, 0x14, 0xbf,
+	0x80, 0x46, 0x94, 0xc4, 0xb3, 0xc7, 0xc1, 0x84, 0xf2, 0x19, 0x07, 0x29, 0xd4, 0x0e, 0x26, 0x94,
+	0x15, 0xe7, 0xd3, 0x28, 0x72, 0xa6, 0x59, 0x01, 0x99, 0x29, 0x47, 0xd0, 0xd0, 0xa6, 0xfe, 0x3c,
+	0x3b, 0xa8, 0xb7, 0x50, 0x31, 0x66, 0x0b, 0x42, 0x3f, 0x25, 0x41, 0x1a, 0xe7, 0xbb, 0x2b, 0x93,
+	0x22, 0xa5, 0x10, 0x4e, 0xc0, 0x1f, 0xa1, 0x69, 0x2e, 0x46, 0xca, 0x38, 0x76, 0x83, 0xd9, 0xd0,
+	0xf1, 0x92, 0xc0, 0xad, 0xbc, 0xf7, 0xb9, 0x2b, 0x19, 0x0a, 0x64, 0x8d, 0x2a, 0x57, 0x41, 0x50,
+	0xfd, 0x79, 0xfc, 0xf4, 0xee, 0x03, 0xb4, 0xd6, 0x89, 0x58, 0x83, 0xf2, 0xcf, 0x86, 0xa6, 0x8b,
+	0x05, 0xac, 0x83, 0xd0, 0x53, 0x95, 0xa1, 0x2a, 0x16, 0x11, 0xa0, 0xc2, 0xc0, 0xe1, 0x85, 0xb8,
+	0x75, 0xfe, 0x9b, 0x00, 0xc2, 0xd5, 0x95, 0xe9, 0xfa, 0xf8, 0x1e, 0xaa, 0xfc, 0x08, 0xb1, 0xc9,
+	0x77, 0x4d, 0xa2, 0x1e, 0xed, 0x73, 0x6b, 0xed, 0x80, 0xe5, 0x02, 0xbe, 0x81, 0x4a, 0x97, 0xc6,
+	0xec, 0x1b, 0xb7, 0xce, 0xcf, 0xc7, 0xa1, 0x17, 0xcb, 0x05, 0xfc, 0x06, 0xa0, 0x1f, 0x3c, 0xd2,
+	0x30, 0x98, 0xbd, 0x64, 0xee, 0x70, 0x2b, 0xeb, 0xbc, 0x5c, 0xc0, 0x33, 0x68, 0x98, 0x0f, 0x8b,
+	0x78, 0x12, 0x3c, 0x6e, 0xc6, 0xff, 0x1a, 0xea, 0x84, 0x8e, 0x82, 0x20, 0xde, 0x88, 0xfd, 0x15,
+	0x54, 0x59, 0xca, 0x6c, 0x86, 0xaf, 0x73, 0x1b, 0xcb, 0x83, 0x89, 0xe4, 0x02, 0x3b, 0xb7, 0x94,
+	0x87, 0x2f, 0x4f, 0xec, 0x68, 0x65, 0xdc, 0xcb, 0x05, 0xfc, 0x00, 0x0d, 0x93, 0xc6, 0xf9, 0xad,
+	0xcb, 0x36, 0xcd, 0x80, 0xa3, 0xe7, 0x80, 0x5c, 0xc0, 0x8b, 0x95, 0x1a, 0x5f, 0xdf, 0xe2, 0x95,
+	0xd4, 0xcf, 0x97, 0x7d, 0xdc, 0x58, 0xf3, 0x1d, 0x34, 0x09, 0x8d, 0x62, 0x27, 0x8c, 0x55, 0x67,
+	0x1e, 0x78, 0x1b, 0xaa, 0x2e, 0xa0, 0xc1, 0x55, 0x9d, 0x87, 0xf1, 0x7c, 0x43, 0xd1, 0x4f, 0x80,
+	0x26, 0x8d, 0x93, 0x11, 0xa1, 0xcd, 0x26, 0xee, 0xd8, 0x61, 0x77, 0x10, 0xf7, 0x56, 0x47, 0xc7,
+	0x3f, 0xa8, 0x2f, 0x61, 0xa7, 0xfd, 0xe0, 0xcc, 0xa6, 0x94, 0x3d, 0x9e, 0xf4, 0x3b, 0x8f, 0x9c,
+	0xb5, 0xf2, 0x9c, 0x5e, 0x51, 0x8e, 0x2a, 0xc9, 0xdf, 0xbc, 0x8b, 0xbf, 0x03, 0x00, 0x00, 0xff,
+	0xff, 0x8d, 0xb6, 0x31, 0x2d, 0xff, 0x09, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
 var _ context.Context
-var _ grpc.ClientConnInterface
+var _ grpc.ClientConn
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion6
+const _ = grpc.SupportPackageIsVersion4
 
 // BBSimClient is the client API for BBSim service.
 //
@@ -985,10 +988,10 @@
 }
 
 type bBSimClient struct {
-	cc grpc.ClientConnInterface
+	cc *grpc.ClientConn
 }
 
-func NewBBSimClient(cc grpc.ClientConnInterface) BBSimClient {
+func NewBBSimClient(cc *grpc.ClientConn) BBSimClient {
 	return &bBSimClient{cc}
 }
 
diff --git a/api/bbsim/bbsim.proto b/api/bbsim/bbsim.proto
index 8fff209..a448b3b 100644
--- a/api/bbsim/bbsim.proto
+++ b/api/bbsim/bbsim.proto
@@ -126,6 +126,7 @@
 enum SubActionTypes {
     JOIN = 0;
     LEAVE = 1;
+    JOINV3 = 2;
 }
 
 message IgmpRequest {
diff --git a/internal/bbsim/api/onus_handler.go b/internal/bbsim/api/onus_handler.go
index 7ec4ab3..2c16872 100644
--- a/internal/bbsim/api/onus_handler.go
+++ b/internal/bbsim/api/onus_handler.go
@@ -209,6 +209,8 @@
 			event = "igmp_join_start"
 		case bbsim.SubActionTypes_LEAVE:
 			event = "igmp_leave"
+                case bbsim.SubActionTypes_JOINV3:
+                        event = "igmp_join_startv3"
 		}
 
 		if igmpErr := onu.InternalState.Event(event); igmpErr != nil {
diff --git a/internal/bbsim/devices/messageTypes.go b/internal/bbsim/devices/messageTypes.go
index 94c0731..31a09c5 100644
--- a/internal/bbsim/devices/messageTypes.go
+++ b/internal/bbsim/devices/messageTypes.go
@@ -48,6 +48,7 @@
 	IGMPLeaveGroup         MessageType = 16 // Leave Group
 
 	AlarmIndication MessageType = 17 // message data is an openolt.AlarmIndication
+        IGMPMembershipReportV3 MessageType = 18// Version 3 Membership Report
 )
 
 func (m MessageType) String() string {
@@ -69,6 +70,7 @@
 		"OnuPacketIn",
 		"IGMPMembershipReportV2",
 		"IGMPLeaveGroup",
+                "IGMPMembershipReportV3",
 	}
 	return names[m]
 }
diff --git a/internal/bbsim/devices/onu.go b/internal/bbsim/devices/onu.go
index a45ec8a..3415083 100644
--- a/internal/bbsim/devices/onu.go
+++ b/internal/bbsim/devices/onu.go
@@ -143,6 +143,7 @@
 			{Name: "send_dhcp_flow", Src: []string{"eapol_flow_sent"}, Dst: "dhcp_flow_sent"},
 			// IGMP
 			{Name: "igmp_join_start", Src: []string{"eap_response_success_received", "gem_port_added", "eapol_flow_received", "dhcp_ack_received", "igmp_left", "igmp_join_error"}, Dst: "igmp_join_started"},
+			{Name: "igmp_join_startv3", Src: []string{"eap_response_success_received", "gem_port_added", "eapol_flow_received", "dhcp_ack_received", "igmp_left", "igmp_join_error"}, Dst: "igmp_join_started"},
 			{Name: "igmp_join_error", Src: []string{"igmp_join_started"}, Dst: "igmp_join_error"},
 			{Name: "igmp_leave", Src: []string{"igmp_join_started", "gem_port_added", "eapol_flow_received", "eap_response_success_received", "dhcp_ack_received"}, Dst: "igmp_left"},
 		},
@@ -255,6 +256,12 @@
 					Type: IGMPLeaveGroup}
 				o.Channel <- msg
 			},
+                        "igmp_join_startv3": func(e *fsm.Event) {
+                                msg := Message{
+                                        Type: IGMPMembershipReportV3,
+                                }
+                                o.Channel <- msg
+                        },
 		},
 	)
 
@@ -372,6 +379,9 @@
 			case IGMPLeaveGroup:
 				log.Infof("Recieved IGMPLeaveGroupV2 message on ONU channel")
 				igmp.SendIGMPLeaveGroupV2(o.PonPortID, o.ID, o.Sn(), o.PortNo, o.HwAddress, stream)
+                        case IGMPMembershipReportV3:
+                                log.Infof("Recieved IGMPMembershipReportV3 message on ONU channel")
+                                igmp.SendIGMPMembershipReportV3(o.PonPortID, o.ID, o.Sn(), o.PortNo, o.HwAddress, stream)
 			default:
 				onuLogger.Warnf("Received unknown message data %v for type %v in OLT Channel", message.Data, message.Type)
 			}
diff --git a/internal/bbsim/responders/igmp/igmp.go b/internal/bbsim/responders/igmp/igmp.go
index e5c1ad2..a57810e 100644
--- a/internal/bbsim/responders/igmp/igmp.go
+++ b/internal/bbsim/responders/igmp/igmp.go
@@ -127,6 +127,89 @@
 	return nil
 }
 
+func SendIGMPMembershipReportV3(ponPortId uint32, onuId uint32, serialNumber string, portNo uint32, macAddress net.HardwareAddr, stream bbsim.Stream) error {
+       log.WithFields(log.Fields{
+               "OnuId": onuId,
+               "SerialNumber": serialNumber,
+               "PortNo": portNo,
+    }).Debugf("Entered SendIGMPMembershipReportV3")
+    igmp := createIGMPV3MembershipReportPacket()
+       pkt, err := serializeIgmpPacket(ponPortId, onuId, macAddress, igmp)
+
+       if err != nil {
+               log.WithFields(log.Fields{
+                        "OnuId":  onuId,
+                        "IntfId": ponPortId,
+                        "SerialNumber": serialNumber,
+                }).Errorf("Seriliazation of igmp packet failed :  %s", err)
+                return err
+       }
+
+       gemid, err := omci.GetGemPortId(ponPortId, onuId)
+       if err != nil {
+               log.WithFields(log.Fields{
+                       "OnuId":  onuId,
+                       "IntfId": ponPortId,
+                        "SerialNumber": serialNumber,
+               }).Errorf("Can't retrieve GemPortId for IGMP: %s", err)
+               return err
+       }
+
+       data := &openolt.Indication_PktInd{
+               PktInd: &openolt.PacketIndication{
+                       IntfType:  "pon",
+                       IntfId:    ponPortId,
+                       GemportId: uint32(gemid),
+                       Pkt:       pkt,
+                       PortNo:    portNo,
+               },
+       }
+        //Sending IGMP packets
+        if err := stream.Send(&openolt.Indication{Data: data}); err != nil {
+                log.Errorf("Fail to send IGMP PktInd indication for ONU: %s, IntfId: %s, SerialNumber: %s,  error: %v", onuId, ponPortId, serialNumber, err)
+                return err
+        }
+        return nil
+}
+
+func createIGMPV3MembershipReportPacket() IGMP {
+
+       groupRecord1:= IGMPv3GroupRecord{
+           Type:             IGMPv3GroupRecordType(IGMPIsIn),
+           AuxDataLen:       0, // this should always be 0 as per IGMPv3 spec.
+           NumberOfSources:  3,
+           MulticastAddress: net.IPv4(224, 0, 0, 22),
+           SourceAddresses:  []net.IP{net.IPv4(15, 14, 20, 24), net.IPv4(15, 14, 20, 26), net.IPv4(15, 14, 20, 25)},
+           AuxData:          0, // NOT USED
+       }
+
+       groupRecord2:= IGMPv3GroupRecord{
+           Type:             IGMPv3GroupRecordType(IGMPIsIn),
+           AuxDataLen:       0, // this should always be 0 as per IGMPv3 spec.
+           NumberOfSources:  2,
+           MulticastAddress: net.IPv4(224, 0, 0, 25),
+           SourceAddresses:  []net.IP{net.IPv4(15, 14, 20, 30), net.IPv4(15, 14, 20, 31)},
+           AuxData:          0, // NOT USED
+       }
+
+       igmpDefault := IGMP{
+               Type:                    0x22, //IGMPV3 Membership Report
+               MaxResponseTime:         time.Duration(1),
+               Checksum:                0,
+               GroupAddress:            net.IPv4(224, 0, 0, 22),
+               SupressRouterProcessing: false,
+               RobustnessValue:         0,
+               IntervalTime:            time.Duration(1),
+               SourceAddresses:         []net.IP{net.IPv4(224, 0, 0, 24)},
+               NumberOfGroupRecords:    2,
+               NumberOfSources:         1,
+               GroupRecords:            []IGMPv3GroupRecord{groupRecord1, groupRecord2},
+               Version:                 3,
+       }
+
+       return igmpDefault
+}
+
 //func serializeIgmpPacket(intfId uint32, onuId uint32, srcMac net.HardwareAddr, igmp *layers.IGMP) ([]byte, error) {
 func createIGMPV2MembershipReportPacket() IGMP {
 	return IGMP{
@@ -207,34 +290,96 @@
 	SourceAddresses         []net.IP
 	NumberOfGroupRecords    uint16
 	NumberOfSources         uint16
+        GroupRecords            []IGMPv3GroupRecord
 	Version                 uint8 // IGMP protocol version
 }
 
+// IGMPv3GroupRecord stores individual group records for a V3 Membership Report message.
+type IGMPv3GroupRecord struct {
+       Type             IGMPv3GroupRecordType
+       AuxDataLen       uint8 // this should always be 0 as per IGMPv3 spec.
+       NumberOfSources  uint16
+       MulticastAddress net.IP
+       SourceAddresses  []net.IP
+       AuxData          uint32 // NOT USED
+}
+
+type IGMPv3GroupRecordType uint8
+
+const (
+       IGMPIsIn  IGMPv3GroupRecordType = 0x01 // Type MODE_IS_INCLUDE, source addresses x
+       IGMPIsEx  IGMPv3GroupRecordType = 0x02 // Type MODE_IS_EXCLUDE, source addresses x
+       IGMPToIn  IGMPv3GroupRecordType = 0x03 // Type CHANGE_TO_INCLUDE_MODE, source addresses x
+       IGMPToEx  IGMPv3GroupRecordType = 0x04 // Type CHANGE_TO_EXCLUDE_MODE, source addresses x
+       IGMPAllow IGMPv3GroupRecordType = 0x05 // Type ALLOW_NEW_SOURCES, source addresses x
+       IGMPBlock IGMPv3GroupRecordType = 0x06 // Type BLOCK_OLD_SOURCES, source addresses x
+)
+
+func (i IGMPv3GroupRecordType) String() string {
+       switch i {
+       case IGMPIsIn:
+               return "MODE_IS_INCLUDE"
+       case IGMPIsEx:
+               return "MODE_IS_EXCLUDE"
+       case IGMPToIn:
+               return "CHANGE_TO_INCLUDE_MODE"
+       case IGMPToEx:
+               return "CHANGE_TO_EXCLUDE_MODE"
+       case IGMPAllow:
+               return "ALLOW_NEW_SOURCES"
+       case IGMPBlock:
+               return "BLOCK_OLD_SOURCES"
+       default:
+               return ""
+       }
+}
+
 // SerializeTo writes the serialized form of this layer into the
 // SerializationBuffer, implementing gopacket.SerializableLayer.
 // See the docs for gopacket.SerializableLayer for more info.
-// SerializeTo writes the serialized form of this layer into the
-// SerializationBuffer, implementing gopacket.SerializableLayer.
-// See the docs for gopacket.SerializableLayer for more info.
 func (igmp IGMP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error {
-	//	func (igmp *IGMP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error {
-	log.Debugf("Serializing IGMP Packet")
-	//TODO - add  length check here
+        log.Debugf("Serializing IGMP Packet")
 	data, err := b.PrependBytes(8915)
-	if err != nil {
-		return err
-	}
+        if err != nil {
+                return err
+        }
+        if igmp.Version == 2 {
+                data[0] = byte(igmp.Type)
+                data[1] = byte(igmp.MaxResponseTime)
+                data[2] = 0
+                data[3] = 0
+                copy(data[4:8], igmp.GroupAddress.To4())
+                if opts.ComputeChecksums {
+                        igmp.Checksum = tcpipChecksum(data, 0)
+                        binary.BigEndian.PutUint16(data[2:4], igmp.Checksum)
+                }
+        } else if igmp.Version ==3{
 
-	data[0] = byte(igmp.Type)
-	data[1] = byte(igmp.MaxResponseTime)
-	data[2] = 0
-	data[3] = 0
-	copy(data[4:8], igmp.GroupAddress.To4())
-	if opts.ComputeChecksums {
-		igmp.Checksum = tcpipChecksum(data, 0)
-		binary.BigEndian.PutUint16(data[2:4], igmp.Checksum)
-	}
-	return nil
+                data[0] = byte(igmp.Type)
+                data[1] = 0
+                data[2] = 0
+                data[3] = 0
+                data[4] = 0
+                data[5] = 0
+                binary.BigEndian.PutUint16(data[6:8], igmp.NumberOfGroupRecords)
+                j := 8
+                for i := uint16(0); i < igmp.NumberOfGroupRecords; i++ {
+                        data[j] = byte(igmp.GroupRecords[i].Type)
+                        data[j+1] = byte(0)
+                        binary.BigEndian.PutUint16(data[j+2:j+4], igmp.GroupRecords[i].NumberOfSources)
+                        copy(data[j+4:j+8], igmp.GroupRecords[i].MulticastAddress.To4())
+                        j=j+8
+                        for m := uint16(0); m < igmp.GroupRecords[i].NumberOfSources; m++ {
+                                copy(data[j:(j+4)], igmp.GroupRecords[i].SourceAddresses[m].To4())
+                                j=j+4
+                        }
+                }
+                if opts.ComputeChecksums {
+                        igmp.Checksum = tcpipChecksum(data, 0)
+                        binary.BigEndian.PutUint16(data[2:4], igmp.Checksum)
+                }
+        }
+        return nil
 }
 
 // Calculate the TCP/IP checksum defined in rfc1071.  The passed-in csum is any
diff --git a/internal/bbsimctl/commands/onu.go b/internal/bbsimctl/commands/onu.go
index 515ba07..fec47ed 100644
--- a/internal/bbsimctl/commands/onu.go
+++ b/internal/bbsimctl/commands/onu.go
@@ -39,6 +39,7 @@
 
 const IgmpJoinKey string = "join"
 const IgmpLeaveKey string = "leave"
+const IgmpJoinKeyV3 string = "joinv3"
 
 type ONUList struct{}
 
@@ -257,7 +258,9 @@
 		subActionVal = pb.SubActionTypes_JOIN
 	} else if string(options.Args.SubAction) == IgmpLeaveKey {
 		subActionVal = pb.SubActionTypes_LEAVE
-	}
+        } else if string(options.Args.SubAction) == IgmpJoinKeyV3 {
+                subActionVal = pb.SubActionTypes_JOINV3
+        }
 
 	igmpReq := pb.IgmpRequest{
 		OnuReq:       &req,
