Jump to content
Калькуляторы

rp-pppoe 3.10 pppoe-server

делаю замену bras cisco , и столкнулся с проблемой которую не могу решить , абоненты изначально писали в service-name(имя службы)

что хотят и cisco 3825 все это пропускала...

а на rp-pppoe этого нет либо пустое либо то что укажешь в -S name

(сейчас прописано два service-name наиболее часто используемые) .

Ни кто код не правил pppoe-server.c ? самому найти не удалось

Edited by yazero

Share this post


Link to post
Share on other sites
а на rp-pppoe этого нет либо пустое либо то что укажешь в -S name
Ну их то можно написать несколько...

 

Ни кто код не правил pppoe-server.c ? самому найти не удалось
Нет, на такую тему не правил, но явно видно что отрывать надо вот тут:

 

    /* If PADI specified non-default service name, and we do not offer
      that service, DO NOT send PADO */
   if (requestedService.type) {
       int slen = ntohs(requestedService.length);
       if (slen) {
           for (i=0; i<NumServiceNames; i++) {
               if (slen == strlen(ServiceNames[i]) &&
                   !memcmp(ServiceNames[i], &requestedService.payload, slen)) {
                   ok = 1;
                   break;
               }
           }
       } else {
           ok = 1;             /* Default service requested */
       }
   } else {
       ok = 1;                 /* No Service-Name tag in PADI */
   }

   if (!ok) {
       /* PADI asked for unsupported service */
       return;
   }

 

Share this post


Link to post
Share on other sites

Тоже интересует, пытался править код но ничего не вышло.

Edited by disappointed

Share this post


Link to post
Share on other sites

Насколько я понимаю, решение принимать соединение или не принимать (по имени службы) принимает не сервер, а клиент.

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

Share this post


Link to post
Share on other sites
Тоже интересует, пытался править код но ничего не вышло.
А что именно пытался править.

Я из куска кода, который был приведен вообще не увидел варианта (!ok)=TRUE.

Если надо вернуть то, что клиент просит - дело не сложное, главное не нарушить приницпы выделения памяти под структуру.

Пришел типа запрос - скопировали оттуда тип сервиса, добавили в список элемент, а дальше уже работает тот код и все.

 

Share this post


Link to post
Share on other sites

Если кто-то возмется, реализуйте за одно и функционал "PADO-delay".

Другими словами необходимо иметь возможность управлять задержкой на посылку PADO. Желательно "на лету".

Это сильно упростит балансировку в отдельных случаях.

 

Share this post


Link to post
Share on other sites
А что именно пытался править.
Тут нет этого, в том что приведено только проверка на совпадение с запрошенным сервиснейм.

Там сразу ниже идёт генерация tags с нулевой длинной для пустого, либо сразу для всех сервиснеймов что указаны при запуске pppoe-server,

вот именно там и нужно заменить их на requestedService.payload как я понимаю, чтобы клиент получал желаемый ответ, но с си у меня плохо,

логически пробовал переделывать но не получилось.

Share this post


Link to post
Share on other sites

поснифил сегодня ответ PADO с cisco, она отвечает тем же service-name что запрашивает абонент...

наш програмер сидит читает http://www.google.ru/codesearch/p?hl=ru#Lm...poe-server.c%22 , с СИ тоже не дружит :-)

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this