def rtsnav(self, p, *args, **kwargs): """Overloaded to add RSH to NAV.""" nav = DCF.rtsnav(self, p, *args, **kwargs) # add RSH + SIFS d = self.sifs + self.rshduration nav += int(d*1e6) return nav
def rshnav(self, data, *args, **kwargs): """Calculate NAV value for RSH. :param data: DATA packet. :param args: Arguments passed on to `DCF.rtsnav()`. :param kwargs: Keywords passed on to `DCF.rtsnav()`. :return: Integer; representing NAV value. This method computes the RSH NAV as follows: NAV = SIFS + DATA + SIFS + ACK :note: This method uses `DCF.rtsnav()` to calculate the new NAV value. """ # Use regular RTS NAV (i.e. from DCF) to compute new NAV value rtsnav = DCF.rtsnav(self, data, *args, **kwargs) d = self.sifs + self.ctsduration nav = rtsnav - int(d*1e6) return nav