Официальный форум СВД Встраиваемые Системы
08 Февраля, 2012, 06:30:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Драйвер TAP для QNX6  (Прочитано 3614 раз)
Олег Большаков
Администратор
Старожил

Сообщений: 2111


Читаю...


WWW
« Ответ #15 : 12 Апреля, 2010, 17:34:47 »

Подготовлена версия QEMU 0.12.3 для QNX: http://forum.kpda.ru/index.php/topic,353.0.html .

Небольшая инструкция по настройке сети для QEMU в QNX: http://forum.kpda.ru/index.php/topic,369.0.html .
Записан

LH
Опытный пользователь

Сообщений: 100


« Ответ #16 : 24 Апреля, 2010, 04:50:30 »

Можно ли надеяться на публикацию devnp-qtap.so, собранного для платформы ARM?
Записан
Олег Большаков
Администратор
Старожил

Сообщений: 2111


Читаю...


WWW
« Ответ #17 : 24 Апреля, 2010, 12:18:09 »

Выложил сборку для ARM LE (в первом сообщении). Драйвер собирался из тех же самых исходников, в названии архива указана дата сборки. Функционал должен быть как в версии для x86, но мы не проводили тестирования этого драйвера.
Записан

LH
Опытный пользователь

Сообщений: 100


« Ответ #18 : 25 Апреля, 2010, 17:02:10 »

Спасибо!

Драйвер смонтировался и образовал сетевой интерфейс tap0 на ARM-контроллере.

Было бы очень полезно увидеть пример чтения и записи в /dev/tap0 для приема-передачи IP-пакетов в
стек сетевых протоколов.
Записан
Олег Большаков
Администратор
Старожил

Сообщений: 2111


Читаю...


WWW
« Ответ #19 : 25 Апреля, 2010, 17:12:01 »

Посмотрите, как работают с TAP программы OpenVPN и VTun. Они доступны в исходниках. Думаю, что этого должно быть достаточно.

Вполне возможно, что в ближайшее время будет доступен и другой пример.

PS1: Но надо учитывать, что устройство TAP работает не IP-пакетами, а с ethernet-кадрами.
Записан

LH
Опытный пользователь

Сообщений: 100


« Ответ #20 : 18 Мая, 2010, 18:44:16 »

Пытаюсь прочитать из /dev/tap0.
Не получается сделать неблокирующее чтение.
По fd = open( port, O_RDWR | O_NONBLOCK);  и последующем

len=read(fd, buf, LEN);

программа все равно блокируется на ф-ции read().

В исходниках VTun не нашел решения: как сделать неблокирующее чтение.

М.б. есть к-то комадны в драйвер с помощью devctl()?
Записан
Олег Большаков
Администратор
Старожил

Сообщений: 2111


Читаю...


WWW
« Ответ #21 : 18 Мая, 2010, 20:48:22 »

Да, верно, есть команды. Можно сделать, например, так:

Код:
fcntl(fd ,F_SETFL, O_NONBLOCK);
Записан

LH
Опытный пользователь

Сообщений: 100


« Ответ #22 : 19 Мая, 2010, 20:52:10 »

Похоже что
fcntl(fd ,F_SETFL, O_NONBLOCK);
работает так же, как и
fd = open( port, O_RDWR | O_NONBLOCK);  - блокируется на чтении.

Я был не прав: и исходниках VTun в linkfd.c видно как проверить наличие данных на чтение с помощью select().

Хотелось бы прочитать описание применения TAP-драйвера:
- нужно ли в Ethernet-пакете иметь контрольную сумму перед запписью его в TAP-драйвер?
- нужно ли пакет записывать целиком или можно по-частям?
- какие devctl() управляют работой драйвера...
Записан
LH
Опытный пользователь

Сообщений: 100


« Ответ #23 : 14 Июня, 2010, 07:20:17 »

Драйвер devnp-qtap.so открывает устройство /dev/tap и позволяет читать/писать Ethernet пакеты сетевого стека.

Портирован ли в QNX TUN-драйвер  (devnp-qtun.so ) , которым можно открыть устройство /dev/tun для чтения/записи ip-пакетов сетевого стека?

Cпасибо.
Записан
Олег Большаков
Администратор
Старожил

Сообщений: 2111


Читаю...


WWW
« Ответ #24 : 14 Июня, 2010, 22:04:31 »

Хотелось бы прочитать описание применения TAP-драйвера:
- нужно ли в Ethernet-пакете иметь контрольную сумму перед запписью его в TAP-драйвер?
- нужно ли пакет записывать целиком или можно по-частям?
- какие devctl() управляют работой драйвера...

Боюсь, что какого-то подробного описания TAP не существует. При разработке и портировании ПО в QNX следует ориентироваться на вариант драйвера из NetBSD. Постараюсь ответить на Ваши вопросы:

1. Контрольная сумма не нужна, всё должно работать без неё.
2. Пакет нужно записывать целиком. Если среда, по которой Вы передаёте ethernet кадры допускает фрагментацию кадров, то Вам следует собирать пакет на принимающей стороне прежде чем отправлять их в стек.
3. На данный момент реализована поддержка только FIONBIO (неблокирующие операции Smiley ).

TUN драйвер нами пока не портирован в QNX. Мне также не известно о какой-либо другой реализации драйвера TUN в QNX.
Записан

karlson911
Интересующийся

Сообщений: 2


« Ответ #25 : 26 Января, 2011, 18:36:43 »

Не подскажете, есть ли возможность загрузить ваш драйвер на версии 6.3.0?

Уже нашел информацию, что сетевая подсистема полностью поменялась, но может все таки как-то можно это сделать?
Записан
Олег Большаков
Администратор
Старожил

Сообщений: 2111


Читаю...


WWW
« Ответ #26 : 26 Января, 2011, 21:44:57 »

Драйвер TAP разработан для сетевой подсистемы io-pkt и использует её особенности. В QNX 6.3 используется другая сетевая подсистема -- io-net. Так что просто так запустить TAP-драйвер а QNX 6.3.0 не получится.
Записан

karlson911
Интересующийся

Сообщений: 2


« Ответ #27 : 27 Января, 2011, 15:50:33 »

Драйвер TAP разработан для сетевой подсистемы io-pkt и использует её особенности. В QNX 6.3 используется другая сетевая подсистема -- io-net. Так что просто так запустить TAP-драйвер а QNX 6.3.0 не получится.

Спасибо.
Записан
Сергей Зыль
Администратор
Ветеран

Сообщений: 568



WWW
« Ответ #28 : 28 Января, 2011, 19:21:32 »

Не подскажете, есть ли возможность загрузить ваш драйвер на версии 6.3.0?

Насколько для Вас принципиально использование версии 6.3.0?
Записан

сотрудник СВД Встраиваемые Системы
Олег Большаков
Администратор
Старожил

Сообщений: 2111


Читаю...


WWW
« Ответ #29 : 30 Сентября, 2011, 17:38:09 »

Обновился драйвер devnp-qtap.so. Добавлена опция mac, добавлен usage. Бинарные версии для различных архитектур собраны в один архив. Ссылка на скачивание в первом сообщении.
Записан

Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2011 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.16 | SMF © 2006-2009, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС