Перейти к содержимому
Калькуляторы

1) Да. Скорость режется на интерфейсе независимо от того, что у Вас там - хоть IPX.

2) Есть похожее.

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


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

1500 держало... думаю и 2000 без проблем прожует

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


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

более 4000 активных, правда карта 10g.

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


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

Уважаемы коллеги, хочу потестить accel pppпротив mpd5. Есть несколько вопросов.

 

1)Как обстоят дела с IPv6? Можно ли выдавать адреса из бд , нарезка скорости для v6?

2)Можно ли через CoA отправить аналог атрибута ipfw-table-static в mpd5. Используем для блокирование IP-клиента и редирект на страницу "оплати"

3) У кто держит по 2000 сессий и по 2 гбит ?Справляется , не падает? Сейчас держим под 2000 сессий и по 1.7 гбит на вход, CPU не более 50 процентов на каждое ядро.Только routing и шейпер, ната нет

 

По поводу кол-ва сессий. Сам accel-pppd держит и 8000(с аккаунтинг-периодом 60 секунд)(с современным ядром, а не типа 2.6.32, на старых ядрах может и на 1000-2000 начнёт тупить из-за медленного создания интерфейсов). А вот по трафику это вопрос к accel-pppd не относится, это уже freebsd kernel vs linux kernel.

 

Если у вас IPv6 wirespeed, а IPv4 по тарифу, то придётся вместо встроенного шейпера использовать pppd-compat, т.е. писать скрипт, который будет заливать правила в ядро

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


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

обновился до wheezy kernel 3.2.0-4-amd64 , стал ругаться accel-ppp.

пересобрал(скачал последний c git), результат тотже. даже не стартует.

accel-pppd[4679]: segfault at 20 ip 00007f34381b7fc0 sp 00007fff385ed948 error 6 in libpthread-2.13.so[7f34381ac000+17000]

 

root@debian:/var/log# readelf -d /usr/local/sbin/accel-pppd

 

Dynamic section at offset 0x2d740 contains 34 entries:
 Tag        Type                         Name/Value
0x0000000000000001 (NEEDED)             Shared library: [libtriton.so]
0x0000000000000001 (NEEDED)             Shared library: [librt.so.1]
0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
0x0000000000000001 (NEEDED)             Shared library: [libcrypto.so.1.0.0]
0x0000000000000001 (NEEDED)             Shared library: [libssl.so.1.0.0]
0x0000000000000001 (NEEDED)             Shared library: [libpcre.so.3]
0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
0x0000000000000001 (NEEDED)             Shared library: [ld-linux-x86-64.so.2]
0x000000000000000f (RPATH)              Library rpath: [/usr/local/lib64/accel-ppp]
0x000000000000000c (INIT)               0x404b40
0x000000000000000d (FINI)               0x42427c
0x0000000000000019 (INIT_ARRAY)         0x62d658
0x000000000000001b (INIT_ARRAYSZ)       216 (bytes)
0x000000000000001a (FINI_ARRAY)         0x62d730
0x000000000000001c (FINI_ARRAYSZ)       8 (bytes)
0x0000000000000004 (HASH)               0x400298
0x000000006ffffef5 (GNU_HASH)           0x400b30
0x0000000000000005 (STRTAB)             0x402a00
0x0000000000000006 (SYMTAB)             0x400f48
0x000000000000000a (STRSZ)              3843 (bytes)
0x000000000000000b (SYMENT)             24 (bytes)
0x0000000000000015 (DEBUG)              0x0
0x0000000000000003 (PLTGOT)             0x62da30
0x0000000000000002 (PLTRELSZ)           3576 (bytes)
0x0000000000000014 (PLTREL)             RELA
0x0000000000000017 (JMPREL)             0x403d48
0x0000000000000007 (RELA)               0x403c10
0x0000000000000008 (RELASZ)             312 (bytes)
0x0000000000000009 (RELAENT)            24 (bytes)
0x000000006ffffffe (VERNEED)            0x403b40
0x000000006fffffff (VERNEEDNUM)         6
0x000000006ffffff0 (VERSYM)             0x403904
0x0000000000000000 (NULL)               0x0

Изменено пользователем yazero

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


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

