Hi,
I'll try to make it clearer, there's always a shred of hope.
At L3 you work with BYTES, not bits.
At L2 you work with BITS.
At L1 you work with SYMBOLS.
L2 datagrams are almost always made of a payload (multiple of bytes) and a preamble/header, which could be any number of bits.
RTS and CTS are L2 datagrams (like ACKs), thus you could add 2 bits. The problem is that you have not said WHERE you want to add them. This is a major mistake.
Now, I could add them in the right place for you, but this is your task.
What I can give you is a suggestion: decide where you want to add these 2 bits.
The Wi-Fi packet (at le lowest level) is made by preambles, headers and the payload. Payload is a multiple of 8 bits. The MAC header is a multiple of 8 bits (it's not mandatory in general, but it's true for 802.11). The preambles are... different.
If you check the WifiPhy::CalculateTxDuration this difference is evident.
As a consequence, if you add these 2 bits to the preamble, you can modify the corresponding functions (but are the 2 bits a part of the preamble ?). If there elsewhere you'll be in trouble, because we followed the standard and in the standard everything is a multiple of 8 bits. As a consequence you'll have to modify a LOT of functions.
T.