[VOL-2778] Handling IGMP

Change-Id: I54c26bc438a144c7d4c64a9b3d543461fc743ab2
diff --git a/internal/bbsimctl/commands/onu.go b/internal/bbsimctl/commands/onu.go
index 20837b5..5f6874b 100644
--- a/internal/bbsimctl/commands/onu.go
+++ b/internal/bbsimctl/commands/onu.go
@@ -45,6 +45,8 @@
 const IgmpLeaveKey string = "leave"
 const IgmpJoinKeyV3 string = "joinv3"
 
+var IgmpAllowedActions = []string{IgmpJoinKey, IgmpLeaveKey, IgmpJoinKeyV3}
+
 type ONUList struct {
 	Verbose bool `short:"v" long:"verbose" description:"Print all the informations we have about ONUs"`
 }
@@ -445,6 +447,16 @@
 	return list
 }
 
+func (onuSn *IgmpSubAction) Complete(match string) []flags.Completion {
+	list := make([]flags.Completion, 0)
+	for _, k := range IgmpAllowedActions {
+		if strings.HasPrefix(k, match) {
+			list = append(list, flags.Completion{Item: k})
+		}
+	}
+	return list
+}
+
 func (options *ONUTrafficSchedulers) Execute(args []string) error {
 	client, conn := connect()
 	defer conn.Close()