haker_fox 61 19 марта, 2019 Опубликовано 19 марта, 2019 · Жалоба Добрый день, коллеги! Что-то я уже несколько дней не могу разобраться с lwip 2.1.0. Официальная документация - это, скорее. её отсутствие. Я не могу понять, можно ли на этом стеке поднять PPPoS сервер. Присоединение к этому серверу будет через канал USB CDC. Что стало с документацией на этот стек? Она какая-то частично написанная... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 19 марта, 2019 Опубликовано 19 марта, 2019 · Жалоба 42 минуты назад, haker_fox сказал: Официальная документация - это, скорее. её отсутствие. Да, увы. Документация по PPP для версии 2.x.x попадалась в какой-то вики. Вечером дома поищу ссылку. 42 минуты назад, haker_fox сказал: Я не могу понять, можно ли на этом стеке поднять PPPoS сервер. Присоединение к этому серверу будет через канал USB CDC. Я поднимал клиента через GPRS/3G/4G модем. Кода там собственно для PPP написать нужно совсем чуть-чуть. Не думаю, что сервер должен чем-то сильно отличаться. Использовал сокеты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 19 марта, 2019 Опубликовано 19 марта, 2019 · Жалоба 32 minutes ago, Сергей Борщ said: Вечером дома поищу ссылку. Буду признателен) 32 minutes ago, Сергей Борщ said: Не думаю, что сервер должен чем-то сильно отличаться. Использовал сокеты. Гм... я так понял, там PPP именно в стеке уже реализован. И расчитывал, что этот код (вызовы api) можно использовать... Темерь у меня возникает такое чувство, что вся эта поддержка PPP в стеке для клиента, т.к. железка сама клиент. А сервера тютю) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grigorij 0 19 марта, 2019 Опубликовано 19 марта, 2019 · Жалоба 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. (думаю они будут выглядеть аналогично тому, как они реализуются для клиента) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 19 марта, 2019 Опубликовано 19 марта, 2019 · Жалоба 7 minutes ago, Grigorij said: Судя по этой части кода из ppp_opts.h (файл находиться в lwip/src/include/netif/ppp): О! Спасибо, и как я просмотрел...( 7 minutes ago, Grigorij said: При этом предварительно вам надо будет написать свою реализацию функций чтения/записи массива байт через USB Ага, это уже сделано) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба Так, и другой вопрос: можно как-то в Windows протестировать такое соединение? Т.е. нужен клиент pppos для windows. В мануалах на ось предлагают создать соединение с модемом. Но у меня же не модем... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба Вот что нашел: https://www.nongnu.org/lwip/2_0_x/group__ppp.html Извиняюсь за задержку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба 10 minutes ago, Сергей Борщ said: Извиняюсь за задержку. Ну что вы, всё в порядке! Спасибо за помощь!!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба 1 час назад, haker_fox сказал: Так, и другой вопрос: можно как-то в Windows протестировать такое соединение? Т.е. нужен клиент pppos для windows. В мануалах на ось предлагают создать соединение с модемом. Но у меня же не модем... Вот тут упоминается о некой Packet Sender. Не оно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба 48 minutes ago, Arlleex said: Вот тут упоминается о некой Packet Sender. Не оно? Там мужик линукс использовал для тестирования соединения по PPP. По уму надо брать порт lwIP под Windows и там запускать в юзерспейсе тот же самый PPP что и на микроконтроллере. Под Win 10 я сомневаюсь что найдутся штатные средства запуска голого PPP, поскольку он не поддерживает достаточный уровень защиты канала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба 57 minutes ago, Arlleex said: Вот тут упоминается о некой Packet Sender. Не оно? Нет, не оно. Там на МК создавали клиента. А у меня на МК сервер... 6 minutes ago, AlexandrY said: Под Win 10 я сомневаюсь что найдутся штатные средства запуска голого PPP У меня 7-ка. Пришлось окунаться в мир линукса... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба В 19.03.2019 в 09:02, haker_fox сказал: PPPoS сервер. Присоединение к этому серверу будет через канал USB CDC. Как в винде задаёте тип соединения? Чтобы она понимала, что на этом COM нужно запустить PPP-протокол. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба 33 minutes ago, jcxz said: Чтобы она понимала, что на этом COM нужно запустить PPP-протокол. Делал так, как здесь написано. Другие инструкции отличаются чуть чуть. Способа исключить модем и дозвон не нашёл. Сейчас разбираюсь с линуксовой pppd. Она вроде что-то позволяет. Но пока ничего не выходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба 1 час назад, haker_fox сказал: Делал так, как здесь написано. Спасибо. А для Андроида/Яблокофона подобного для этого PPPoS не находили? Меня конечно больше интересует последовательный канал образуемый BT/SPP, но в принципе - это точно такой же канал как и USB/CDC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 20 марта, 2019 Опубликовано 20 марта, 2019 · Жалоба 40 minutes ago, jcxz said: А для Андроида/Яблокофона подобного для этого PPPoS не находили? Нет, этим не занимался. Но у меня в винде, если быть откровенным, вообще ничего не вышло. Она упорно пытается звонить модемом, которого нет. А в линуксе как-то пошло медлееееннооо... 42 minutes ago, jcxz said: это точно такой же канал как и USB/CDC Ну да, как я понимаю PPPos вообще по любой физике можно пустить, хоть I2C при большом желании... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться