Отправить пакет на сетевое устройство из char * buf в ядре с помощью sk_buff - PullRequest
1 голос
/ 15 августа 2011

Я собрал буфер char * из sk_buff (перехватил пакет и прошел через skb-> head до skb_> end), передал этот буфер на другой ПК. А теперь я хочу отправить этот пакет в сеть с нового ПК. Как я могу отправить это? При использовании dev_queue_xmit () мне пришлось реконструировать структуру sk_buff из char * и длины данных. Это возможно? Или я могу использовать сырой сокет для повторной отправки моих данных?

1 Ответ

0 голосов
/ 15 августа 2011

Я полагаю, вам нужно построить sk_buff, , а не реконструировать.Кроме того, я не думаю, что разумно было бы когда-либо собирать char* из него.

sk_buff просто представляет поток байтов, состоящий из отдельных частей, поэтому их не нужно копировать всепо месту при составлении пакета.Вы не должны собирать один буфер из sk_buff, но если у вас есть один буфер, просто заполните новый sk_buff одной частью, указывающей на буфер, и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...