diff --git a/voltha/adapters/tibit_olt/tibit_olt.py b/voltha/adapters/tibit_olt/tibit_olt.py
index e2ee432..f162a7d 100644
--- a/voltha/adapters/tibit_olt/tibit_olt.py
+++ b/voltha/adapters/tibit_olt/tibit_olt.py
@@ -36,7 +36,8 @@
     PortIngressRuleResultSet, PortIngressRuleResultInsert, \
     PortIngressRuleTerminator, AddPortIngressRule, CablelabsOUI, PonPortObject
 from voltha.extensions.eoam.EOAM_TLV import PortIngressRuleHeader
-from voltha.extensions.eoam.EOAM_TLV import ClauseSubtypeEnum as Clause
+from voltha.extensions.eoam.EOAM_TLV import ClauseSubtypeEnum
+from voltha.extensions.eoam.EOAM_TLV import RuleOperatorEnum
 from voltha.core.flow_decomposer import *
 from voltha.core.logical_device_agent import mac_str_to_tuple
 from voltha.protos.adapter_pb2 import Adapter, AdapterConfig
@@ -405,7 +406,8 @@
 
         assert len(groups.items) == 0, "Cannot yet deal with groups"
 
-        ClauseFields = {v: k for k, v in Clause.iteritems()}
+        Clause = {v: k for k, v in ClauseSubtypeEnum.iteritems()}
+        Operator = {v: k for k, v in RuleOperatorEnum.iteritems()}
 
         for flow in flows.items:
             in_port = get_in_port(flow)
@@ -421,13 +423,12 @@
                 for field in get_ofb_fields(flow):
 
                     if field.type == ETH_TYPE:
-                        log.info('#### field.type == ETH_TYPE ####')
                         _type = field.eth_type
+                        log.info('#### field.type == ETH_TYPE ####')
                         dn_req /= PortIngressRuleClauseMatchLength02(
-                            fieldcode=ClauseFields['L2 Type/Len'],
-                            operator=1,
-                            match0=(_type >> 8) & 0xff,
-                            match1=_type & 0xff)
+                            fieldcode=Clause['L2 Type/Len'],
+                            operator=Operator['=='],
+                            match=_type)
 
                     elif field.type == IP_PROTO:
                         _proto = field.ip_proto
@@ -470,7 +471,7 @@
                         if action.push.ethertype != 0x8100:
                             log.error('unhandled-ether-type',
                                       ethertype=action.push.ethertype)
-                            dn_req /= PortIngressRuleResultInsert(fieldcode=ClauseFields['C-VLAN Tag'])
+                            dn_req /= PortIngressRuleResultInsert(fieldcode=Clause['C-VLAN Tag'])
 
                     elif action.type == SET_FIELD:
                         assert (action.set_field.field.oxm_class ==
@@ -478,7 +479,7 @@
                         field = action.set_field.field.ofb_field
                         if field.type == VLAN_VID:
                             dn_req /= PortIngressRuleResultSet(
-                                fieldcode=ClauseFields['C-VLAN Tag'], value=field.vlan_vid & 0xfff)
+                                fieldcode=Clause['C-VLAN Tag'], value=field.vlan_vid & 0xfff)
                         else:
                             log.error('unsupported-action-set-field-type',
                                       field_type=field.type)
@@ -509,10 +510,9 @@
                     if field.type == ETH_TYPE:
                         _type = field.eth_type
                         up_req /= PortIngressRuleClauseMatchLength02(
-                            fieldcode=ClauseFields['L2 Type/Len'],
+                            fieldcode=Clause['L2 Type/Len'],
                             operator=1,
-                            match0=(_type >> 8) & 0xff,
-                            match1=_type & 0xff)
+                            match=_type)
 
                     elif field.type == IP_PROTO:
                         _proto = field.ip_proto
@@ -555,7 +555,7 @@
                         if action.push.ethertype != 0x8100:
                             log.error('unhandled-ether-type',
                                       ethertype=action.push.ethertype)
