initial support to PPP protocol
[decrew:groink.git] / src / protocols / sll.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_SLL_H
20 #define GROINK_SLL_H
21
22 /*
23  * Linux "cooked" capture encapsulation:
24  * +---------------------------+
25  * |        Packet type        |
26  * |        (2 Octets)         |
27  * +---------------------------+
28  * |       ARPHRD_ type        |
29  * |        (2 Octets)         |
30  * +---------------------------+
31  * | Link-layer address length |
32  * |         (2 Octets)        |
33  * +---------------------------+
34  * |    Link-layer address     |
35  * |         (8 Octets)        |
36  * +---------------------------+
37  * |        Protocol type      |
38  * |         (2 Octets)        |
39  * +---------------------------+
40  * |         Payload           |
41  * .                           .
42  * .                           .
43  * .                           .
44  *
45  * More info: http://www.tcpdump.org/linktypes/LINKTYPE_LINUX_SLL.html
46  *
47  */
48
49 typedef struct _grk_sll {
50   _uint16 type;       /* Packet type */
51   _uint16 arp_hdr;    /* ARPHDR_ type */
52   _uint16 addr_len;   /* Link-layer address length */
53   char addr[8];       /* Link-layer address */
54   _uint16 proto;      /* Protocol type */
55 } sll_t;
56
57 #define SLL_HDR_LEN 12
58
59 void register_sll();
60
61 #endif /* GROINK_SLL_H */