You have to specify "RADIUS=1" on the make command line of pppd, so that the RADIUS stuff gets compiled in. If you also want utmp/wtmp logging, please define "RADIUS_WTMP_LOGGING=1".
The patched pppd binary has a new command line option radius which enables RADIUS support: This option enables authentication via RADIUS and also activates RADIUS accounting.
Of course you have to supply +pap or +chap on the command line as well because without them no authentication takes place.
Service-Type | Must be Framed. Otherwise RADIUS authentication fails. |
Framed-Protocol | Must be PPP. Otherwise RADIUS authentication fails. |
Framed-IP-Address | Is only used if it is a real IP address. The special values 0xffffffe (NAS should select IP address) and 0xffffffff (user should be allowed to select IP address) are ignored at the moment, so other pppd options take precedence. |
Framed-IP-Netmask | Is honoured. |
Idle-Timeout | Is honoured. Overrides idle-disconnect command line option. |
Session-Timeout | Not supported at the moment. |
Acct-Input-Octets | bytes received not in error (ppp_ioctects) |
Acct-Output-Octets | bytes send not in error (ppp_ooctects) |
Acct-Input-Packets | packets received (ppp_ipackets) |
Acct-Output-Packets | packets send (ppp_opackets) |
Acct-Session-Time | Session Time in seconds |
Framed-Address | IP-Address of the other site |
So the whole Accountingmessage is submitted via the Environmant-Variables.
The places of the calls to the radiusclientmodul comes from Lars Fenneberg. I have added the unitnumber to radiusmodulinterfaceroutines.
Caution: the Variables sockfd and ifunit,devnam are the global ones from ppp-2.2.0f, which still assumes that there is only one unit 0
When there are more than one unit, it may be good to make the clientport equal the Interfaceunitnumber.