Added relax option to oftest

This option relaxes restrictions around receiving unexpected packets.
It's main use case is in evironments where in-band control is enabled and
as a consequence packets are forwarded to dataplane ports.
diff --git a/tests/testutils.py b/tests/testutils.py
index 084f74d..450b330 100644
--- a/tests/testutils.py
+++ b/tests/testutils.py
@@ -214,7 +214,8 @@
     rv = controller.message_send(mod)
     return rv
 
-def receive_pkt_check(dataplane, pkt, yes_ports, no_ports, assert_if, logger):
+def receive_pkt_check(dataplane, pkt, yes_ports, no_ports, assert_if, logger,
+                      config):
     """
     Check for proper receive packets across all ports
     @param dataplane The dataplane object
@@ -223,10 +224,14 @@
     @param no_ports Set or list of ports that should not receive packet
     @param assert_if Object that implements assertXXX
     """
+    exp_pkt_arg = None
+    if config and config["relax"]:
+        exp_pkt_arg = pkt
+
     for ofport in yes_ports:
         logger.debug("Checking for pkt on port " + str(ofport))
         (rcv_port, rcv_pkt, pkt_time) = dataplane.poll(
-            port_number=ofport, timeout=1)
+            port_number=ofport, timeout=1, exp_pkt=exp_pkt_arg)
         assert_if.assertTrue(rcv_pkt is not None, 
                              "Did not receive pkt on " + str(ofport))
         assert_if.assertEqual(str(pkt), str(rcv_pkt),
@@ -236,7 +241,7 @@
     for ofport in no_ports:
         logger.debug("Negative check for pkt on port " + str(ofport))
         (rcv_port, rcv_pkt, pkt_time) = dataplane.poll(
-            port_number=ofport, timeout=1)
+            port_number=ofport, timeout=1, exp_pkt=exp_pkt_arg)
         assert_if.assertTrue(rcv_pkt is None, 
                              "Unexpected pkt on port " + str(ofport))
 
@@ -247,8 +252,14 @@
 
     parent must implement dataplane, assertTrue and assertEqual
     """
+    exp_pkt_arg = None
+    if parent.config["relax"]:
+        exp_pkt_arg = exp_pkt
+
     (rcv_port, rcv_pkt, pkt_time) = parent.dataplane.poll(port_number=egr_port,
-                                                          timeout=1)
+                                                          timeout=1, 
+                                                          exp_pkt=exp_pkt_arg)
+
     if rcv_pkt is None:
         parent.logger.error("ERROR: No packet received from " + str(egr_port))
 
@@ -592,7 +603,6 @@
 
     new_actions = []
 
-
     base_pkt_params = {}
     base_pkt_params['pktlen'] = 100
     base_pkt_params['dl_dst'] = '00:DE:F0:12:34:56'