initial support to PPP protocol
[decrew:groink.git] / src / protocols / ppp.h
1 /*
2  * Copyright (c) Denatured Ethyl Crew
3  *
4  * This file is part of GroinK.
5  *
6  * GroinK is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * GroinK is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with GroinK.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 #ifndef GROINK_PPP_H
20 #define GROINK_PPP_H
21
22 #define PPP_HDR_LEN 4
23
24 #define PPP_PROTO_IP 0x0021      /* Internet Protocol */
25 #define PPP_PROTO_IPV6 0x0057    /* Internet Protocol Version 6*/
26 #define PPP_PROTO_CHAP 0xc223    /* Cryptographic Handshake Auth. Protocol */
27 #define PPP_PROTO_PAP 0xc023     /* Password Authentication Protocol */
28 #define PPP_PROTO_LCP 0xc021     /* Link Control Protocol */
29 #define PPP_PROTO_ECP 0x8053
30 #define PPP_PROTO_CCP 0x80fd     /* Compression Control Protocol */
31 #define PPP_PROTO_IPCP 0x8021    /* IP Control Protocol */
32 #define PPP_PROTO_IPV6CP 0x8057  /* IPv6 Control Protocol */
33
34 typedef struct _grk_ppp {
35   _uint8 flag;
36   _uint8 addr;
37   _uint8 control;
38   _uint16 proto;
39 } ppp_t;
40
41 typedef struct _grk_lcp_ppp {
42   _uint8 code;
43   _uint8 id;
44   _uint16 len;
45 } ppp_lcp_t;
46
47 void register_ppp();
48
49 #endif /* GROINK_PPP_H */