с шейпером разобрался. Вопрос по блокировке клиента, не дропая его с сервера. В MPD я делал через CoA отправлял атрибут mpd-table-static,где номер таблицы и Framed-IP заносился в table N и в фаерволе было правило , блокировать трафик и делать редирект на веб сервер со страницей "ЗАПЛАТИ".

Возможно ли реализовать это на linux и с помощью accel? Кто делал?

Изменено пользователем roysbike

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


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

более 4000 активных, правда карта 10g.

 

шейпер там же? Сколько прокачивает и сколько PPS?

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


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

После freebsd как то не привычно, подскажите как реализован shaper ? Надо ли использовать up down скрипты или он сам подгружает ? Можете показать кусок конфига , атрибут и переменную. Желателньо аналог констуркции cisco-like rate-limit

 

Встроенный шейпер очень ограничен по функционалу. Всё что можно задать это направление(вверх/вниз) и время(для ночных ускорений и прочего). Если хочется что-то сложнее, то скрипты, там ваша фантазия ограничена только возможностями ядра(а они весьма неплохие)

Синтаксис описан тут(только сейчас секция называется на [tbf], а [shaper]):

http://sourceforge.net/apps/trac/accel-ppp/wiki/ShaperAdvanced

 

По поводу pps-ов и прочего это вам в ветку linux softrouter, к сигнализации(т.е. к accel-pppd) это никак не относится

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


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

Помогите с шейпером. Режет в download 1 мбит , upload 20 мбит. А должен 20/20

 

[modules]
path=/usr/local/lib/accel-ppp
log_file

pppoe

auth_chap_md5
auth_pap

radius
ippool
sigchld
pppd_compat

shaper


