diff --git a/internal/pkg/types/multicast.go b/internal/pkg/types/multicast.go
new file mode 100755
index 0000000..6b6aac8
--- /dev/null
+++ b/internal/pkg/types/multicast.go
@@ -0,0 +1,104 @@
+/*
+* Copyright 2022-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 common
+
+// IGMPConfig identifies the IGMP Configuration parameters.
+type IGMPConfig struct {
+	// ProfileID represents IGMP profile ID
+	ProfileID string `json:"ProfileID"`
+	// ProfileName represents IGMP profile Name
+	ProfileName string `json:"ProfileName"`
+	// UnsolicitedTimeOut represents unsolicited timeout.
+	UnsolicitedTimeOut int `json:"UnsolicitedTimeOut"`
+	// MaxResp represents IGMP max response time.
+	MaxResp int `json:"MaxResp"`
+	// KeepAliveInterval represents IGMP keep alive interval.
+	KeepAliveInterval int `json:"KeepAliveInterval"`
+	// KeepAliveCount represents IGMP keep alive count.
+	KeepAliveCount int `json:"KeepAliveCount"`
+	// LastQueryInterval represents IGMP last query interval.
+	LastQueryInterval int `json:"LastQueryInterval"`
+	// LastQueryCount represents IGMP last query count.
+	LastQueryCount int `json:"LastQueryCount"`
+	// FastLeave represents IGMP fast leave enabled or not.
+	FastLeave *bool `json:"FastLeave"`
+	// PeriodicQuery represents IGMP period query interval.
+	PeriodicQuery *bool `json:"PeriodicQuery"`
+	// IgmpCos represents IGMP COS value(0-7).
+	IgmpCos int `json:"IgmpCos"`
+	// WithRAUpLink represents IGMP RA uplink.
+	WithRAUpLink *bool `json:"withRAUpLink"`
+	// WithRADownLink represents IGMP RA downlink.
+	WithRADownLink *bool `json:"withRADownLink"`
+	// IgmpVerToServer represents IGMP version.
+	IgmpVerToServer string `json:"igmpVerToServer"`
+	// IgmpSourceIP represents IGMP src ip.
+	IgmpSourceIP string `json:"igmpSourceIp"`
+}
+
+//MulticastSrcListMode represents mode of source list
+type MulticastSrcListMode string
+
+const (
+	//Include refers to MulticastSrcListMode as include
+	Include MulticastSrcListMode = "include"
+	//Exclude refers to MulticastSrcListMode as exclude
+	Exclude MulticastSrcListMode = "exclude"
+	// StaticGroup refes to the static group name
+	StaticGroup string = "static"
+	// IsStaticYes refes to the static flag value yes
+	IsStaticYes string = "yes"
+	// IsStaticNo refes to the static flag value no
+	IsStaticNo string = "no"
+)
+
+// MulticastGroupProxy identifies source specific multicast(SSM) config.
+type MulticastGroupProxy struct {
+	// Mode represents source list include/exclude
+	Mode MulticastSrcListMode `json:"Mode"`
+	// SourceList represents list of multicast server IP addresses.
+	SourceList []string `json:"SourceList"`
+	// IsStatic flag indicating if the group is a "static" group
+	IsStatic string `json:"IsStatic,omitempty"`
+}
+
+// MVLANProfile identifies the MVLAN profile.
+type MVLANProfile struct {
+	// VLANID represents the Multicast VLAN ID.
+	VLANID int `json:"VLANID"`
+	// ProfileID represents Multicast profile ID
+	ProfileID string `json:"ProfileID"`
+	// ProfileName represents Multicast profile Name
+	ProfileName string `json:"ProfileName"`
+	// PonVLAN represents the vlan, where mcast traffic will be translated at OLT
+	PonVLAN int `json:"PonVLAN"`
+	// Groups represents the MVLAN group information. Key will be group name and value as array of multicast channel IPs.
+	Groups map[string][]string `json:"Groups"`
+	// Proxy represents multicast group proxy info. Key will be group name and value as proxy info
+	Proxy map[string]MulticastGroupProxy `json:"Proxy"`
+	//IsChannelBasedGroup represents if the group is channel based
+	IsChannelBasedGroup bool `json:"IsChannelBasedGroup"`
+	// ActiveIgmpChannelsPerSubscriber represents maximum igmp channels per subscriber can use
+	// Default : 3
+	ActiveIgmpChannelsPerSubscriber int `json:"ActiveIgmpChannelsPerSubscriber"`
+}
+
+// McastConfig the structure for multicast config
+type McastConfig struct {
+	MVLANProfileID string
+	IGMPProfileID  string
+	IGMPSrcIP      string
+}