-                        up_req /= PortIngressRuleResultInsert(fieldcode=ClauseFields['C-VLAN Tag'])
+                        up_req /= PortIngressRuleResultInsert(fieldcode=Clause['C-VLAN Tag'])
 
                     elif action.type == SET_FIELD:
                         assert (action.set_field.field.oxm_class ==
@@ -563,7 +563,7 @@
                         field = action.set_field.field.ofb_field
                         if field.type == VLAN_VID:
                             up_req /= PortIngressRuleResultSet(
-                                fieldcode=ClauseFields['C-VLAN Tag'], value=field.vlan_vid & 0xfff)
+                                fieldcode=Clause['C-VLAN Tag'], value=field.vlan_vid & 0xfff)
                         else:
                             log.error('unsupported-action-set-field-type',
                                       field_type=field.type)
diff --git a/voltha/extensions/eoam/EOAM.py b/voltha/extensions/eoam/EOAM.py
index a671c4d..db081c1 100644
--- a/voltha/extensions/eoam/EOAM.py
+++ b/voltha/extensions/eoam/EOAM.py
@@ -163,6 +163,10 @@
                         help='Run commands under test')
     parser.add_argument('-te', '--test_eapol', dest='test_eapol', action='store_true', default=False,
                         help='Run commands under test')
+    parser.add_argument('-ti', '--test_igmp', dest='test_igmp', action='store_true', default=False,
+                        help='Run commands under test')
+    parser.add_argument('-th', '--test_dhcp', dest='test_dhcp', action='store_true', default=False,
+                        help='Run commands under test')
     parser.add_argument('-tu', '--test_upstream', dest='test_upstream', action='store_true', default=False,
                         help='Run commands under test')
     parser.add_argument('-td', '--test_downstream', dest='test_downstream', action='store_true', default=False,
@@ -192,6 +196,8 @@
         and not args.test_add
         and not args.test_clr
         and not args.test_eapol
+        and not args.test_igmp
+        and not args.test_dhcp
         and not args.test_upstream
         and not args.test_downstream
         and not args.test_multicast):
@@ -222,23 +228,108 @@
         #################################################################################
         ## EAPOL
         #################################################################################
-        print 'SET - Port Ingress Rule -- DOLT Port Object -- EAPOL'
-        eoam.set_request(DOLTObject()/
+        Clause = {v: k for k, v in ClauseSubtypeEnum.iteritems()}
+        Operator = {v: k for k, v in RuleOperatorEnum.iteritems()}
+
+        print 'SET - Port Ingress Rule -- PON Port Object -- EAPOL'
+        eoam.set_request(PonPortObject()/
                          PortIngressRuleHeader(precedence=32)/
-                         PortIngressRuleClauseMatchLength02(fieldcode=3, operator=1, match0=0x88, match1=0x8e)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['L2 Type/Len'],
+                                                            operator=Operator['=='], match=0x888e)/
                          PortIngressRuleResultForward()/
-                         PortIngressRuleResultSet(fieldcode=7, value=4090)/
-                         PortIngressRuleResultInsert(fieldcode=7)/
+                         PortIngressRuleResultSet(fieldcode=Clause['C-VLAN Tag'], value=4090)/
+                         PortIngressRuleResultInsert(fieldcode=Clause['C-VLAN Tag'])/
                          PortIngressRuleTerminator()/
                          AddPortIngressRule())
 