[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4

[ppp]
verbose=1
min-mtu=1280
mtu=1400
mru=1400
ipv4=require
ipv6=deny
ipv6-intf-id=0:0:0:1
ipv6-peer-intf-id=0:0:0:2
ipv6-accept-peer-intf-id=1
lcp-echo-interval=20
lcp-echo-timeout=120

[auth]

[pptp]
verbose=1

[pppoe]
interface=eth1
service-name=*
verbose=1


[dns]
dns1=8.8.8.8

[wins]

[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
nas-identifier=accel-ppp
nas-ip-address=127.0.0.1
server=127.0.0.1,testing123,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0
dae-server=127.0.0.1:3799,testing123
verbose=1

[client-ip-range]
10.0.0.0/8

[ip-pool]
gw-ip-address=192.168.0.1
attr=Framed-Pool
192.168.0.2-255
192.168.1.1-255,pool1
192.168.2.1-255,pool2
192.168.3.1-255,pool3
192.168.4.0/24

[log]
log-file=/var/log/accel-ppp/accel-ppp.log
log-emerg=/var/log/accel-ppp/emerg.log
log-fail-file=/var/log/accel-ppp/auth-fail.log
copy=1
level=5

[log-pgsql]
conninfo=user=log
log-table=log

[pppd-compat]
ip-up=/etc/ppp/ip-up
ip-down=/etc/ppp/ip-down
ip-change=/etc/ppp/ip-change
radattr-prefix=/var/run/radattr
verbose=1

[chap-secrets]

[shaper]
up-limiter=tbf
down-limiter=tbf
attr-down=PPPD-Downstream-Speed-Limit
attr-up=PPPD-Upstream-Speed-Limit
verbose=1



[cli]
telnet=0.0.0.0:2000
tcp=10.10.0.2:2001

[snmp]
master=0
agent-name=accel-ppp

[connlimit]
limit=10/min
burst=3
timeout=60

[ipv6-pool]
fc00:0:1::/48,64
delegate=fc00:1::/36,48

[ipv6-dns]

[ipv6-dhcp]
verbose=1
pref-lifetime=604800
valid-lifetime=2592000
route-via-gw=1

 

 

 

accel-ppp# show sessions match username roys
ifname | username |    calling-sid    |     ip     | rate-limit  | type  | comp | state  |  uptime  
--------+----------+-------------------+------------+-------------+-------+------+--------+----------
ppp0   | roys6    | 34:15:9e:1c:64:06 | 172.30.0.1 | 20480/20480 | pppoe |      | active | 00:02:40 

 

 

root@home:~# tc -s class show dev ppp0
class tbf 1:1 parent 1:

root@home:~# tc qdisc 
qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc tbf 1: dev ppp0 root refcnt 2 rate 20480Kbit burst 250Kb lat 50.0ms 
qdisc ingress ffff: dev ppp0 parent ffff:fff1 ---------------- 

Изменено пользователем roysbike

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


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

В MPD я делал через CoA отправлял атрибут mpd-table-static,где номер таблицы и Framed-IP заносился в table N и в фаерволе было правило , блокировать трафик и делать редирект на веб сервер со страницей "ЗАПЛАТИ". Возможно ли реализовать это на linux и с помощью accel? Кто делал?
есть возможность выполнить скрипт при получении CoA:

[pppd-compat]

ip-change=

 

Помогите с шейпером. Режет в download 1 мбит , upload 20 мбит. А должен 20/20
проверь отключены ли оффлоады на картах:

ethtool -k eth0

ethtool -k eth1

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


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

2xeb незнаю почему такой косяк был с запуском accel-ppp, но взял конфиг по умолчанию, старутет без проблем, потом переписал конфиг (убрал пробелы к конце строк и .т.п)

и все запустилось.

Но возникла новая проблема, перевел 600 абонентов разом на accel и в логах появилась ошибка radius out of memory (жаль в логах нет отметки вермени), и bras перестал пускать в инет

абонентов.проверил с него ping в мир, пинга нет.

Accel-ppp регистрировал новых , отправлял и принимал lcp.

проверил жив ли quagga с ospf , все есть , маршруты на месте, проверил ip route тоже все на месте (тоесть zebra отработала).

остановил accel-ppp и пинг пошел наружу.

 

сглупил не посмотрел free, top в ядре. и не глянул show stat. есть atop буду см логи.

Изменено пользователем yazero

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


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

Настраиваю в режиме ipoe. accel-ppp version 4654e90f1903756523808afd6a00112060c67dc2

столкнулся с

[2014-03-15 16:07:19]:  info: eth3: send [RADIUS(1) Access-Request id=1 <User-Name "eth3"> <NAS-Identifier "test"> <NAS-IP-Address 192.168.20.223> 
<NAS-Port 7> 
<NAS-Port-Type Ethernet> <Calling-Station-Id "00:0c:42:89:64:02"> <Called-Station-Id "eth3"> <User-Password >]
[2014-03-15 16:07:19]:  info: eth3: recv [RADIUS(1) Access-Accept id=1 <Acct-Interim-Interval 60> <Service-Type Framed-User> <Framed-Protocol PPP> БVendor-Specific > <Vendor-Specific >]
[2014-03-15 16:07:19]:  info: eth3: eth3: authentication succeeded
[2014-03-15 16:07:19]:  info: ipoe0: send [RADIUS(1) Accounting-Request id=1 <User-Name "eth3"> <NAS-Identifier "test"><NAS-IP-Address 192.168.20.223> 
<NAS-Port 190> 
<NAS-Port-Type Ethernet> <Calling-Station-Id "00:0c:42:89:64:02"> <Called-Station-Id "eth3"> <Acct-Status-Type Start> <Acct-Authentic RADIUS> <Acct-Session-Id "092f02a6476653b6"> <Acct-Session-Time 0> <Acct-Input-Octets 0> <Acct-Output-Octets 0> <Acct-Input-Packets 0> <Acct-Output-Packets 0> <Acct-Input-Gigawords 0> <Acct-Output-Gigawords 0> <Framed-IP-Address 192.168.3.2>]
[2014-03-15 16:07:19]:  info: ipoe0: recv [RADIUS(1) Accounting-Response id=1]
[2014-03-15 16:07:19]:  info: ipoe0: ipoe: session started

 

При авторизации <NAS-Port 7>

а при аккаунтинге <NAS-Port 190>

По идее так не должно быть.

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


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

brodayga,

Вероятно, это потому что access-request приходит для eth3, а accounting-request - для ipoe0.

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


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

brodayga,

Вероятно, это потому что access-request приходит для eth3, а accounting-request - для ipoe0.

Может быть. Как сделать чтоб корректно приходило.

конфиг простой

[ipoe]
verbose=3
lua-file=/etc/accel-ppp.lua
username=lua:username
password=username1
lease-time=600
max-lease-time=3600
shared=1
ifcfg=1
mode=L2
start=dhcpv4
interface=eth3,range=192.168.3.0/24

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


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

brodayga,

Мне кажется, что в варианте shared=1 - никак.

Только shared=0, vlan per user (можно с qinq) и vlan-mon.

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


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

brodayga,

Мне кажется, что в варианте shared=1 - никак.

Только shared=0, vlan per user (можно с qinq) и vlan-mon.

Буду ждать, что ответит Xeb. Номер порта должен совпадать. У меня биллинг по нему определяет каким запросам авторизации соответствует запрос аккаунтинга. По другому как их ещё сопоставить.

Изменено пользователем brodayga

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


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

Ну а вообще было бы логичней для shared=1 , нумеровать порты аналогично ppp, т.е. не номер интерфейса в ОС,a ipoe10 NAS-Port=10, так же как и для ppp10 NAS-Port=10

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


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

to brodayga

Была тажа самая проблема с IPoE (shared=1) и NAS-Port с биллингом.

Решил его на стороне биллинга - в предобработке Access/Accounting для IPoE (NAS-Port-Type=15) принудительно заменяется NAS-Port=XXXX на NAS-Port=0.

Биллинг NAS-Port=0 отрабатывает корректно.

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


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

to brodayga

Была тажа самая проблема с IPoE (shared=1) и NAS-Port с биллингом.

Решил его на стороне биллинга - в предобработке Access/Accounting для IPoE (NAS-Port-Type=15) принудительно заменяется NAS-Port=XXXX на NAS-Port=0.

Биллинг NAS-Port=0 отрабатывает корректно.

Можно и так конечно.биллинг случаем не бг?. Но в билинге есть приятная мелочь связаная с нас порт. Если например нас перезагрузился, без корректного завершения сессий то при старте новых сессий, в билинге завершаются сессии с номерами портов новых сессий.Не дожидаясь закрытия сессий по таймауту, как следствие меньше ошибок с превышен лимит сессий(контроль количества одновременных сессий на стороне биллинга).

 

 

Не получилось. Билинг закрывает первую сессию. У вас не бг. :)

Изменено пользователем brodayga

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


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

to brodayga

Была тажа самая проблема с IPoE (shared=1) и NAS-Port с биллингом.

Решил его на стороне биллинга - в предобработке Access/Accounting для IPoE (NAS-Port-Type=15) принудительно заменяется NAS-Port=XXXX на NAS-Port=0.

Биллинг NAS-Port=0 отрабатывает корректно.

Можно и так конечно.биллинг случаем не бг?. Но в билинге есть приятная мелочь связаная с нас порт. Если например нас перезагрузился, без корректного завершения сессий то при старте новых сессий, в билинге завершаются сессии с номерами портов новых сессий.Не дожидаясь закрытия сессий по таймауту, как следствие меньше ошибок с превышен лимит сессий(контроль количества одновременных сессий на стороне биллинга).

 

 

Не получилось. Билинг закрывает первую сессию. У вас не бг. :)

