Я пишу ловушку сетевого фильтра в Linux. Теперь для некоторого исходящего пакета мне нужно добавить некоторую полезную нагрузку. Чтобы убедиться, что в буфере достаточно места, я проверяю доступное пространство с помощью
skb_tailroom(skb)
Теперь, если возвращенное свободное пространство меньше длины полезной нагрузкиЯ добавляю, мне нужно добавить немного места. Я не очень ясно, какой правильный способ сделать это.
Я видел некоторые конкретные функции, такие как
skb_copy_expand
, но это не выглядит правильнымодин для ловушки netfilter, потому что он собирается изменить исходный указатель буфера. Может быть "krealloc" на указатель данных? Я пытался найти ссылку, чтобы понять, есть ли «рекомендуемый» способ сделать это, но я ничего не нашел. Не могли бы вы дать мне несколько советов по этому поводу?
Спасибо,