mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
af_packet: Cleanup checksum offloading support.
This commit is contained in:
parent
cd297e13dd
commit
8d2979e935
4 changed files with 15 additions and 20 deletions
|
@ -25,13 +25,15 @@ If everything built and installed correctly, you should see this::
|
|||
Zeek::AF_Packet - Packet acquisition via AF_Packet (dynamic, version 3.2.0)
|
||||
[Packet Source] AF_PacketReader (interface prefix "af_packet"; supports live input)
|
||||
[Type] AF_Packet::FanoutMode
|
||||
[Type] AF_Packet::ChecksumMode
|
||||
[Constant] AF_Packet::buffer_size
|
||||
[Constant] AF_Packet::enable_hw_timestamping
|
||||
[Constant] AF_Packet::enable_fanout
|
||||
[Constant] AF_Packet::enable_defrag
|
||||
[Constant] AF_Packet::enable_fanout
|
||||
[Constant] AF_Packet::fanout_mode
|
||||
[Constant] AF_Packet::fanout_id
|
||||
[Constant] AF_Packet::link_type
|
||||
[Constant] AF_Packet::checksum_validation_mode
|
||||
|
||||
## Upgrade from Bro to Zeek
|
||||
|
||||
|
|
|
@ -5,17 +5,6 @@
|
|||
module AF_Packet;
|
||||
|
||||
export {
|
||||
# The various modes of checksum offloading. OFF means we will set the
|
||||
# checksum variables to true, trusting that they are correct no matter
|
||||
# what the kernel or zeek thinks. ON means we will ignore the kernel
|
||||
# checksums and let Zeek check them. KERNEL means we will trust the
|
||||
# kernel checksums and let Zeek skip checking them.
|
||||
type Checksum_Mode : enum {
|
||||
OFF,
|
||||
ON,
|
||||
KERNEL
|
||||
};
|
||||
|
||||
## Size of the ring-buffer.
|
||||
const buffer_size = 128 * 1024 * 1024 &redef;
|
||||
## Toggle whether to use hardware timestamps.
|
||||
|
@ -24,12 +13,12 @@ export {
|
|||
const enable_fanout = T &redef;
|
||||
## Toggle defragmentation of IP packets using PACKET_FANOUT_FLAG_DEFRAG.
|
||||
const enable_defrag = F &redef;
|
||||
## Fanout Mode.
|
||||
## Fanout mode.
|
||||
const fanout_mode = FANOUT_HASH &redef;
|
||||
## Fanout ID.
|
||||
const fanout_id = 23 &redef;
|
||||
## Link type (default Ethernet).
|
||||
const link_type = 1 &redef;
|
||||
## Checksum offloading option.
|
||||
const checksum_offloading_mode: Checksum_Mode = KERNEL &redef;
|
||||
## Checksum validation mode.
|
||||
const checksum_validation_mode: ChecksumMode = CHECKSUM_ON &redef;
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ AF_PacketSource::AF_PacketSource(const std::string& path, bool is_live)
|
|||
props.path = path;
|
||||
props.is_live = is_live;
|
||||
|
||||
checksum_mode = zeek::BifConst::AF_Packet::checksum_offloading_mode->AsEnum();
|
||||
checksum_mode = zeek::BifConst::AF_Packet::checksum_validation_mode->AsEnum();
|
||||
}
|
||||
|
||||
void AF_PacketSource::Open()
|
||||
|
@ -280,8 +280,6 @@ bool AF_PacketSource::ExtractNextPacket(zeek::Packet* pkt)
|
|||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
fprintf(stderr, "bad version?\n");
|
||||
#endif
|
||||
|
||||
if ( current_hdr.len == 0 || current_hdr.caplen == 0 )
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
module AF_Packet;
|
||||
|
||||
## Available fanout modes.
|
||||
enum FanoutMode %{
|
||||
FANOUT_HASH, # PACKET_FANOUT_HASH
|
||||
FANOUT_CPU, # PACKET_FANOUT_CPU
|
||||
|
@ -11,17 +12,22 @@ enum FanoutMode %{
|
|||
FANOUT_EBPF, # PACKET_FANOUT_EBPF
|
||||
%}
|
||||
|
||||
## Available checksum validation modes.
|
||||
enum ChecksumMode %{
|
||||
## Ignore checksums, i.e. always assume they are correct.
|
||||
CHECKSUM_OFF,
|
||||
## Let Zeek compute and verify checksums.
|
||||
CHECKSUM_ON,
|
||||
## Let the kernel handle checksum offloading.
|
||||
## Note: Semantics may depend on the kernel and driver version.
|
||||
CHECKSUM_KERNEL,
|
||||
%}
|
||||
|
||||
const buffer_size: count;
|
||||
const enable_hw_timestamping: bool;
|
||||
const enable_fanout: bool;
|
||||
const enable_defrag: bool;
|
||||
const enable_fanout: bool;
|
||||
const fanout_mode: FanoutMode;
|
||||
const fanout_id: count;
|
||||
const link_type: count;
|
||||
const checksum_offloading_mode: ChecksumMode;
|
||||
const checksum_validation_mode: ChecksumMode;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue