diff --git a/examples/lib/libcapture/main.c b/examples/lib/libcapture/main.c index 8d285b40d13c..44a41a325948 100644 --- a/examples/lib/libcapture/main.c +++ b/examples/lib/libcapture/main.c @@ -107,7 +107,7 @@ static void *SimpleWorker(void *arg) * internal Packet access. */ PKT_SET_SRC(p, PKT_SRC_WIRE); p->ts = SCTIME_FROM_TIMEVAL(&pkthdr.ts); - p->datalink = datalink; + SCPacketSetDatalink(p, datalink); SCPacketSetLiveDevice(p, device); SCPacketSetReleasePacket(p, ReleasePacket); diff --git a/examples/plugins/ci-capture/source.c b/examples/plugins/ci-capture/source.c index c6953b2f2590..28602935f77d 100644 --- a/examples/plugins/ci-capture/source.c +++ b/examples/plugins/ci-capture/source.c @@ -20,6 +20,7 @@ #include "tm-modules.h" #include "tm-threads-common.h" #include "tm-threads.h" +#include "packet.h" #include "source.h" @@ -73,7 +74,7 @@ static TmEcode ReceiveLoop(ThreadVars *tv, void *data, void *slot) struct timeval now; gettimeofday(&now, NULL); p->ts = SCTIME_FROM_TIMEVAL(&now); - p->datalink = LINKTYPE_ETHERNET; + SCPacketSetDatalink(p, LINKTYPE_ETHERNET); p->flags |= PKT_IGNORE_CHECKSUM; if (unlikely(PacketCopyData(p, DNS_REQUEST, sizeof(DNS_REQUEST)) != 0)) { diff --git a/plugins/pfring/source-pfring.c b/plugins/pfring/source-pfring.c index 516196254686..5ec11f816822 100644 --- a/plugins/pfring/source-pfring.c +++ b/plugins/pfring/source-pfring.c @@ -197,7 +197,7 @@ static inline void PfringProcessPacket(void *user, struct pfring_pkthdr *h, Pack /* PF_RING all packets are marked as a link type of ethernet * so that is what we do here. */ - p->datalink = LINKTYPE_ETHERNET; + SCPacketSetDatalink(p, LINKTYPE_ETHERNET); /* In the past, we needed this vlan handling in cases * where the vlan header was stripped from the raw packet. diff --git a/src/source-af-packet.c b/src/source-af-packet.c index 0a72a9b1b230..331539dfd4c4 100644 --- a/src/source-af-packet.c +++ b/src/source-af-packet.c @@ -773,7 +773,8 @@ static void AFPReadFromRingSetupPacket( h.h2->tp_status |= TP_STATUS_USER_BUSY; SCPacketSetLiveDevice(p, ptv->livedev); - p->datalink = ptv->datalink; + SCPacketSetDatalink(p, ptv->datalink); + ptv->pkts++; AFPReadApplyBypass(ptv, p); @@ -972,7 +973,7 @@ static inline int AFPParsePacketV3(AFPThreadVars *ptv, struct tpacket_block_desc ptv->pkts++; SCPacketSetLiveDevice(p, ptv->livedev); - p->datalink = ptv->datalink; + SCPacketSetDatalink(p, ptv->datalink); if ((ptv->flags & AFP_VLAN_IN_HEADER) && (ppd->tp_status & TP_STATUS_VLAN_VALID || ppd->hv1.tp_vlan_tci)) { diff --git a/src/source-af-xdp.c b/src/source-af-xdp.c index 3c368e92c22e..e02e00b56e92 100644 --- a/src/source-af-xdp.c +++ b/src/source-af-xdp.c @@ -33,6 +33,7 @@ #include "suricata-common.h" #include "suricata.h" #include "decode.h" +#include "packet.h" #include "packet-queue.h" #include "threads.h" #include "threadvars.h" @@ -784,7 +785,8 @@ static TmEcode ReceiveAFXDPLoop(ThreadVars *tv, void *data, void *slot) } PKT_SET_SRC(p, PKT_SRC_WIRE); - p->datalink = LINKTYPE_ETHERNET; + SCPacketSetDatalink(p, LINKTYPE_ETHERNET); + SCPacketSetLiveDevice(p, ptv->livedev); SCPacketSetReleaesPacket(p, AFXDPReleasePacket); p->flags |= PKT_IGNORE_CHECKSUM; diff --git a/src/source-dpdk.c b/src/source-dpdk.c index 6949a46964ca..22e1898dc981 100644 --- a/src/source-dpdk.c +++ b/src/source-dpdk.c @@ -413,7 +413,8 @@ static inline Packet *PacketInitFromMbuf(DPDKThreadVars *ptv, struct rte_mbuf *m return NULL; } PKT_SET_SRC(p, PKT_SRC_WIRE); - p->datalink = LINKTYPE_ETHERNET; + SCPacketSetDatalink(p, LINKTYPE_ETHERNET); + if (ptv->checksum_mode == CHECKSUM_VALIDATION_DISABLE) { p->flags |= PKT_IGNORE_CHECKSUM; } diff --git a/src/source-erf-dag.c b/src/source-erf-dag.c index f5e4239554b7..a3dd794a932d 100644 --- a/src/source-erf-dag.c +++ b/src/source-erf-dag.c @@ -495,7 +495,7 @@ ProcessErfDagRecord(ErfDagThreadVars *ewtn, char *prec) PKT_SET_SRC(p, PKT_SRC_WIRE); SET_PKT_LEN(p, wlen); - p->datalink = LINKTYPE_ETHERNET; + SCPacketSetDatalink(p, LINKTYPE_ETHERNET); /* Take into account for link type Ethernet ETH frame starts * after the ERF header + pad. diff --git a/src/source-erf-file.c b/src/source-erf-file.c index 5253ab660a0f..c58e779de2b4 100644 --- a/src/source-erf-file.c +++ b/src/source-erf-file.c @@ -30,6 +30,7 @@ #include "tm-threads.h" #include "source-erf-file.h" #include "util-datalink.h" +#include "packet.h" #define DAG_TYPE_ETH 2 @@ -193,7 +194,7 @@ static inline TmEcode ReadErfRecord(ThreadVars *tv, Packet *p, void *data) } GET_PKT_LEN(p) = wlen; - p->datalink = LINKTYPE_ETHERNET; + SCPacketSetDatalink(p, LINKTYPE_ETHERNET); /* Convert ERF time to SCTime_t */ uint64_t ts = dr.ts; diff --git a/src/source-ipfw.c b/src/source-ipfw.c index cf1c9472a985..fb7106f83764 100644 --- a/src/source-ipfw.c +++ b/src/source-ipfw.c @@ -294,7 +294,7 @@ TmEcode ReceiveIPFWLoop(ThreadVars *tv, void *data, void *slot) ptv->pkts++; ptv->bytes += pktlen; - p->datalink = ptv->datalink; + SCPacketSetDatalink(p, ptv->datalink); p->ipfw_v.ipfw_index = ptv->ipfw_index; diff --git a/src/source-napatech.c b/src/source-napatech.c index bb260463b651..84a48b04b6a1 100644 --- a/src/source-napatech.c +++ b/src/source-napatech.c @@ -966,7 +966,7 @@ TmEcode NapatechPacketLoop(ThreadVars *tv, void *data, void *slot) SCPacketSetReleasePacket(p, NapatechReleasePacket); p->ntpv.nt_packet_buf = packet_buffer; p->ntpv.stream_id = ntv->stream_id; - p->datalink = LINKTYPE_ETHERNET; + SCPacketSetDatalink(p, LINKTYPE_ETHERNET); if (unlikely(PacketSetData(p, (uint8_t *)NT_NET_GET_PKT_L2_PTR(packet_buffer), NT_NET_GET_PKT_WIRE_LENGTH(packet_buffer)))) { TmqhOutputPacketpool(ntv->tv, p); diff --git a/src/source-netmap.c b/src/source-netmap.c index b62acdee645b..4df933c2ed82 100644 --- a/src/source-netmap.c +++ b/src/source-netmap.c @@ -680,7 +680,7 @@ static void NetmapProcessPacket(NetmapThreadVars *ntv, const struct nm_pkthdr *p PKT_SET_SRC(p, PKT_SRC_WIRE); SCPacketSetLiveDevice(p, ntv->livedev); - p->datalink = LINKTYPE_ETHERNET; + SCPacketSetDatalink(p, LINKTYPE_ETHERNET); p->ts = SCTIME_FROM_TIMEVAL(&ph->ts); ntv->pkts++; ntv->bytes += ph->len; diff --git a/src/source-nflog.c b/src/source-nflog.c index f7d3616c621d..6f458c921ba6 100644 --- a/src/source-nflog.c +++ b/src/source-nflog.c @@ -186,7 +186,7 @@ static int NFLOGCallback(struct nflog_g_handle *gh, struct nfgenmsg *msg, } p->ts = SCTIME_FROM_TIMEVAL(&tv); - p->datalink = DLT_RAW; + SCPacketSetDatalink(p, DLT_RAW); #ifdef COUNTERS ntv->pkts++; diff --git a/src/source-nfq.c b/src/source-nfq.c index e79b7f80acbf..e954c5532600 100644 --- a/src/source-nfq.c +++ b/src/source-nfq.c @@ -477,7 +477,8 @@ static int NFQSetupPkt (Packet *p, struct nfq_q_handle *qh, void *data) } p->ts = SCTIME_FROM_TIMEVAL(&tv); - p->datalink = DLT_RAW; + SCPacketSetDatalink(p, DLT_RAW); + return 0; } diff --git a/src/source-pcap-file-helper.c b/src/source-pcap-file-helper.c index 1c9f5933ba91..9fbe819ff5a8 100644 --- a/src/source-pcap-file-helper.c +++ b/src/source-pcap-file-helper.c @@ -30,6 +30,7 @@ #include "util-profiling.h" #include "source-pcap-file.h" #include "util-exception-policy.h" +#include "packet.h" extern uint32_t max_pending_packets; extern PcapFileGlobalVars pcap_g; @@ -79,7 +80,7 @@ void PcapFileCallbackLoop(char *user, struct pcap_pkthdr *h, u_char *pkt) PKT_SET_SRC(p, PKT_SRC_WIRE); p->ts = SCTIME_FROM_TIMEVAL_UNTRUSTED(&h->ts); SCLogDebug("p->ts.tv_sec %" PRIuMAX "", (uintmax_t)SCTIME_SECS(p->ts)); - p->datalink = ptv->datalink; + SCPacketSetDatalink(p, ptv->datalink); p->pcap_cnt = ++pcap_g.cnt; p->pcap_v.tenant_id = ptv->shared->tenant_id; diff --git a/src/source-pcap.c b/src/source-pcap.c index b14f481e8b2f..e6f8f74a0140 100644 --- a/src/source-pcap.c +++ b/src/source-pcap.c @@ -338,7 +338,7 @@ static void PcapCallbackLoop(char *user, struct pcap_pkthdr *h, u_char *pkt) PKT_SET_SRC(p, PKT_SRC_WIRE); p->ts = SCTIME_FROM_TIMEVAL(&h->ts); SCLogDebug("p->ts.tv_sec %" PRIuMAX "", (uintmax_t)SCTIME_SECS(p->ts)); - p->datalink = ptv->datalink; + SCPacketSetDatalink(p, ptv->datalink); ptv->pkts++; ptv->bytes += h->caplen;