docs: def igmpize(self, ip=None, ether=None):
      """Called to explicitely fixup associated IP and Ethernet headers
  
      Parameters:
        self    The instantiation of an IGMP class.
        ip      The instantiation of the associated IP class.
        ether   The instantiation of the associated Ethernet.
  
      Returns:
        True    The tuple ether/ip/self passed all check and represents
                 a proper IGMP packet.
        False   One of more validation checks failed and no fields 
                 were adjusted.
  
      The function will examine the IGMP message to assure proper format. 
      Corrections will be attempted if possible. The IP header is then properly 
      adjusted to ensure correct formatting and assignment. The Ethernet header
      is then adjusted to the proper IGMP packet format.
      """
  
  # The rules are:
  #   1.  the Max Response time is meaningful only in Membership Queries and should be zero 
  #       otherwise (RFC 2236, section 2.2)
  
      if (self.type != 0x11):         #rule 1
        self.mrtime = 0
        
      if (self.adjust_ip(ip) == True):
        if (self.adjust_ether(ip, ether) == True): return True
      return False