-        print 'Delete - Port Ingress Rule -- DOLT Port Object -- EAPOL'
-        eoam.set_request(DOLTObject()/
+        time.sleep(3)
+
+        print 'Delete - Port Ingress Rule -- PON Port Object -- EAPOL'
+        eoam.set_request(PonPortObject()/
                          PortIngressRuleHeader(precedence=32)/
-                         PortIngressRuleClauseMatchLength02(fieldcode=3, operator=1, match0=0x88, match1=0x8e)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['L2 Type/Len'],
+                                                            operator=Operator['=='], match=0x888e)/
                          PortIngressRuleResultForward()/
-                         PortIngressRuleResultSet(fieldcode=7, value=4090)/
-                         PortIngressRuleResultInsert(fieldcode=7)/
+                         PortIngressRuleResultSet(fieldcode=Clause['C-VLAN Tag'], value=4090)/
+                         PortIngressRuleResultInsert(fieldcode=Clause['C-VLAN Tag'])/
+                         PortIngressRuleTerminator()/
+                         DeletePortIngressRule())
+
+    if (args.test_igmp == True):
+        #################################################################################
+        ## IGMP
+        #################################################################################
+        Clause = {v: k for k, v in ClauseSubtypeEnum.iteritems()}
+        Operator = {v: k for k, v in RuleOperatorEnum.iteritems()}
+
+        print 'SET - Port Ingress Rule -- PON Port Object -- IGMP'
+        eoam.set_request(PonPortObject()/
+                         PortIngressRuleHeader(precedence=13)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['L2 Type/Len'],
+                                                            operator=Operator['=='], match=0x0800)/
+                         PortIngressRuleClauseMatchLength01(fieldcode=Clause['IPv4/IPv6 Protocol Type'],
+                                                            operator=Operator['=='], match=0x02)/
+                         PortIngressRuleResultForward()/
+                         PortIngressRuleResultSet(fieldcode=Clause['C-VLAN Tag'], value=4000)/
+                         PortIngressRuleResultInsert(fieldcode=Clause['C-VLAN Tag'])/
+                         PortIngressRuleTerminator()/
+                         AddPortIngressRule())
+
+        time.sleep(3)
+
+        print 'Delete - Port Ingress Rule -- PON Port Object -- IGMP'
+        eoam.set_request(PonPortObject()/
+                         PortIngressRuleHeader(precedence=13)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['L2 Type/Len'],
+                                                            operator=Operator['=='], match=0x0800)/
+                         PortIngressRuleClauseMatchLength01(fieldcode=Clause['IPv4/IPv6 Protocol Type'],
+                                                            operator=Operator['=='], match=0x02)/
+                         PortIngressRuleResultForward()/
+                         PortIngressRuleResultSet(fieldcode=Clause['C-VLAN Tag'], value=4000)/
+                         PortIngressRuleResultInsert(fieldcode=Clause['C-VLAN Tag'])/
+                         PortIngressRuleTerminator()/
+                         DeletePortIngressRule())
+
+    if (args.test_dhcp == True):
+        #################################################################################
+        ## DHCP
+        #################################################################################
+        Clause = {v: k for k, v in ClauseSubtypeEnum.iteritems()}
+        Operator = {v: k for k, v in RuleOperatorEnum.iteritems()}
+
+        print 'SET - Port Ingress Rule -- PON Port Object -- DHCP'
+        eoam.set_request(PonPortObject()/
+                         PortIngressRuleHeader(precedence=13)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['L2 Type/Len'],
+                                                            operator=Operator['=='], match=0x0800)/
+                         PortIngressRuleClauseMatchLength01(fieldcode=Clause['IPv4/IPv6 Protocol Type'],
+                                                            operator=Operator['=='], match=0x11)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['TCP/UDP source port'],
+                                                            operator=Operator['=='], match=0x0044)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['TCP/UDP destination port'],
+                                                            operator=Operator['=='], match=0x0043)/
+                         PortIngressRuleResultForward()/
+                         PortIngressRuleResultSet(fieldcode=Clause['C-VLAN Tag'], value=4000)/
+                         PortIngressRuleResultInsert(fieldcode=Clause['C-VLAN Tag'])/
+                         PortIngressRuleTerminator()/
+                         AddPortIngressRule())
+
+        time.sleep(3)
+
+        print 'Delete - Port Ingress Rule -- PON Port Object -- DHCP'
+        eoam.set_request(PonPortObject()/
+                         PortIngressRuleHeader(precedence=13)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['L2 Type/Len'],
+                                                            operator=Operator['=='], match=0x0800)/
+                         PortIngressRuleClauseMatchLength01(fieldcode=Clause['IPv4/IPv6 Protocol Type'],
+                                                            operator=Operator['=='], match=0x11)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['TCP/UDP source port'],
+                                                            operator=Operator['=='], match=0x0044)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['TCP/UDP destination port'],
+                                                            operator=Operator['=='], match=0x0043)/
+                         PortIngressRuleResultForward()/
+                         PortIngressRuleResultSet(fieldcode=Clause['C-VLAN Tag'], value=4000)/
+                         PortIngressRuleResultInsert(fieldcode=Clause['C-VLAN Tag'])/
                          PortIngressRuleTerminator()/
                          DeletePortIngressRule())
 
