LINUX.ORG.RU

передача пакета


0

0

сейчас разбираюсь с сетевыми драйверами.

есть стандарт для функции отправки пакетов int (*hard_start_xmit) (struct sk_buff *skb, struct net_device *dev);

эта функция, как я понимаю, разбирает skb (в которой записаны пакет, его длина и .т.п) и вызывает "железячную" функцию отправки

подскажите плиз, а как приложение должно вызывать эту функцию и передавать свои пакеты? оно должно само создавать структуру sk_buff? как приложению достучаться до драйвера?

anonymous

Ответ на: комментарий от anonymous

ты о чём? user space приложение вообще не должно работать на прямую с драйвером. Оно работает на application layer и посредством сокетов общается с transport/network layer, который в свою очередь общается непосредственно с драйвером (link layer) посредством структур sk_buff.

anonymous
()
Ответ на: комментарий от anonymous

да это ясно. то есть приложение делает так:

int socket(int domain, int type, int protocol); int send(int s, const void *msg, size_t len, int flags); ?

а как поучить пакет?

anonymous
()
Ответ на: комментарий от anonymous

>а как поучить пакет?
Возможно это поможет:
man 7 packet

andron01
()
Ответ на: комментарий от BreadFan

Может не пакет ему нужен а просто данные из сокета? Так и читаются через read.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.