1 /* 2 pmacct (Promiscuous mode IP Accounting package) 3 pmacct is Copyright (C) 2003-2020 by Paolo Lucente 4 */ 5 6 /* 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 */ 21 22 #include "pmacct.h" 23 #include "nfacctd.h" 24 25 struct utpl_field *(*get_ext_db_ie_by_type)(struct template_cache_entry *, u_int32_t, u_int16_t, u_int8_t); 26 char sll_mac[2][ETH_ADDR_LEN]; 27 struct host_addr mcast_groups[MAX_MCAST_GROUPS]; 28 int reload_map, reload_map_exec_plugins, reload_geoipv2_file; 29 int reload_map_bgp_thread, reload_log, reload_log_bgp_thread; 30 int reload_map_bmp_thread, reload_log_bmp_thread; 31 int reload_map_rpki_thread, reload_log_rpki_thread; 32 int reload_map_telemetry_thread, reload_log_telemetry_thread; 33 int reload_map_pmacctd; 34 int print_stats; 35 int reload_log_sf_cnt; 36 int data_plugins, tee_plugins; 37 int collector_port; 38 struct timeval reload_map_tstamp; 39 struct child_ctl2 dump_writers; 40 int debug; 41 struct configuration config; /* global configuration structure */ 42 struct plugins_list_entry *plugins_list; /* linked list of each plugin configuration */ 43 pid_t failed_plugins[MAX_N_PLUGINS]; /* plugins failed during startup phase */ 44 u_char dummy_tlhdr[16], empty_mem_area_256b[SRVBUFLEN]; 45 struct pm_pcap_device device; 46 struct pm_pcap_devices devices, bkp_devices; 47 struct pm_pcap_interfaces pm_pcap_if_map, pm_bkp_pcap_if_map; 48 struct pcap_stat ps; 49 struct sigaction sighandler_action; 50 51 int protocols_number; 52 53 u_int32_t PdataSz, ChBufHdrSz, CharPtrSz, CounterSz, HostAddrSz; 54 u_int32_t PpayloadSz, PextrasSz, PmsgSz, PvhdrSz, PtLabelTSz; 55 u_int32_t PmLabelTSz; 56 u_int32_t NfHdrV5Sz, NfHdrV9Sz; 57 u_int32_t IpFixHdrSz; 58 u_int32_t NfDataHdrV9Sz, NfTplHdrV9Sz, NfOptTplHdrV9Sz; 59 u_int32_t NfTplFieldV9Sz; 60 u_int32_t NfDataV5Sz; 61 u_int32_t IP4HdrSz, IP4TlSz, IP6HdrSz, IP6AddrSz, IP6TlSz; 62 u_int32_t MyTLHdrSz, TCPFlagOff; 63 u_int32_t SFSampleSz, SFLAddressSz, SFrenormEntrySz; 64 u_int32_t PptrsSz, UDPHdrSz, CSSz, MyTCPHdrSz, IpFlowCmnSz; 65 u_int16_t PbgpSz, PlbgpSz, PnatSz, PmplsSz, PtunSz; 66