Наверное огорчу Вас, но как раз BG (Inet) - на момент запуска был 5.2, сейчас 6.0.

Кстати использую его в связке с екселем только, как радиус.

 

Packet type: Access-Request
Identifier: 1
Authenticator: {DA D6 A3 91 BD 4F 00 AA 99 D6 F6 DB 67 BC 1E 53}
Attributes:
 User-Name=sw0137:10
 NAS-Identifier=accel-ppp
 NAS-IP-Address=192.168.118.19
 NAS-Port=18
 Calling-Station-Id=00:24:1d:99:ae:a2
 NAS-Port-Type=15
 Called-Station-Id=vlan137

03-14/00:50:43  INFO [rdsLstnr-p-9-t-6] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS:
Packet type: Access-Request
Identifier: 1
Authenticator: {DA D6 A3 91 BD 4F 00 AA 99 D6 F6 DB 67 BC 1E 53}
Attributes:
 User-Name=sw0137:10
 NAS-Identifier=accel-ppp
 NAS-IP-Address=192.168.118.19
 NAS-Port=0
 Calling-Station-Id=00:24:1d:99:ae:a2
 NAS-Port-Type=15
 Called-Station-Id=vlan137
Common options: {agentRemoteId=sw0137, interfaceId=10}
03-14/00:50:43  INFO [rdsLstnr-p-9-t-6] InetNas - Found agentDevice:27
03-14/00:50:43  INFO [rdsLstnr-p-9-t-6] InetNas - Search serv on deviceId=27; interfaceId=10
03-14/00:50:43  INFO [rdsLstnr-p-9-t-6] InetRadiusProcessor - [username=sw0137:10] Authenticated as inetServId:2122
03-14/00:50:43  INFO [rdsLstnr-p-9-t-6] InetApplication - TariffOptionMap: {}
03-14/00:50:43  INFO [rdsLstnr-p-9-t-6] InetApplication - inetServ[id=2122] balance ok: 116.46 [0]
03-14/00:50:43  INFO [rdsLstnr-p-9-t-6] InetApplication - OptionSet: [12]
03-14/00:50:43  INFO [rdsLstnr-p-9-t-6] InetRadiusProcessor - Write new waiting connection to DB
03-14/00:50:43  INFO [rdsLstnr-p-9-t-6] InetRadiusProcessor - New connection id=2456539
03-14/00:50:43  INFO [rdsLstnr-p-9-t-6] InetRadiusProcessor - Return code=0
03-14/00:50:43  INFO [rdsLstnr-p-9-t-6] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS:
Packet type: Access-Accept
Identifier: 1
Authenticator: {}
Attributes:
 Acct-Interim-Interval=300
 Session-Timeout=604800
 Filter-Id=50000/8000
 Framed-Pool=inet-pool
 Framed-Compression=1

