[freebsd] netgraph

Eugene Grosbein eugen at grosbein.net
Sun Apr 4 20:04:50 EEST 2021


02.04.2021 14:43, Nick Kostirya via freebsd пишет:
> Привет. 
> 
> У меня наивный вопрос про netgraph.
> 
> Я правильно понял, что при помощи ng_socket можно соединить два компьютера в одну сеть через, например, UART проводами или при помощи радио?
> Для этого лишь достаточно написать демона, который будет просто перекладывать байты из socket в UART сразу или передавать радиочипу?

Не этой нодой.

ng_socket это "переходник" между BSD-сокетами стека TCP/IP и внутренностями NETGRAPH и не более того.
То есть, если у нас есть некая абстрактная нода или сеть нод внутри NETGRAPH и их надо кормить
данными, приходящими из TCP/IP (или в обратную сторону, или в обе), для этого можно использовать ng_socket.

Для передачи данных (соединения в сеть) через UART штатный драйвер uart(4) уже создаёт файлы устройств
в /dev, плюс драйвер этот реализует абстракцию termios(4) line discipline и уже написаны демоны,
которые перекладывают байты в девайс и обратно: ppp, mpd5 и раньше ещё был slattach, но протокол SLIP
для работы поверх UART выпилили давно из FreeBSD (во время FreeBSD 4 он ещё работал).

Если вам интересно использование именно NETGRAPH через некое железо, то плясать надо от драйвера
этого железа, в какой форме драйвер принимает данные для отправки или выдаёт принятые от железа данные?

Если вы сами пишете такой драйвер - вполне возможно реализовать новую ноду NETGRAPH,
которая с одной стороны будет частью драйвера, общающейся с железом "напрямую",
а с другой стороны посредством нетграфовых хуков может быть соединена с ng_iface или ng_eiface
или ng_device.



More information about the freebsd mailing list