docs: def sanitize(self):
          '''
          Check if the current settings conform to the LISP specifications and
          fix them where possible.
          '''
          super(MapReplyMessage, self).sanitize()
  
          # P: This is the probe-bit which indicates that the Map-Reply is in
          # response to a locator reachability probe Map-Request.  The nonce
          # field MUST contain a copy of the nonce value from the original
          # Map-Request.  See Section 6.3.2 for more details.
          if not isinstance(self.probe, bool):
              raise ValueError('Probe flag must be a boolean')
  
          # E: Indicates that the ETR which sends this Map-Reply message is
          # advertising that the site is enabled for the Echo-Nonce locator
          # reachability algorithm.  See Section 6.3.1 for more details.
          if not isinstance(self.enlra_enabled, bool):
              raise ValueError('Echo-Nonce Locator Reachability algorithm ' +
                               'enabled flag must be a boolean')
  
          # S: This is the Security bit.  When set to 1 the following
          # authentication information will be appended to the end of the Map-
          # Reply.  The detailed format of the Authentication Data Content is
          # for further study.
          if not isinstance(self.security, bool):
              raise ValueError('Security flag must be a boolean')
  
          if self.security:
              raise NotImplementedError('Handling security data is not ' +
                                        'implemented yet')
  
          # Nonce:  A 24-bit value set in a Data-Probe packet or a 64-bit value
          # from the Map-Request is echoed in this Nonce field of the Map-
          # Reply.  When a 24-bit value is supplied, it resides in the low-
          # order 64 bits of the nonce field.
          if len(bytes(self.nonce)) not in (3, 8):
              raise ValueError('Invalid nonce')
  
          # Map-Reply Record:  When the M bit is set, this field is the size of a
          # single "Record" in the Map-Reply format.  This Map-Reply record
          # contains the EID-to-RLOC mapping entry associated with the Source
          # EID.  This allows the ETR which will receive this Map-Request to
          # cache the data if it chooses to do so.
          for record in self.records:
              if not isinstance(record, MapReplyRecord):
                  raise ValueError('Invalid record')
  
              record.sanitize()