code: def packet_in_handler(self, req_igmp, msg):
          
          ofproto = msg.datapath.ofproto
          if ofproto.OFP_VERSION == ofproto_v1_0.OFP_VERSION:
              in_port = msg.in_port
          else:
              in_port = msg.match['in_port']
          if (igmp.IGMP_TYPE_REPORT_V1 == req_igmp.msgtype or
                  igmp.IGMP_TYPE_REPORT_V2 == req_igmp.msgtype):
              self._do_report(req_igmp, in_port, msg)
          elif igmp.IGMP_TYPE_LEAVE == req_igmp.msgtype:
              self._do_leave(req_igmp, in_port, msg)
docs: the process when the querier received IGMP.