[freebsd] netgraph
Nick Kostirya
nikolay.kostirya at i11.co
Mon Apr 5 06:31:23 EEST 2021
On Mon, 5 Apr 2021 00:04:50 +0700
Eugene Grosbein <eugen at grosbein.net> wrote:
> 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 можно использовать ng_tty(4)?
Общение с железкой осуществляется через gpio и uart. Сначала она настраивается через uart, потом при помощи gpio переключается в режим, когда через uart (/dev/cuaU* или /dev/ttyU*) идут только данные, которые прямо без обработки можно заворачивать в TCP/IP.
Получится, после настрой железки, при помощи ng_tty создать netgraph ноду и ее при помощи ng_ksocket соединить ее к стеку TCP/IP?
>
> Для передачи данных (соединения в сеть) через UART штатный драйвер uart(4) уже создаёт файлы устройств
> в /dev, плюс драйвер этот реализует абстракцию termios(4) line discipline и уже написаны демоны,
> которые перекладывают байты в девайс и обратно: ppp, mpd5 и раньше ещё был slattach, но протокол SLIP
> для работы поверх UART выпилили давно из FreeBSD (во время FreeBSD 4 он ещё работал).
>
> Если вам интересно использование именно NETGRAPH через некое железо, то плясать надо от драйвера
> этого железа, в какой форме драйвер принимает данные для отправки или выдаёт принятые от железа данные?
Драйверов пока нет. Другие железки работают через spi протокол. Но что-то они не хочет дружить с микрокомпьютером под управление FreeBSD, так что скорее всего сделаю через промежуточный микропроцессор, который spi будет преобразовывать в uart. Тем более, что упомянутая выше так сама делает.
>
> Если вы сами пишете такой драйвер - вполне возможно реализовать новую ноду NETGRAPH,
> которая с одной стороны будет частью драйвера, общающейся с железом "напрямую",
> а с другой стороны посредством нетграфовых хуков может быть соединена с ng_iface или ng_eiface
> или ng_device.
More information about the freebsd
mailing list