suricata
util-datalink.c
Go to the documentation of this file.
1 /* Copyright (C) 2021 Open Information Security Foundation
2  *
3  * You can copy, redistribute or modify this Program under the terms of
4  * the GNU General Public License version 2 as published by the Free
5  * Software Foundation.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * version 2 along with this program; if not, write to the Free Software
14  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
15  * 02110-1301, USA.
16  */
17 
18 #include "suricata-common.h"
19 #include "util-datalink.h"
20 #include "rust.h"
21 #include "decode.h"
22 
25 
26 void DatalinkSetGlobalType(int datalink)
27 {
29  if (datalink != g_datalink_value) {
31  }
32  } else {
33  g_datalink_value = datalink;
34  }
35 }
36 
37 inline int DatalinkGetGlobalType(void)
38 {
39  return g_datalink_value;
40 }
41 
43 {
44  return g_datalink_is_multiple == 1;
45 }
46 
47 static void *datalink_value_map;
48 
50 {
51  datalink_value_map = SCDatalinkInit();
52  SCDatalinkValueNameInsert(datalink_value_map, LINKTYPE_NULL, "NULL");
53  SCDatalinkValueNameInsert(datalink_value_map, LINKTYPE_ETHERNET, "EN10MB");
54  SCDatalinkValueNameInsert(datalink_value_map, LINKTYPE_LINUX_SLL, "LINUX_SLL");
55  SCDatalinkValueNameInsert(datalink_value_map, LINKTYPE_PPP, "PPP");
56  SCDatalinkValueNameInsert(datalink_value_map, LINKTYPE_RAW, "RAW");
57  SCDatalinkValueNameInsert(datalink_value_map, LINKTYPE_RAW2, "RAW2");
58  SCDatalinkValueNameInsert(datalink_value_map, LINKTYPE_GRE_OVER_IP, "GRE_RAW");
59  SCDatalinkValueNameInsert(datalink_value_map, LINKTYPE_NULL, "NULL");
60  SCDatalinkValueNameInsert(datalink_value_map, LINKTYPE_CISCO_HDLC, "C_HDLC");
61  SCDatalinkValueNameInsert(datalink_value_map, LINKTYPE_IPV4, "IPv4");
62  SCDatalinkValueNameInsert(datalink_value_map, LINKTYPE_IPV6, "IPv6");
63 }
64 
66 {
67  SCDatalinkDeInit(datalink_value_map);
68 }
69 
70 const char *DatalinkValueToName(int datalink_value)
71 {
72  return SCDatalinkValueToName(datalink_value_map, datalink_value);
73 }
rust.h
decode.h
suricata-common.h