3
3
* PPP library with GLib integration
5
* Copyright (C) 2009-2011 Intel Corporation. All rights reserved.
5
* Copyright (C) 2009-2010 Intel Corporation. All rights reserved.
7
7
* This program is free software; you can redistribute it and/or modify
8
8
* it under the terms of the GNU General Public License version 2 as
24
24
#define LCP_PROTOCOL 0xc021
25
25
#define CHAP_PROTOCOL 0xc223
26
26
#define IPCP_PROTO 0x8021
27
#define IPV6CP_PROTO 0x8057
28
27
#define PPP_IP_PROTO 0x0021
29
#define PPP_IPV6_PROTO 0x0057
32
30
#define DBG(p, fmt, arg...) do { \
81
79
#define put_network_short(p, val) \
82
80
(__put_unaligned_short(p, htons(val)))
82
#define ppp_info(packet) \
84
85
#define ppp_proto(packet) \
85
86
(get_host_short(packet + 2))
88
89
struct pppcp_data *lcp_new(GAtPPP *ppp, gboolean dormant);
89
90
void lcp_free(struct pppcp_data *lcp);
90
91
void lcp_protocol_reject(struct pppcp_data *lcp, guint8 *packet, gsize len);
91
void lcp_set_acfc_enabled(struct pppcp_data *pppcp, gboolean enabled);
92
void lcp_set_pfc_enabled(struct pppcp_data *pppcp, gboolean enabled);
94
93
/* IPCP related functions */
95
94
struct pppcp_data *ipcp_new(GAtPPP *ppp, gboolean is_server, guint32 ip);
97
96
void ipcp_set_server_info(struct pppcp_data *ipcp, guint32 peer_addr,
98
97
guint32 dns1, guint32 dns2);
100
/* IPv6 CP related functions */
101
struct pppcp_data *ipv6cp_new(GAtPPP *ppp, gboolean is_server,
102
const char *local, const char *peer,
104
void ipv6cp_free(struct pppcp_data *data);
106
99
/* CHAP related functions */
107
100
struct ppp_chap *ppp_chap_new(GAtPPP *ppp, guint8 method);
108
101
void ppp_chap_free(struct ppp_chap *chap);
109
void ppp_chap_process_packet(struct ppp_chap *chap, const guint8 *new_packet,
102
void ppp_chap_process_packet(struct ppp_chap *chap, const guint8 *new_packet);
112
104
/* TUN / Network related functions */
113
struct ppp_net *ppp_net_new(GAtPPP *ppp, int fd);
105
struct ppp_net *ppp_net_new(GAtPPP *ppp);
114
106
const char *ppp_net_get_interface(struct ppp_net *net);
115
void ppp_net_process_packet(struct ppp_net *net, const guint8 *packet,
107
void ppp_net_process_packet(struct ppp_net *net, const guint8 *packet);
117
108
void ppp_net_free(struct ppp_net *net);
118
109
gboolean ppp_net_set_mtu(struct ppp_net *net, guint16 mtu);
119
void ppp_net_suspend_interface(struct ppp_net *net);
120
void ppp_net_resume_interface(struct ppp_net *net);
122
111
/* PPP functions related to main GAtPPP object */
123
112
void ppp_debug(GAtPPP *ppp, const char *str);
134
123
void ppp_set_recv_accm(GAtPPP *ppp, guint32 accm);
135
124
void ppp_set_xmit_accm(GAtPPP *ppp, guint32 accm);
136
125
void ppp_set_mtu(GAtPPP *ppp, const guint8 *data);
137
void ppp_set_xmit_acfc(GAtPPP *ppp, gboolean acfc);
138
void ppp_set_xmit_pfc(GAtPPP *ppp, gboolean pfc);
139
126
struct ppp_header *ppp_packet_new(gsize infolen, guint16 protocol);