Esempio n. 1
0
 def __init__(self, name="csma-mac", options=None, **kwargs):
     """Constructor; all arguments passed to `TunClient` constructor; see
     `csma_defaults` for more about `options`."""
     if options is None: options = csma_defaults
     self.__mtu  = options.mtu
     # call TunClient constructor
     TunClient.__init__(self, name=name, options=options, **kwargs)
     # set up public members
     self.datatosend = None
     self.retrycount = 0
     self.cslot = None
     self.macdb = MACDB(timeout=None)
     # set up remaining private members
     self.__mpif = mimo.mac(options.phy_addr, options.mac_port)
     self.__addr = None
     self.__rxdata = ParamEvent()    # got RXDATA from PHY
     self.__csbusy = ParamEvent()    # got CSBUSY from PHY
     self.__txdone = ParamEvent()    # got TXDONE from PHY
     self.__txdata = ParamEvent()    # New data to available to transmit
     self.__toidle = Event()         # Entered IDLE state
     self.__mctrl = None     # monitor ctrlQ of MPIF
     self.__mrecv = None     # monitor outputQ of MPIF
     self.__msend = None     # monitor send data from tun/tap interface
Esempio n. 2
0
 def close(self):
     """Overload to also shutdown MPIF."""
     self.mpif.shutdown()
     return TunClient.close(self)