radius 03-15/15:09:16  INFO [rdsLstnr-p-8-t-1] update - REQUEST:
Packet type: Accounting-Request
Identifier: 66
Authenticator: {63 C6 80 CE 58 29 E0 BF 43 36 E0 E8 64 FF E8 BC}
Attributes:
 User-Name=sw0137:10
 NAS-Identifier=accel-ppp
 NAS-IP-Address=192.168.118.19
 NAS-Port=30725
 Framed-IP-Address=10.102.6.175
 Acct-Input-Octets=6449476
 Acct-Output-Octets=181123557
 Acct-Status-Type=3
 Acct-Session-Time=19500
 Acct-Input-Packets=74878
 Acct-Session-Id=10e8575f464da1d4
 Acct-Authentic=1
 Acct-Output-Packets=135712
 Acct-Output-Gigawords=0
 Acct-Input-Gigawords=0
 NAS-Port-Type=15
 Calling-Station-Id=00:24:1d:99:ae:a2
 Called-Station-Id=vlan137
radius 03-15/15:09:16  INFO [rdsLstnr-p-8-t-1] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS:
Packet type: Accounting-Request
Identifier: 66
Authenticator: {63 C6 80 CE 58 29 E0 BF 43 36 E0 E8 64 FF E8 BC}
Attributes:
 User-Name=sw0137:10
 NAS-Identifier=accel-ppp
 NAS-IP-Address=192.168.118.19
 NAS-Port=0
 Framed-IP-Address=10.102.6.175
 Acct-Input-Octets=6449476
 Acct-Output-Octets=181123557
 Acct-Status-Type=3
 Acct-Session-Time=19500
 Acct-Input-Packets=74878
 Acct-Session-Id=10e8575f464da1d4
 Acct-Authentic=1
 Acct-Output-Packets=135712
 Acct-Output-Gigawords=0
 Acct-Input-Gigawords=0
 NAS-Port-Type=15
 Calling-Station-Id=00:24:1d:99:ae:a2
 Called-Station-Id=vlan137
Common options: {agentRemoteId=sw0137, interfaceId=10}
radius 03-15/15:09:16  INFO [rdsLstnr-p-8-t-1] InetRadiusProcessor - Session 10e8575f464da1d4 found.
radius 03-15/15:09:16  INFO [rdsLstnr-p-8-t-1] update - RESPONSE:
Packet type: Accounting-Response
Identifier: 66
Authenticator: {05 4C AA A2 60 05 45 36 8C 67 CE 65 1A 34 79 73}
Attributes:

