summaryrefslogtreecommitdiff
path: root/accel-pppd
AgeCommit message (Collapse)Author
2013-04-22shaper: install shaper in SES_PRE_UPDmitry Kozlov
2013-04-22pppd_compat: create radattr file in SES_PRE_UPDmitry Kozlov
2013-04-22ipoe: start dhcp socket on ipoe interfaces for unicast dhcp messagesDmitry Kozlov
2013-04-19ipoe: fixed start=dhcpv4,shared=1 modeKozlov Dmitry
2013-04-19Merge branch 'master' of ssh://git.code.sf.net/p/accel-ppp/codeKozlov Dmitry
2013-04-19ipoe: accept packets only from specified interfacesKozlov Dmitry
2013-04-19ipoe: fix local-net handlingKozlov Dmitry
2013-04-17l2tp: Handle 64 bits attributesGuillaume Nault
Define l2tp_packet_add_int64() to create attributes of 64 bits long integers. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-04-17l2tp: Use random length Challenge AVPGuillaume Nault
Set Challenge attribute using a random length so that its size can't be guessed when hide-avps is on. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-04-17l2tp: Full hidden AVPs supportGuillaume Nault
Add option "hide-avps" in the "l2tp" section for hiding attributes sent to peer. This same option is also made available on accel-ppp's command line interface: accel-ppp# tunnel create tunnel peer-addr 192.0.2.1 hide-avps 1 Attribute hiding is performed upon attribute creation (in the l2tp_packet_add_*() functions family) rather than upon packet sending. This avoid running the cipher for every retransmission; the counterpart is that l2tp_packet_print() can't dump original attributes of hidden AVPs. Currently, only one random vector is used for all hidden AVPs in a packet. This is easily extensible though, as the 'last_RV' field in struct l2tp_packet_t may be overridden to use new vectors for next AVPs. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-04-17utils: Add random buffer generation functionGuillaume Nault
Define and export the u_randbuf() function that fills a buffer with random data. Convert L2TP's challenge generation code for using it. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-04-17l2tp: Handle incoming hidden AVPsGuillaume Nault
Decode hidden AVPs on reception. This is transparent for functions in l2tp.c (except for the presence of the Random Vector AVP). Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-04-17l2tp: Store length of conf_secretGuillaume Nault
Secret length is used quite often especially when handling hidden AVPs. Store conf_secret length together with conf_secret to avoid calling strlen(conf_secret) every time. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-04-17l2tp: Fix endianness of 64 bits AVPs (reception)Guillaume Nault
Received attributes of type ATTR_TYPE_INT64 are transferred to upper layer in network byte order while any other integer type uses host byte order. This patch converts int64 values to host byte order so that they can be used like other integer types. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-04-17l2tp: Fix double string AVP copyGuillaume Nault
When adding a string AVP to an L2TP packet, the attribute value is allocated and set using strdup(). There's no need to memcpy() it again afterwards. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-04-15ipoe: fixed ses->client_id and ses->relay_agent initializationDmitry Kozlov
2013-04-11radius: implemented default-realm optionKozlov Dmitry
2013-03-28l2tp: Add general packet processing log messagesGuillaume Nault
Use "info2" log messages to inform about packets sent or processed. For HELLO and ZLB messages, the log level is set to "debug" as these are transmitted quite often and don't bring much information (this same logging policy is used for logging packets when conf_verbose is on). Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-28l2tp: Log packet retransmission informationGuillaume Nault
Log message for any packet retransmission action using log_tunnel() and level "info2". Remove l2tp_conn_log() since it is no longer used. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-28l2tp: Log all discarded messages in the same wayGuillaume Nault
Add a log message (warn level) for any discarded message type. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-28l2tp: Log session establishment/disconnection informationGuillaume Nault
Use info1 messages to log information about main session establishment and disconnection steps. These messages are: * establishment requests and their origin (CLI, ICRQ or OCRQ) * establishment confirmation (when session is really established) * PPP establishment * disconnection requests and their reason Other information of interest use info2. These include: * Peer Session ID setting * Session internal structure freeing Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-28l2tp: Log tunnel establishment/disconnection informationGuillaume Nault
Use info1 messages to log information about main tunnel establishment and disconnection steps. These messages are: * establishment requests and their origin (CLI or SCCRQ) * establishment confirmation (when tunnel is really established) * disconnection requests and their reason Other information of interest use info2. These include: * Peer port update * Peer Tunnel ID setting * Tunnel internal structure freeing Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-28l2tp: Use consistent packet logging policyGuillaume Nault
Adapt packet logging policy to make it consistent across L2TP packet handling functions: * Don't log messages if conf_verbose is off. * Log HELLO and ZLB messages with log_debug and use log_info2 for any other message type. * Log retransmissions with log_info2, no matter the message type. * Log outgoing messages right before sending them. * Log incoming messages right before analysing their message type. This unifies the way l2tp_conn_read() and l2tp_udp_read() log incoming messages. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-28l2tp: Handle WEN messagesGuillaume Nault
Implement minimal WEN messages processing, so that they get properly acknowledged. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-28l2tp: Avoid tunnel destruction when possibleGuillaume Nault
Handle incomming messages differently depending on their Message Type: * Close tunnel only when handling tunnel establishment messages fails (SCCRP and SCCCN) and everytime a StopCCN is received. * Never close tunnel after reception of HELLO, SLI or session establishment messages (ICRQ and OCRQ). * Ignore messages with invalid first attribute type. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-28l2tp: Parse incoming CDN messagesGuillaume Nault
Interpret AVPs present in CDN to provide user with better diagnostic. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-28l2tp: Handle allocation failure in l2tp_session_connect()Guillaume Nault
Allocate PPP channel name using the string size to be stored and check for allocation failure. Use two snprintf() and a _malloc() instead of asprintf() so that allocated memory will be visible by memdebug. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-28l2tp: Use consistent return values for l2tp_{recv, send}*()Guillaume Nault
In all reception or sending functions, return 0 on success or if incomming message has been ignored (l2tp_recv_*() only). Return -1 upon any processing error. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-28l2tp: Remove some redundant log messagesGuillaume Nault
There is no need to warn about missing Challenge when handling SCCRQ comming from a host for which a secret exists: this will be done automatically upon SCCRP generation (by l2tp_tunnel_genchallresp()). Using the log message from l2tp_tunnel_genchallresp() has the advantage of working for missing Challenge AVPs in both SCCRQ and SCCRP messages. This patch also removes a redundant log message in l2tp_session_recv() when handling unknown message types. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-28l2tp: Simplify some function call sequencesGuillaume Nault
* Avoid retrieving tunnel and session contexts manually; use l2tp_{tunnel,session}_self() instead. * Use l2tp_session_disconnect() instead of using an l2tp_send_CDN(); l2tp_session_free() sequence. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-18radius: assign ipv4 either if gw-ip-address is not specified for non-ppp ↵Dmitry Kozlov
sessions
2013-03-18ipoe: make ipv4 address visible for other modulesDmitry Kozlov
2013-03-18ipoe: add support for ipaddr typeo of dhcp-mask attributeDmitry Kozlov
2013-03-18ipoe: fixed username=ifname, shared=0 modeDmitry Kozlov
2013-03-18ipoe: early drop routes when dropping sessions (V3)Dmitry Kozlov
2013-03-18Revert "ipoe: early drop routes when dropping sessions (V2)"Dmitry Kozlov
This reverts commit df6157aee109d7642a9c8c054bc9778f04007f05.
2013-03-18ipoe: early drop routes when dropping sessions (V2)Dmitry Kozlov
2013-03-18Revert "ipoe: early drop routes when dropping sessions"Dmitry Kozlov
This reverts commit 3108115ec7816c99e737d3623a2fb63875af058e.
2013-03-18ipoe: early drop routes when dropping sessionsKozlov Dmitry
2013-03-16ipoe: drop previous session when new one detected in shared=0 modeKozlov Dmitry
2013-03-16l2tp: Don't close tunnel upon error on HELLOGuillaume Nault
If a HELLO message can't be acknowledged just log an error as tunnel doesn't need to get closed. If too many HELLO messages aren't acknowledged, the peer will close the tunnel itself. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-16l2tp: Notify peer upon tunnel/session timeoutGuillaume Nault
If tunnel or session establishment timeout expires, send StopCCN or CDN to notify peer before closing tunnel/session. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-16l2tp: Don't depent on StopCCN for tunnel disconnectionGuillaume Nault
Always disconnect tunnel once l2tp_tunnel_disconnect() is called, even if sending StopCCN failed. Change the way unknown message types are handled to comply with new l2tp_tunnel_disconnect() signature. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-16l2tp: Improve error handling of duplicate messagesGuillaume Nault
Don't terminate tunnel in case of error while handling a duplicate message. Such errors aren't critical enough to justify termination of a tunnel and all of its sessions. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-16l2tp: Free tunnels that couldn't startGuillaume Nault
When starting a tunnel created upon user request, free it in case of error. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-16l2tp: Fix early message sending during tunnel establishmentGuillaume Nault
A side effect of setting peer port to zero when sending SCCRQ messages is that the tunnel can't send any new message before receiving first peer's answer (this doesn't apply to retransmissions as peer port is set in the original packet). It is then impossible to send StopCCN messages within this time frame. This patch fixes this issue using a new tunnel flag which indicates if tunnel's peer port has a default value or if it has been set after reception of peer's first message. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-16l2tp: Centralise management of tunnel establishment timersGuillaume Nault
Handle tunnel timeout timers in l2tp_tunnel_start() and l2tp_tunnel_connect(). This avoids timer code duplication across functions that are spectific to the tunnel establishment mode. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-16l2tp: Centralise management of session establishment timersGuillaume Nault
Start and stop session timeout timers in l2tp_tunnel_start_session() and l2tp_session_connect(). This unifies timers management across the four different ways of creating sessions. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-16l2tp: Dedicated function for replying to incomming callsGuillaume Nault
Define l2tp_session_incall_reply() which can be used as parameter for l2tp_tunnel_start_session(). This removes the need for updating session's state in l2tp_send_ICRP() and normalises the way incomming and outgoing sessions are handled. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-03-16l2tp: Merge incomming and outgoing session startingGuillaume Nault
Define l2tp_session_place_call() which can start either an incomming or outgoing session depending on the 'sess->lns_mode' flag. This removes the need for testing session mode before calling l2tp_tunnel_start_session(). Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>