@@ -246,35 +337,35 @@
         #################################################################################
         ## UPSTREAM
         #################################################################################
-        ClauseFields = {v: k for k, v in ClauseSubtypeEnum.iteritems()}
-        OperatorFields = {v: k for k, v in RuleOperatorEnum.iteritems()}
+        Clause = {v: k for k, v in ClauseSubtypeEnum.iteritems()}
+        Operator = {v: k for k, v in RuleOperatorEnum.iteritems()}
 
         print 'SET - Port Ingress Rule -- OLT Unicast Logical Link -- Upstream Traffic'
         eoam.set_request(OLTUnicastLogicalLink(unicastvssn="TBIT", unicastlink=0xe2222900)/
                          PortIngressRuleHeader(precedence=13)/
-                         PortIngressRuleClauseMatchLength02(fieldcode=ClauseFields['C-VLAN Tag'], fieldinstance=0,
-                                                            operator=OperatorFields['=='], match0=0x00, match1=0xf1)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['C-VLAN Tag'], fieldinstance=0,
+                                                            operator=Operator['=='], match=0x00f1)/
                          PortIngressRuleResultForward()/
-                         PortIngressRuleResultCopy(fieldcode=ClauseFields['C-VLAN Tag'])/
-                         PortIngressRuleResultInsert(fieldcode=ClauseFields['C-VLAN Tag'], fieldinstance=1)/
-                         PortIngressRuleResultSet(fieldcode=ClauseFields['C-VLAN Tag'], value=1000)/
-                         PortIngressRuleResultReplace(fieldcode=ClauseFields['C-VLAN Tag'])/
+                         PortIngressRuleResultCopy(fieldcode=Clause['C-VLAN Tag'])/
+                         PortIngressRuleResultInsert(fieldcode=Clause['C-VLAN Tag'], fieldinstance=1)/
+                         PortIngressRuleResultSet(fieldcode=Clause['C-VLAN Tag'], value=1000)/
+                         PortIngressRuleResultReplace(fieldcode=Clause['C-VLAN Tag'])/
                          PortIngressRuleTerminator()/
                          AddPortIngressRule())
 
 
-        time.sleep(15)
+        time.sleep(3)
 
         print 'DELETE - Port Ingress Rule -- OLT Unicast Logical Link -- Upstream Traffic'
         eoam.set_request(OLTUnicastLogicalLink(unicastvssn="TBIT", unicastlink=0xe2222900)/
                          PortIngressRuleHeader(precedence=13)/
-                         PortIngressRuleClauseMatchLength02(fieldcode=ClauseFields['C-VLAN Tag'], fieldinstance=0,
-                                                            operator=OperatorFields['=='], match0=0x00, match1=0xf1)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['C-VLAN Tag'], fieldinstance=0,
+                                                            operator=Operator['=='], match=0x00f1)/
                          PortIngressRuleResultForward()/