Process time update: 1

 

Изменено пользователем nik247

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


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

Наверное огорчу Вас, но как раз BG (Inet) - на момент запуска был 5.2, сейчас 6.0.

Кстати использую его в связке с екселем только, как радиус.

Нет не огорчите. только рад за вас. Но у вас модуль инет и он очень сильно отличается от диалап который у меня.

Это уже офтопик.

 

Вопрос в том что номер порта должен совпадать и в момент авторизации и в аккаунтинге.

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


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

Не собирается драйвер:

[100%] Generating driver/pptp.ko
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c: In function ‘pptp_xmit’:
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:388:10: error: unknown field ‘oif’ specified in initializer
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:388:10: warning: missing braces around initializer [-Wmissing-braces]
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:388:10: warning: (near initialization for ‘fl.u’) [-Wmissing-braces]
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:389:9: error: unknown field ‘nl_u’ specified in initializer
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:389:9: error: extra brace group at end of initializer
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:389:9: error: (near initialization for ‘fl’)
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:390:12: error: extra brace group at end of initializer
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:390:12: error: (near initialization for ‘fl’)
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:392:7: warning: excess elements in struct initializer [enabled by default]
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:392:7: warning: (near initialization for ‘fl’) [enabled by default]
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:393:9: error: unknown field ‘proto’ specified in initializer
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:393:9: warning: excess elements in struct initializer [enabled by default]
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:393:9: warning: (near initialization for ‘fl’) [enabled by default]
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:397:3: warning: passing argument 2 of ‘ip_route_output_key’ from incompatible pointer type [enabled by default]
include/net/route.h:119:30: note: expected ‘struct flowi4 *’ but argument is of type ‘struct rtable **’
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:397:3: error: too many arguments to function ‘ip_route_output_key’
include/net/route.h:119:30: note: declared here
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:397:11: warning: assignment makes integer from pointer without a cast [enabled by default]
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:524:18: error: ‘struct rtable’ has no member named ‘rt_dst’
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:525:18: error: ‘struct rtable’ has no member named ‘rt_src’
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:555:2: warning: passing argument 1 of ‘ip_select_ident’ from incompatible pointer type [enabled by default]
include/net/ip.h:257:20: note: expected ‘struct sk_buff *’ but argument is of type ‘struct iphdr *’
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c: In function ‘pptp_connect’:
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:862:9: error: unknown field ‘nl_u’ specified in initializer
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:862:9: error: unknown field ‘ip4_u’ specified in initializer
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:863:12: error: unknown field ‘daddr’ specified in initializer
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:864:7: error: unknown field ‘saddr’ specified in initializer
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:865:7: error: unknown field ‘tos’ specified in initializer
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:866:9: error: unknown field ‘proto’ specified in initializer
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:866:9: warning: excess elements in struct initializer [enabled by default]
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:866:9: warning: (near initialization for ‘fl’) [enabled by default]
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:873:3: warning: passing argument 2 of ‘ip_route_output_key’ from incompatible pointer type [enabled by default]
include/net/route.h:119:30: note: expected ‘struct flowi4 *’ but argument is of type ‘struct rtable **’
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:873:3: error: too many arguments to function ‘ip_route_output_key’
include/net/route.h:119:30: note: declared here
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:893:34: error: ‘PPP_MTU’ undeclared (first use in this function)
/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.c:893:34: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [/home/nickmas/accel-ppp-1.7.3/build/driver/driver/pptp.o] Error 1
make[3]: *** [_module_/home/nickmas/accel-ppp-1.7.3/build/driver/driver] Error 2
make[2]: *** [driver/driver/pptp.ko] Error 2
make[1]: *** [driver/CMakeFiles/pptp_drv.dir/all] Error 2
make: *** [all] Error 2

 

Ubuntu 12.04.4 LTS (GNU/Linux 3.8.0-36-generic x86_64)
accel-ppp-1.7.3

 

Нужна помощь!

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


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

В 3.8 уже есть pptp, просто не собирайте его в accel-e

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


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

Вопрос к Xeb если сделать так:

 

static void ipoe_session_start(struct ipoe_session *ses)

