wpa_supplicant / hostapd
2.5
|
DOC: TCP connection wakeup. More...
#include <nl80211_copy.h>
Data Fields | |
__u32 | start |
__u32 | offset |
__u32 | len |
DOC: TCP connection wakeup.
Some devices can establish a TCP connection in order to be woken up by a packet coming in from outside their network segment, or behind NAT. If configured, the device will establish a TCP connection to the given service, and periodically send data to that service. The first data packet is usually transmitted after SYN/ACK, also ACKing the SYN/ACK. The data packets can optionally include a (little endian) sequence number (in the TCP payload!) that is generated by the device, and, also optionally, a token from a list of tokens. This serves as a keep-alive with the service, and for NATed connections, etc.
During this keep-alive period, the server doesn't send any data to the client. When receiving data, it is compared against the wakeup pattern (and mask) and if it matches, the host is woken up. Similarly, if the connection breaks or cannot be established to start with, the host is also woken up.
Developer's note: ARP offload is required for this, otherwise TCP response packets might not go through correctly. WoWLAN TCP data sequence
start | starting value |
offset | offset of sequence number in packet |
len | length of the sequence value to write, 1 through 4 |
Note: don't confuse with the TCP sequence number(s), this is for the keepalive packet payload. The actual value is written into the packet in little endian.