Слоты памяти не предназначены для определенных целей; они распределяются динамически по pcap_compile()
по мере необходимости.
Для большинства фильтров для большинства типов сетей оптимизатор pcap_compile()
удалит все используемые слоты памяти или, по крайней мере, уменьшит их, чтобы код не нуждался в 16 слотах памяти.
Для 802.11 (собственный 802.11, который вы видите в режиме монитора, а не «поддельный Ethernet», который вы получаете, когда он не находится в режиме монитора), оптимизатор в настоящее время не используется (он разработан с учетом допущений, которые не применяются к более сложное принятие решений, требуемое для работы с 802.11, и исправление его - большой проект), поэтому вы увидите больше возможностей использования памяти. Тем не менее, вам, вероятно, понадобится очень сложный фильтр, чтобы использовать M [15] - или M [14] или M [13] или большую часть памяти младшего адреса.
(Вы также можете запустить tcpdump с опцией -O
, чтобы отключить оптимизатор.)