Не ответ на вопрос в его нынешнем виде, но почему бы не использовать инструменты моделирования для WLAN с потерями, которые уже доступны?
С помощью модуля mac80211_hwsim
вы можете имитировать произвольное количество виртуальных интерфейсов WLAN, которые могут общаться друг с другом через «виртуальный эфир», и, кроме того, вы можете отслеживать передаваемые кадры. на дополнительном интерфейсе.
wmediumd основывается на этом и позволяет имитировать потерю и задержку кадров, так что вы можете увидеть, как ведут себя алгоритмы более высокого уровня. (Однако переворота битов нет ).
Что касается первоначального вопроса, я думаю, что здесь нечего делать, кроме как читать код ядра (много ). Кроме того, если вы перевернете бит, вам придется иметь дело с контрольными суммами на различных уровнях, которые могут либо исправить ошибку, либо просто отбросить кадр (, так что результат идентичен тому, что делает wmediumd ).
Я нашел способ, который мне подходит:
[Unit]
Description=Stop Service
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/home/user/stop-service.sh
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
Согласно моим исследованиям, служба systemd по умолчанию имеет время ожидания 90 секунд для каждой службы, чтобы выполнить свою команду остановки (ExecStop )перед отправкой сигнала терминала. TimeoutStopSec=300 установит время ожидания на 5 минут для этой конкретной службы.
Если вы хотите изменить время ожидания по умолчанию, вы можете найти файл /etc/systemd/system.conf и изменить значение DefaultTimeoutStopSec, а затем перезагрузить демон с помощью
systemctl daemon-reload
для загрузки нового значения.