|
|
| 1424 |
if (params.MustSendRts ()) |
1424 |
if (params.MustSendRts ()) |
| 1425 |
{ |
1425 |
{ |
| 1426 |
WifiTxVector rtsTxVector = GetRtsTxVector (packet, hdr); |
1426 |
WifiTxVector rtsTxVector = GetRtsTxVector (packet, hdr); |
| 1427 |
//standard says RTS packets can have GF format sec 9.6.0e.1 page 110 bullet b 2 |
1427 |
if (m_stationManager->GetShortPreambleEnabled ()) |
| 1428 |
if (m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
|
|
| 1429 |
{ |
| 1430 |
preamble = WIFI_PREAMBLE_HT_GF; |
| 1431 |
} |
| 1432 |
//Otherwise, RTS should always use non-HT PPDU (HT PPDU cases not supported yet) |
| 1433 |
else if (m_stationManager->GetShortPreambleEnabled ()) |
| 1434 |
{ |
1428 |
{ |
| 1435 |
preamble = WIFI_PREAMBLE_SHORT; |
1429 |
preamble = WIFI_PREAMBLE_SHORT; |
| 1436 |
} |
1430 |
} |
|
|
| 1447 |
{ |
1441 |
{ |
| 1448 |
preamble = WIFI_PREAMBLE_VHT; |
1442 |
preamble = WIFI_PREAMBLE_VHT; |
| 1449 |
} |
1443 |
} |
| 1450 |
else if (m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
1444 |
else if (dataTxVector.GetMode ().GetModulationClass () == WIFI_MOD_CLASS_HT && m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
| 1451 |
{ |
1445 |
{ |
| 1452 |
preamble = WIFI_PREAMBLE_HT_GF; |
1446 |
preamble = WIFI_PREAMBLE_HT_GF; |
| 1453 |
} |
1447 |
} |
|
|
| 1487 |
{ |
1481 |
{ |
| 1488 |
preamble = WIFI_PREAMBLE_VHT; |
1482 |
preamble = WIFI_PREAMBLE_VHT; |
| 1489 |
} |
1483 |
} |
| 1490 |
if (m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
1484 |
if (dataTxVector.GetMode ().GetModulationClass () == WIFI_MOD_CLASS_HT && m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
| 1491 |
{ |
1485 |
{ |
| 1492 |
preamble = WIFI_PREAMBLE_HT_GF; |
1486 |
preamble = WIFI_PREAMBLE_HT_GF; |
| 1493 |
} |
1487 |
} |
|
|
| 1842 |
Time duration = Seconds (0); |
1836 |
Time duration = Seconds (0); |
| 1843 |
|
1837 |
|
| 1844 |
WifiPreamble preamble; |
1838 |
WifiPreamble preamble; |
| 1845 |
//standard says RTS packets can have GF format sec 9.6.0e.1 page 110 bullet b 2 |
1839 |
if (m_stationManager->GetShortPreambleEnabled ()) |
| 1846 |
if (m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
|
|
| 1847 |
{ |
| 1848 |
preamble = WIFI_PREAMBLE_HT_GF; |
| 1849 |
} |
| 1850 |
//Otherwise, RTS should always use non-HT PPDU (HT PPDU cases not supported yet) |
| 1851 |
else if (m_stationManager->GetShortPreambleEnabled ()) |
| 1852 |
{ |
1840 |
{ |
| 1853 |
preamble = WIFI_PREAMBLE_SHORT; |
1841 |
preamble = WIFI_PREAMBLE_SHORT; |
| 1854 |
} |
1842 |
} |
|
|
| 1921 |
preamble = WIFI_PREAMBLE_VHT; |
1909 |
preamble = WIFI_PREAMBLE_VHT; |
| 1922 |
} |
1910 |
} |
| 1923 |
//Since it is data then it can have format = GF |
1911 |
//Since it is data then it can have format = GF |
| 1924 |
else if (m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
1912 |
else if (dataTxVector.GetMode ().GetModulationClass () == WIFI_MOD_CLASS_HT && m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
| 1925 |
{ |
1913 |
{ |
| 1926 |
preamble = WIFI_PREAMBLE_HT_GF; |
1914 |
preamble = WIFI_PREAMBLE_HT_GF; |
| 1927 |
} |
1915 |
} |
|
|
| 2007 |
{ |
1995 |
{ |
| 2008 |
preamble = WIFI_PREAMBLE_VHT; |
1996 |
preamble = WIFI_PREAMBLE_VHT; |
| 2009 |
} |
1997 |
} |
| 2010 |
else if (m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
1998 |
else if (m_currentTxVector.GetMode ().GetModulationClass () == WIFI_MOD_CLASS_HT && m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
| 2011 |
{ |
1999 |
{ |
| 2012 |
//In the future has to make sure that receiver has greenfield enabled |
2000 |
//In the future has to make sure that receiver has greenfield enabled |
| 2013 |
preamble = WIFI_PREAMBLE_HT_GF; |
2001 |
preamble = WIFI_PREAMBLE_HT_GF; |
|
|
| 2254 |
{ |
2242 |
{ |
| 2255 |
preamble = WIFI_PREAMBLE_VHT; |
2243 |
preamble = WIFI_PREAMBLE_VHT; |
| 2256 |
} |
2244 |
} |
| 2257 |
else if (m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
2245 |
else if (m_currentTxVector.GetMode ().GetModulationClass () == WIFI_MOD_CLASS_HT && m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
| 2258 |
{ |
2246 |
{ |
| 2259 |
//In the future has to make sure that receiver has greenfield enabled |
2247 |
//In the future has to make sure that receiver has greenfield enabled |
| 2260 |
preamble = WIFI_PREAMBLE_HT_GF; |
2248 |
preamble = WIFI_PREAMBLE_HT_GF; |
|
|
| 2925 |
preamble = WIFI_PREAMBLE_VHT; |
2913 |
preamble = WIFI_PREAMBLE_VHT; |
| 2926 |
aPPDUMaxTime = MicroSeconds (5484); |
2914 |
aPPDUMaxTime = MicroSeconds (5484); |
| 2927 |
} |
2915 |
} |
| 2928 |
else if (m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
2916 |
else if (m_currentTxVector.GetMode ().GetModulationClass () == WIFI_MOD_CLASS_HT && m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ())) |
| 2929 |
{ |
2917 |
{ |
| 2930 |
preamble = WIFI_PREAMBLE_HT_GF; |
2918 |
preamble = WIFI_PREAMBLE_HT_GF; |
| 2931 |
} |
2919 |
} |