l2tp_ctrl
l2tp_ctrl *ctrl;
int l2tp_call_init (l2tp_call *, l2tp_ctrl *);
int l2tp_call_recv_packet (l2tp_ctrl *, l2tp_call *, int, u_char *, int);
void l2tp_ctrl_destroy (l2tp_ctrl *);
l2tp_ctrl *l2tp_ctrl_create (void);
int l2tp_ctrl_send(l2tp_ctrl *, const void *, int);
int l2tp_ctrl_send_packet(l2tp_ctrl *, int, bytebuffer *);
int l2tp_ctrl_stop (l2tp_ctrl *, int);
bytebuffer *l2tp_ctrl_prepare_snd_buffer (l2tp_ctrl *, int);
void l2tp_ctrl_log (l2tp_ctrl *, int, const char *, ...) __attribute__((__format__ (__printf__, 3, 4)));
l2tp_ctrl *l2tpd_get_ctrl (l2tpd *, u_int);
void l2tpd_add_ctrl (l2tpd *, l2tp_ctrl *);
l2tp_call_recv_packet(l2tp_ctrl *ctrl, l2tp_call *_this, int mestype,
l2tp_call_init(l2tp_call *_this, l2tp_ctrl *ctrl)
l2tp_ctrl_txwin_size(l2tp_ctrl *_this)
l2tp_ctrl_txwin_is_full(l2tp_ctrl *_this)
l2tp_ctrl *
l2tp_ctrl_in_peer_window(l2tp_ctrl *_this, uint16_t seq)
l2tp_ctrl_in_our_window(l2tp_ctrl *_this, uint16_t seq)
l2tp_ctrl_send_packet(l2tp_ctrl *_this, int call_id, bytebuffer *bytebuf)
return calloc(1, sizeof(l2tp_ctrl));
l2tp_ctrl_recv_SCCRQ(l2tp_ctrl *_this, u_char *pkt, int pktlen, l2tpd *_l2tpd,
l2tp_ctrl_init(l2tp_ctrl *_this, l2tpd *_l2tpd, struct sockaddr *peer,
memset(_this, 0, sizeof(l2tp_ctrl));
l2tp_ctrl_send_StopCCN(l2tp_ctrl *_this, int result)
l2tp_ctrl_recv_StopCCN(l2tp_ctrl *_this, u_char *pkt, int pktlen)
l2tp_ctrl_send_SCCRP(l2tp_ctrl *_this)
l2tp_ctrl_send_HELLO(l2tp_ctrl *_this)
l2tp_ctrl_send_ZLB(l2tp_ctrl *_this)
l2tp_ctrl_prepare_snd_buffer(l2tp_ctrl *_this, int with_seq)
l2tp_ctrl_state_string(l2tp_ctrl *_this)
l2tp_ctrl_log(l2tp_ctrl *_this, int prio, const char *fmt, ...)
l2tp_ctrl_reload(l2tp_ctrl *_this)
l2tp_ctrl_destroy(l2tp_ctrl *_this)
l2tp_ctrl_send_disconnect_notify(l2tp_ctrl *_this)
l2tp_ctrl_stop(l2tp_ctrl *_this, int result)
l2tp_ctrl *_this;
l2tp_ctrl_send(l2tp_ctrl *_this, const void *msg, int len)
l2tp_ctrl_resend_una_packets(l2tp_ctrl *_this, bool resend)
l2tp_ctrl_destroy_all_calls(l2tp_ctrl *_this)
l2tp_ctrl_disconnect_all_calls(l2tp_ctrl *_this, int drop)
l2tp_ctrl_reset_timeout(l2tp_ctrl *_this)
l2tp_ctrl *ctrl;
static int l2tp_ctrl_init(l2tp_ctrl *, l2tpd *, struct sockaddr *, struct sockaddr *, void *);
static void l2tp_ctrl_reload(l2tp_ctrl *);
static int l2tp_ctrl_send_disconnect_notify(l2tp_ctrl *);
static int l2tp_ctrl_resend_una_packets(l2tp_ctrl *, bool);
static void l2tp_ctrl_destroy_all_calls(l2tp_ctrl *);
static int l2tp_ctrl_disconnect_all_calls(l2tp_ctrl *, int);
static void l2tp_ctrl_reset_timeout(l2tp_ctrl *);
static int l2tp_ctrl_txwin_size(l2tp_ctrl *);
static bool l2tp_ctrl_txwin_is_full(l2tp_ctrl *);
static bool l2tp_ctrl_in_peer_window(l2tp_ctrl *, uint16_t);
static bool l2tp_ctrl_in_our_window(l2tp_ctrl *, uint16_t);
static int l2tp_ctrl_recv_SCCRQ(l2tp_ctrl *, u_char *, int, l2tpd *, struct sockaddr *);
static int l2tp_ctrl_send_StopCCN(l2tp_ctrl *, int);
static int l2tp_ctrl_recv_StopCCN(l2tp_ctrl *, u_char *, int);
static void l2tp_ctrl_send_SCCRP(l2tp_ctrl *);
static int l2tp_ctrl_send_HELLO(l2tp_ctrl *);
static int l2tp_ctrl_send_ZLB(l2tp_ctrl *);
static const char *l2tp_ctrl_state_string(l2tp_ctrl *);
l2tp_ctrl *ctrl;
l2tp_ctrl *ctrl;
l2tp_ctrl *
l2tpd_add_ctrl(l2tpd *_this, l2tp_ctrl *ctrl)
l2tp_ctrl *l2tpctrl;
l2tp_ctrl *ctrl;