Skip to content

Commit

Permalink
capture: use SCPacketSetDatalink
Browse files Browse the repository at this point in the history
  • Loading branch information
jasonish committed Oct 9, 2024
1 parent 70d1955 commit 9fad6ec
Show file tree
Hide file tree
Showing 15 changed files with 24 additions and 16 deletions.
2 changes: 1 addition & 1 deletion examples/lib/libcapture/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
3 changes: 2 additions & 1 deletion examples/plugins/ci-capture/source.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include "tm-modules.h"
#include "tm-threads-common.h"
#include "tm-threads.h"
#include "packet.h"

#include "source.h"

Expand Down Expand Up @@ -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)) {
Expand Down
2 changes: 1 addition & 1 deletion plugins/pfring/source-pfring.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
5 changes: 3 additions & 2 deletions src/source-af-packet.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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)) {
Expand Down
4 changes: 3 additions & 1 deletion src/source-af-xdp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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;
Expand Down
3 changes: 2 additions & 1 deletion src/source-dpdk.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
2 changes: 1 addition & 1 deletion src/source-erf-dag.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
3 changes: 2 additions & 1 deletion src/source-erf-file.c
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion src/source-ipfw.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
2 changes: 1 addition & 1 deletion src/source-napatech.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion src/source-netmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion src/source-nflog.c
Original file line number Diff line number Diff line change
Expand Up @@ -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++;
Expand Down
3 changes: 2 additions & 1 deletion src/source-nfq.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
3 changes: 2 additions & 1 deletion src/source-pcap-file-helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion src/source-pcap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 9fad6ec

Please sign in to comment.