{

int r;

char *passwd;

struct ifreq ifr;

struct unit_cache *uc;

 

__sync_add_and_fetch(&stat_starting, 1);

 

if (!ses->ses.username) {

strncpy(ses->ses.ifname, ses->serv->ifname, AP_IFNAME_LEN);

 

ipoe_session_set_username(ses);

 

if (!ses->ses.username) {

ipoe_session_finished(&ses->ses);

return;

}

}

 

ses->ses.unit_idx = ses->serv->ifindex;

 

/*My insert */

if ((ses->ifindex == -1)&& (ses->serv->opt_shared )) {

pthread_mutex_lock(&uc_lock);

if (!list_empty(&uc_list)) {

uc = list_entry(uc_list.next, typeof(*uc), entry);

ses->ifindex = uc->ifindex;

list_del(&uc->entry);

--uc_size;

pthread_mutex_unlock(&uc_lock);

mempool_free(uc);

} else {

pthread_mutex_unlock(&uc_lock);

ses->ifindex = ipoe_nl_create(0, 0, ses->serv->opt_mode == MODE_L2 ? ses->serv->ifname : NULL, ses->hwaddr);

if (ses->ifindex == -1) {

log_ppp_error("ipoe: failed to create interface\n");

ap_session_terminate(&ses->ses, TERM_NAS_ERROR, 1);

return;

}

}

 

memset(&ifr, 0, sizeof(ifr));

ifr.ifr_ifindex = ses->ifindex;

if (ioctl(sock_fd, SIOCGIFNAME, &ifr, sizeof(ifr))) {

log_ppp_error("ipoe: failed to get interface name\n");

ses->ifindex = -1;

ap_session_terminate(&ses->ses, TERM_NAS_ERROR, 1);

return;

}

 

strncpy(ses->ses.ifname, ifr.ifr_name, AP_IFNAME_LEN);

ses->ses.ifindex = ses->ifindex;

ses->ses.unit_idx = ses->ifindex;

ses->ctrl.dont_ifcfg = 0;

}

/*My insert */

 

 

 

 

triton_event_fire(EV_CTRL_STARTING, &ses->ses);

triton_event_fire(EV_CTRL_STARTED, &ses->ses);

 

ap_session_starting(&ses->ses);

 

if (!conf_noauth) {

r = pwdb_check(&ses->ses, ses->ses.username, PPP_PAP, conf_password ? conf_password : ses->ses.username);

if (r == PWDB_NO_IMPL) {

passwd = pwdb_get_passwd(&ses->ses, ses->ses.username);

if (!passwd)

r = PWDB_DENIED;

else {

r = PWDB_SUCCESS;

_free(passwd);

}

}

 

if (r == PWDB_DENIED) {

/*My insert */

if ((ses->ifindex != -1)&& (ses->serv->opt_shared )) {

if (uc_size < conf_unit_cache && ipoe_nl_modify(ses->ifindex, 0, 0, "", NULL)) {

uc = mempool_alloc(uc_pool);

uc->ifindex = ses->ifindex;

pthread_mutex_lock(&uc_lock);

list_add_tail(&uc->entry, &uc_list);

++uc_size;

pthread_mutex_unlock(&uc_lock);

} else

ipoe_nl_delete(ses->ifindex);

ses->ifindex = -1;

}

/*My insert */

 

 

if (conf_ppp_verbose)

log_ppp_warn("authentication failed\n");

if (conf_l4_redirect_on_reject && !ses->dhcpv4_request && ses->ifindex != -1) {

l4_redirect_list_add(ses->yiaddr, ses->ifindex);

ses->ifindex = -1;

}

ap_session_terminate(&ses->ses, TERM_AUTH_ERROR, 0);

return;

}

}

 

 

У меня нет точного представления о структуре кода да и на си никогда не писал. Не получу ли я глюки.

А так все заработало,nas port совпадает. Пока тестирую.

И второй попутный вопрос,

если для шаред сделать что то типо sprintf(ses->ses.ifname, "ipoe%i", ses->ses.unit_idx);

ses->ses.unit_idx используеться только для радиус или ещё гдето?

Изменено пользователем brodayga

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


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

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

  Разрешено не более 75 смайлов.

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

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

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