Exemple #1
0
 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
Exemple #2
0
    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