UDP packet parsing and manipulation helpers for eBPF programs.
UDP packet parsing and manipulation helpers for eBPF programs.
(get-payload-len len-reg udp-hdr-reg)Calculate UDP payload length from UDP length field. Payload length = UDP length - 8
len-reg: Register to store payload length (also used as scratch) udp-hdr-reg: Register pointing to UDP header
Calculate UDP payload length from UDP length field. Payload length = UDP length - 8 len-reg: Register to store payload length (also used as scratch) udp-hdr-reg: Register pointing to UDP header
(get-payload-ptr payload-reg udp-hdr-reg)Calculate pointer to UDP payload. UDP header is always 8 bytes.
payload-reg: Register to store payload pointer udp-hdr-reg: Register pointing to UDP header
Calculate pointer to UDP payload. UDP header is always 8 bytes. payload-reg: Register to store payload pointer udp-hdr-reg: Register pointing to UDP header
(is-dhcp-request dport-reg dhcp-label)Check if this is a DHCP request (dport 67).
dport-reg: Register containing destination port (network order) dhcp-label: Label to jump to if DHCP request
Check if this is a DHCP request (dport 67). dport-reg: Register containing destination port (network order) dhcp-label: Label to jump to if DHCP request
(is-dns dport-reg dns-label)Check if destination port is DNS (53).
dport-reg: Register containing destination port (network order) dns-label: Label to jump to if DNS
Check if destination port is DNS (53). dport-reg: Register containing destination port (network order) dns-label: Label to jump to if DNS
(is-dport dport-reg port match-label)Check if destination port matches (network byte order comparison).
dport-reg: Register containing destination port (network order) port: Port number (will be converted to network order) match-label: Label to jump to if ports match
Check if destination port matches (network byte order comparison). dport-reg: Register containing destination port (network order) port: Port number (will be converted to network order) match-label: Label to jump to if ports match
(is-sport sport-reg port match-label)Check if source port matches (network byte order comparison).
sport-reg: Register containing source port (network order) port: Port number (will be converted to network order) match-label: Label to jump to if ports match
Check if source port matches (network byte order comparison). sport-reg: Register containing source port (network order) port: Port number (will be converted to network order) match-label: Label to jump to if ports match
(load-checksum dst-reg udp-hdr-reg)Load UDP checksum field into dst-reg.
dst-reg: Destination register udp-hdr-reg: Register pointing to UDP header
Load UDP checksum field into dst-reg. dst-reg: Destination register udp-hdr-reg: Register pointing to UDP header
(load-dport dst-reg udp-hdr-reg)Load UDP destination port into dst-reg (network byte order).
dst-reg: Destination register udp-hdr-reg: Register pointing to UDP header
Load UDP destination port into dst-reg (network byte order). dst-reg: Destination register udp-hdr-reg: Register pointing to UDP header
(load-field dst-reg udp-hdr-reg field size)Load a UDP header field into dst-reg.
dst-reg: Destination register udp-hdr-reg: Register pointing to start of UDP header field: Field keyword (:sport, :dport, :len, :check) size: :b (byte), :h (half-word)
Load a UDP header field into dst-reg. dst-reg: Destination register udp-hdr-reg: Register pointing to start of UDP header field: Field keyword (:sport, :dport, :len, :check) size: :b (byte), :h (half-word)
(load-length dst-reg udp-hdr-reg)Load UDP length field into dst-reg (network byte order).
dst-reg: Destination register udp-hdr-reg: Register pointing to UDP header
Load UDP length field into dst-reg (network byte order). dst-reg: Destination register udp-hdr-reg: Register pointing to UDP header
(load-length-host dst-reg udp-hdr-reg)Load UDP length field in host byte order.
dst-reg: Destination register udp-hdr-reg: Register pointing to UDP header
Load UDP length field in host byte order. dst-reg: Destination register udp-hdr-reg: Register pointing to UDP header
(load-ports sport-reg dport-reg udp-hdr-reg)Load UDP source and destination ports. Ports are loaded in network byte order.
sport-reg: Register for source port dport-reg: Register for destination port udp-hdr-reg: Register pointing to UDP header
Load UDP source and destination ports. Ports are loaded in network byte order. sport-reg: Register for source port dport-reg: Register for destination port udp-hdr-reg: Register pointing to UDP header
(load-ports-host sport-reg dport-reg udp-hdr-reg)Load UDP source and destination ports in host byte order.
sport-reg: Register for source port (host order) dport-reg: Register for destination port (host order) udp-hdr-reg: Register pointing to UDP header
Load UDP source and destination ports in host byte order. sport-reg: Register for source port (host order) dport-reg: Register for destination port (host order) udp-hdr-reg: Register pointing to UDP header
(load-sport dst-reg udp-hdr-reg)Load UDP source port into dst-reg (network byte order).
dst-reg: Destination register udp-hdr-reg: Register pointing to UDP header
Load UDP source port into dst-reg (network byte order). dst-reg: Destination register udp-hdr-reg: Register pointing to UDP header
(parse-udp-header udp-hdr-reg
data-end-reg
sport-reg
dport-reg
fail-label
scratch-reg)Parse UDP header and check bounds. Returns instructions that:
udp-hdr-reg: Register pointing to UDP header start data-end-reg: Register containing data_end pointer sport-reg: Register to store source port dport-reg: Register to store destination port fail-label: Label to jump to on bounds failure scratch-reg: Scratch register for bounds check
Parse UDP header and check bounds. Returns instructions that: 1. Check bounds for UDP header (8 bytes) 2. Load source and destination ports udp-hdr-reg: Register pointing to UDP header start data-end-reg: Register containing data_end pointer sport-reg: Register to store source port dport-reg: Register to store destination port fail-label: Label to jump to on bounds failure scratch-reg: Scratch register for bounds check
(store-checksum udp-hdr-reg csum-reg)Store UDP checksum field.
udp-hdr-reg: Register pointing to UDP header csum-reg: Register containing checksum
Store UDP checksum field. udp-hdr-reg: Register pointing to UDP header csum-reg: Register containing checksum
(store-dport udp-hdr-reg port-reg)Store UDP destination port (expects network byte order).
udp-hdr-reg: Register pointing to UDP header port-reg: Register containing port (network order)
Store UDP destination port (expects network byte order). udp-hdr-reg: Register pointing to UDP header port-reg: Register containing port (network order)
(store-field udp-hdr-reg field src-reg size)Store value to UDP header field.
udp-hdr-reg: Register pointing to UDP header start field: Field keyword src-reg: Register containing value to store size: :h for all UDP fields
Store value to UDP header field. udp-hdr-reg: Register pointing to UDP header start field: Field keyword src-reg: Register containing value to store size: :h for all UDP fields
(store-length udp-hdr-reg len-reg)Store UDP length field (expects network byte order).
udp-hdr-reg: Register pointing to UDP header len-reg: Register containing length (network order)
Store UDP length field (expects network byte order). udp-hdr-reg: Register pointing to UDP header len-reg: Register containing length (network order)
(store-port-host udp-hdr-reg field port-reg scratch-reg)Store UDP port from host byte order value.
udp-hdr-reg: Register pointing to UDP header field: :sport or :dport port-reg: Register containing port (host order) scratch-reg: Scratch register for byte order conversion
Store UDP port from host byte order value. udp-hdr-reg: Register pointing to UDP header field: :sport or :dport port-reg: Register containing port (host order) scratch-reg: Scratch register for byte order conversion
(store-sport udp-hdr-reg port-reg)Store UDP source port (expects network byte order).
udp-hdr-reg: Register pointing to UDP header port-reg: Register containing port (network order)
Store UDP source port (expects network byte order). udp-hdr-reg: Register pointing to UDP header port-reg: Register containing port (network order)
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |