adding igmp query support
diff --git a/olt.py b/olt.py
index 664365a..843f92f 100644
--- a/olt.py
+++ b/olt.py
@@ -113,6 +113,12 @@
         verify_packet_in(self, pkt, of_port, ofp.OFPR_ACTION)
         verify_packets(self, pkt, [])
 
+def buildIgmp(payload):
+        ether = scapy.Ether(src="00:01:02:03:04:05")
+        ip = scapy.IP(src="1.2.3.4")
+        payload.igmpize(ip, ether)
+        return ether / ip / payload
+
 class EapolPacketIn(base_tests.SimpleDataPlane):
     
     """Verify packet-ins are sent for EAPOL packets """
@@ -160,6 +166,31 @@
         
         testPacketIn(self, match, pkt)
 
+class IGMPQueryPacketOut(base_tests.SimpleDataPlane):
+    
+    """Verify sending multicast membership queries down to onu_ports"""
+    
+    def runTest(self):
+        logging.info("Running IGMP query packet out")
+
+        igmp = scapy.IGMP(type = 0x11, gaddr = "224.0.0.1")
+        pkt = buildIgmp(igmp)
+
+        msg = ofp.message.packet_out()
+        msg.in_port = ofp.OFPP_CONTROLLER
+        #msg.buffer_id = 0xffffffff
+        msg.data = str(pkt)
+        msg.actions = [ofp.action.output(
+                        port=onu_port,
+                        max_len=ofp.OFPCML_NO_BUFFER)]
+        time.sleep(1)
+
+	self.controller.message_send(msg)
+
+        verify_no_errors(self.controller)
+
+        verify_packet(self, pkt, onu_port)
+
 class TestMeter(base_tests.SimpleDataPlane):
        
     def runTest(self):