-                         PortIngressRuleResultCopy(fieldcode=ClauseFields['C-VLAN Tag'])/
-                         PortIngressRuleResultInsert(fieldcode=ClauseFields['C-VLAN Tag'], fieldinstance=1)/
-                         PortIngressRuleResultSet(fieldcode=ClauseFields['C-VLAN Tag'], value=1000)/
-                         PortIngressRuleResultReplace(fieldcode=ClauseFields['C-VLAN Tag'])/
+                         PortIngressRuleResultCopy(fieldcode=Clause['C-VLAN Tag'])/
+                         PortIngressRuleResultInsert(fieldcode=Clause['C-VLAN Tag'], fieldinstance=1)/
+                         PortIngressRuleResultSet(fieldcode=Clause['C-VLAN Tag'], value=1000)/
+                         PortIngressRuleResultReplace(fieldcode=Clause['C-VLAN Tag'])/
                          PortIngressRuleTerminator()/
                          DeletePortIngressRule())
 
@@ -282,35 +373,35 @@
         #################################################################################
         ## DOWNSTREAM
         #################################################################################
-        ClauseFields = {v: k for k, v in ClauseSubtypeEnum.iteritems()}
-        OperatorFields = {v: k for k, v in RuleOperatorEnum.iteritems()}
+        Clause = {v: k for k, v in ClauseSubtypeEnum.iteritems()}
+        Operator = {v: k for k, v in RuleOperatorEnum.iteritems()}
 
         print 'SET - Port Ingress Rule -- NNI Port Object -- Downstream Traffic'
         eoam.set_request(NetworkToNetworkPortObject()/
                          PortIngressRuleHeader(precedence=13)/
-                         PortIngressRuleClauseMatchLength02(fieldcode=ClauseFields['C-VLAN Tag'], fieldinstance=0,
-                                                            operator=OperatorFields['=='], match0=0x0f, match1=0xa0)/
-                         PortIngressRuleClauseMatchLength02(fieldcode=ClauseFields['C-VLAN Tag'], fieldinstance=1,
-                                                            operator=OperatorFields['=='], match0=0x00, match1=0xf1)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['C-VLAN Tag'], fieldinstance=0,
+                                                            operator=Operator['=='], match=0x0fa0)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['C-VLAN Tag'], fieldinstance=1,
+                                                            operator=Operator['=='], match=0x00f1)/
                          PortIngressRuleResultOLTQueue(unicastvssn="TBIT", unicastlink=0xe2222900)/
                          PortIngressRuleResultForward()/
-                         PortIngressRuleResultDelete(fieldcode=ClauseFields['C-VLAN Tag'])/
+                         PortIngressRuleResultDelete(fieldcode=Clause['C-VLAN Tag'])/
                          PortIngressRuleTerminator()/
                          AddPortIngressRule())
 
 
-        time.sleep(15)
+        time.sleep(3)
 
         print 'DELETE - Port Ingress Rule -- NNI Port Object -- Downstream Traffic'
         eoam.set_request(NetworkToNetworkPortObject()/
                          PortIngressRuleHeader(precedence=13)/
-                         PortIngressRuleClauseMatchLength02(fieldcode=ClauseFields['C-VLAN Tag'], fieldinstance=0,
-                                                            operator=OperatorFields['=='], match0=0x0f, match1=0xa0)/
-                         PortIngressRuleClauseMatchLength02(fieldcode=ClauseFields['C-VLAN Tag'], fieldinstance=1,
-                                                            operator=OperatorFields['=='], match0=0x00, match1=0xf1)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['C-VLAN Tag'], fieldinstance=0,
+                                                            operator=Operator['=='], match=0x0fa0)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['C-VLAN Tag'], fieldinstance=1,
+                                                            operator=Operator['=='], match=0x00f1)/
                          PortIngressRuleResultOLTQueue(unicastvssn="TBIT", unicastlink=0xe2222900)/
                          PortIngressRuleResultForward()/
-                         PortIngressRuleResultDelete(fieldcode=ClauseFields['C-VLAN Tag'])/
+                         PortIngressRuleResultDelete(fieldcode=Clause['C-VLAN Tag'])/
                          PortIngressRuleTerminator()/
                          DeletePortIngressRule())
 
