Перейти к содержанию
    

Добрый день, коллеги! Что-то я уже несколько дней не могу разобраться с lwip 2.1.0. Официальная документация - это, скорее. её отсутствие. Я не могу понять, можно ли на этом стеке поднять PPPoS сервер. Присоединение к этому серверу будет через канал USB CDC. Что стало с документацией на этот стек? Она какая-то частично написанная...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

42 минуты назад, haker_fox сказал:

Официальная документация - это, скорее. её отсутствие.

Да, увы. Документация по PPP для версии 2.x.x попадалась в какой-то вики. Вечером дома поищу ссылку.

 

42 минуты назад, haker_fox сказал:

Я не могу понять, можно ли на этом стеке поднять PPPoS сервер. Присоединение к этому серверу будет через канал USB CDC.

Я поднимал клиента через GPRS/3G/4G модем. Кода там собственно для PPP написать нужно совсем чуть-чуть. Не думаю, что сервер должен чем-то сильно отличаться. Использовал сокеты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

32 minutes ago, Сергей Борщ said:

Вечером дома поищу ссылку.

Буду признателен)

32 minutes ago, Сергей Борщ said:

Не думаю, что сервер должен чем-то сильно отличаться. Использовал сокеты.

Гм... я так понял, там PPP именно в стеке уже реализован. И расчитывал, что этот код (вызовы api) можно использовать...

Темерь у меня возникает такое чувство, что вся эта поддержка PPP в стеке для клиента, т.к. железка сама клиент. А сервера тютю)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 minutes ago, haker_fox said:

Темерь у меня возникает такое чувство, что вся эта поддержка PPP в стеке для клиента, т.к. железка сама клиент. А сервера тютю)

Судя по этой части кода из ppp_opts.h (файл находиться в lwip/src/include/netif/ppp):

/**
 * PPP_SERVER==1: Enable PPP server support (waiting for incoming PPP session).
 *
 * Currently only supported for PPPoS.
 */
#ifndef PPP_SERVER
#define PPP_SERVER                      0
#endif

Поддержка сервера есть (сам эту опцию я не использовал). Судя по описанию (lwip/doc/ppp.txt) код у вас должен быть примерно следующий:

/*
 * Initiate PPP server listener
 * ============================
 */

/*
 * Basic PPP server configuration. Can only be set if PPP session is in the
 * dead state (i.e. disconnected). We don't need to provide thread-safe
 * equivalents through PPPAPI because those helpers are only changing
 * structure members while session is inactive for lwIP core. Configuration
 * only need to be done once.
 */
ip4_addr_t addr;

/* Set our address */
IP4_ADDR(&addr, 192,168,0,1);
ppp_set_ipcp_ouraddr(ppp, &addr);

/* Set peer(his) address */
IP4_ADDR(&addr, 192,168,0,2);
ppp_set_ipcp_hisaddr(ppp, &addr);

/* Set primary DNS server */
IP4_ADDR(&addr, 192,168,10,20);
ppp_set_ipcp_dnsaddr(ppp, 0, &addr);

/* Set secondary DNS server */
IP4_ADDR(&addr, 192,168,10,21);
ppp_set_ipcp_dnsaddr(ppp, 1, &addr);

/* Auth configuration, this is pretty self-explanatory */
ppp_set_auth(ppp, PPPAUTHTYPE_ANY, "login", "password");

/* Require peer to authenticate */
ppp_set_auth_required(ppp, 1);

/*
 * Only for PPPoS, the PPP session should be up and waiting for input.
 *
 * Note: for PPPoS, ppp_connect() and ppp_listen() are actually the same thing.
 * The listen call is meant for future support of PPPoE and PPPoL2TP server
 * mode, where we will need to negotiate the incoming PPPoE session or L2TP
 * session before initiating PPP itself. We need this call because there is
 * two passive modes for PPPoS, ppp_set_passive and ppp_set_silent.
 */
ppp_set_silent(pppos, 1);

/*
 * Initiate PPP listener (i.e. wait for an incoming connection), can only
 * be called if PPP session is in the dead state (i.e. disconnected).
 */
ppp_listen(ppp);

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 minutes ago, Grigorij said:

Судя по этой части кода из ppp_opts.h (файл находиться в lwip/src/include/netif/ppp):

О! Спасибо, и как я просмотрел...(

7 minutes ago, Grigorij said:

При этом предварительно вам надо будет написать свою реализацию функций чтения/записи массива байт через USB

Ага, это уже сделано)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так, и другой вопрос: можно как-то в Windows протестировать такое соединение? Т.е. нужен клиент pppos для windows. В мануалах на ось предлагают создать соединение с модемом. Но у меня же не модем...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот что нашел: https://www.nongnu.org/lwip/2_0_x/group__ppp.html

Извиняюсь за задержку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 minutes ago, Сергей Борщ said:

Извиняюсь за задержку.

Ну что вы, всё в порядке! Спасибо за помощь!!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, haker_fox сказал:

Так, и другой вопрос: можно как-то в Windows протестировать такое соединение? Т.е. нужен клиент pppos для windows. В мануалах на ось предлагают создать соединение с модемом. Но у меня же не модем...

Вот тут упоминается о некой Packet Sender. Не оно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

48 minutes ago, Arlleex said:

Вот тут упоминается о некой Packet Sender. Не оно?

Там мужик линукс использовал для тестирования соединения по PPP.

По уму надо брать порт lwIP под Windows и там запускать в юзерспейсе тот же самый PPP что и на микроконтроллере.  
Под Win 10 я сомневаюсь что найдутся штатные средства запуска голого PPP, поскольку он не поддерживает достаточный уровень защиты канала.   

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

57 minutes ago, Arlleex said:

Вот тут упоминается о некой Packet Sender. Не оно?

Нет, не оно. Там на МК создавали клиента. А у меня на МК сервер...

6 minutes ago, AlexandrY said:

Под Win 10 я сомневаюсь что найдутся штатные средства запуска голого PPP

У меня 7-ка. Пришлось окунаться в мир линукса...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 19.03.2019 в 09:02, haker_fox сказал:

PPPoS сервер. Присоединение к этому серверу будет через канал USB CDC.

Как в винде задаёте тип соединения? Чтобы она понимала, что на этом COM нужно запустить PPP-протокол.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

33 minutes ago, jcxz said:

Чтобы она понимала, что на этом COM нужно запустить PPP-протокол.

Делал так, как здесь написано. Другие инструкции отличаются чуть чуть. Способа исключить модем и дозвон не нашёл. Сейчас разбираюсь с линуксовой pppd. Она вроде что-то позволяет. Но пока ничего не выходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, haker_fox сказал:

Делал так, как здесь написано.

Спасибо.

А для Андроида/Яблокофона подобного для этого PPPoS не находили? Меня конечно больше интересует последовательный канал образуемый BT/SPP, но в принципе - это точно такой же канал как и USB/CDC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

40 minutes ago, jcxz said:

А для Андроида/Яблокофона подобного для этого PPPoS не находили?

Нет, этим не занимался. Но у меня в винде, если быть откровенным, вообще ничего не вышло. Она упорно пытается звонить модемом, которого нет. А в линуксе как-то пошло медлееееннооо...

42 minutes ago, jcxz said:

это точно такой же канал как и USB/CDC

Ну да, как я понимаю PPPos вообще по любой физике можно пустить, хоть I2C при большом желании...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...