code: def register_foreign_device(self, addr, ttl):
          
          if _debug: BIPBBMD._debug("register_foreign_device %r %r", addr, ttl)
  
          # see if it is an address or make it one
          if isinstance(addr, Address):
              pass
          elif isinstance(addr, str):
              addr = Address(addr)
          else:
              raise TypeError("addr must be a string or an Address")
  
          for fdte in self.bbmdFDT:
              if addr == fdte.fdAddress:
                  break
          else:
              fdte = FDTEntry()
              fdte.fdAddress = addr
              self.bbmdFDT.append( fdte )
  
          fdte.fdTTL = ttl
          fdte.fdRemain = ttl + 5
  
          # return success
          return 0
docs: Add a foreign device to the FDT.