@@ -318,30 +409,30 @@
         #################################################################################
         ## MULTICAST
         #################################################################################
-        ClauseFields = {v: k for k, v in ClauseSubtypeEnum.iteritems()}
-        OperatorFields = {v: k for k, v in RuleOperatorEnum.iteritems()}
+        Clause = {v: k for k, v in ClauseSubtypeEnum.iteritems()}
+        Operator = {v: k for k, v in RuleOperatorEnum.iteritems()}
 
         print 'SET - Port Ingress Rule -- NNI Port Object -- Downstream Multicast Traffic'
         eoam.set_request(NetworkToNetworkPortObject()/
                          PortIngressRuleHeader(precedence=13)/
-                         PortIngressRuleClauseMatchLength02(fieldcode=ClauseFields['C-VLAN Tag'], fieldinstance=0,
-                                                            operator=OperatorFields['=='], match0=0x00, match1=0x8c)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['C-VLAN Tag'], fieldinstance=0,
+                                                            operator=Operator['=='], match=0x008c)/
                          PortIngressRuleResultOLTBroadcastQueue()/
                          PortIngressRuleResultForward()/
-                         PortIngressRuleResultDelete(fieldcode=ClauseFields['C-VLAN Tag'])/
+                         PortIngressRuleResultDelete(fieldcode=Clause['C-VLAN Tag'])/
                          PortIngressRuleTerminator()/
                          AddPortIngressRule())
 
 
-        time.sleep(15)
+        time.sleep(3)
 
         print 'DELETE - Port Ingress Rule -- NNI Port Object -- Downstream Multicast Traffic'
         eoam.set_request(NetworkToNetworkPortObject()/
                          PortIngressRuleHeader(precedence=13)/
-                         PortIngressRuleClauseMatchLength02(fieldcode=ClauseFields['C-VLAN Tag'], fieldinstance=0,
-                                                            operator=OperatorFields['=='], match0=0x00, match1=0x8c)/
+                         PortIngressRuleClauseMatchLength02(fieldcode=Clause['C-VLAN Tag'], fieldinstance=0,
+                                                            operator=Operator['=='], match=0x008c)/
                          PortIngressRuleResultOLTBroadcastQueue()/
                          PortIngressRuleResultForward()/
-                         PortIngressRuleResultDelete(fieldcode=ClauseFields['C-VLAN Tag'])/
+                         PortIngressRuleResultDelete(fieldcode=Clause['C-VLAN Tag'])/
                          PortIngressRuleTerminator()/
                          DeletePortIngressRule())
diff --git a/voltha/extensions/eoam/EOAM_TLV.py b/voltha/extensions/eoam/EOAM_TLV.py
index 0558aa4..6b9d96b 100644
--- a/voltha/extensions/eoam/EOAM_TLV.py
+++ b/voltha/extensions/eoam/EOAM_TLV.py
@@ -796,14 +796,14 @@
                      0x1f: "Custom field 7",
                      }
 
-RuleOperatorEnum = { 0x00: "F",             #False
+RuleOperatorEnum = { 0x00: "F",           #False
                      0x01: "==",
                      0x02: "!=",
                      0x03: "<=",
                      0x04: ">=",
                      0x05: "exists",
                      0x06: "!exist",
-                     0x07: "T",
+                     0x07: "T",           #True
                      }
 
 class PortIngressRule(Packet):
@@ -851,7 +851,7 @@
                    XByteField("lsbmask", 0),
                    XByteField("operator", 0),
                    XByteField("matchlength", 1),
-                   XByteField("match0", 0),
+                   XByteField("match", 0),
                    ]
 
 class PortIngressRuleClauseMatchLength02(Packet):
@@ -867,8 +867,7 @@
                    XByteField("lsbmask", 0),
                    XByteField("operator", 0),
                    XByteField("matchlength", 2),
-                   XByteField("match0", 0),
-                   XByteField("match1", 0),
+                   XShortField("match", 0),
                    ]
 
 
