Builder libpcap-solaris11-amd64 Build #133
Results:
Build successful
SourceStamp:
| Project | libpcap |
| Repository | https://git.tcpdump.org/libpcap |
| Branch | master |
| Revision | e0b74e2108e77b289661d3da1635768031881ef9 |
| Got Revision | e0b74e2108e77b289661d3da1635768031881ef9 |
| Changes | 6 changes |
BuildSlave:
unstable11xReason:
The SingleBranchScheduler scheduler named 'schedule-libpcap-solaris11-amd64' triggered this build
Steps and Logfiles:
-
git update ( 6 secs )
-
shell './build_matrix.sh' ( 10 hrs, 33 mins, 15 secs )
-
trigger triggered trigger-tcpdump-solaris10-amd64 ( 6 mins, 53 secs )
- - no logs -
- tcpdump-solaris10-amd64 #6107
Build Properties:
| Name | Value | Source |
|---|---|---|
| branch | master | Build |
| builddir | /export/home/buildbot/slave/libpcap-solaris11-amd64 | slave |
| buildername | libpcap-solaris11-amd64 | Builder |
| buildnumber | 133 | Build |
| codebase | Build | |
| got_revision | e0b74e2108e77b289661d3da1635768031881ef9 | Git |
| project | libpcap | Build |
| repository | https://git.tcpdump.org/libpcap | Build |
| revision | e0b74e2108e77b289661d3da1635768031881ef9 | Build |
| scheduler | schedule-libpcap-solaris11-amd64 | Scheduler |
| slavename | unstable11x | BuildSlave |
| workdir | /export/home/buildbot/slave/libpcap-solaris11-amd64 | slave (deprecated) |
Forced Build Properties:
| Name | Label | Value |
|---|
Responsible Users:
- Denis Ovsienkodenis@ovsienko.info
Timing:
| Start | Thu Feb 26 15:14:45 2026 |
| End | Fri Feb 27 01:55:02 2026 |
| Elapsed | 10 hrs, 40 mins, 16 secs |
All Changes:
:
Change #259072
Category libpcap Changed by Denis Ovsienko <denis@ovsienko.info> Changed at Tue 24 Feb 2026 13:55:39 Repository https://git.tcpdump.org/libpcap Project libpcap Branch master Revision a8c13629476aec3d2148c3ad187004200faf9108 Comments
TESTrun: Cover gen_load_internal() better. The function implements five accessor groups, which relate to the following cases in gen_load_a(): * OR_PACKET (radio[]), * OR_LINKHDR (link[]), * OR_LINKPL (ip[], arp[], rarp[], atalk[], decnet[], sca[], lat[], moprc[], mopdl[] and ip6[]), * OR_TRAN_IPV4 (sctp[], tcp[], udp[], icmp[], igmp[], igrp[], pim[], vrrp[] and carp[]), and * OR_TRAN_IPV6 (icmp6[]). From a loading offset calculation perspective, there are three DLT groups with: * a variable-length link-layer prefix *and* header (DLT_PRISM_HEADER, DLT_IEEE802_11_RADIO_AVS, DLT_IEEE802_11_RADIO and DLT_PPI), * a variable-length link-layer *or* header (DLT_IEEE802_11 and DLT_PFLOG), and * a constant-length link-layer header (everything else, but in the scope of this testing limit it to DLT_EN10MB, DLT_RAW, DLT_PPP, DLT_LINUX_SLL, DLT_LINUX_SLL2, DLT_DSA_TAG_BRCM and DLT_ARCNET_LINUX). This combinatorial space has a few irregularities: radio[] rejects all DLTs except three; DLT_PFLOG, DLT_RAW, DLT_PPP and DLT_ARCNET_LINUX do not support all accessors in the OR_LINKPL-like group; igrp[] uses one of two OS-dependent protocol numbers; vrrp[] and carp[] are effectively synonyms; DLT_PFLOG uses OS-specific AF numbers (two for AF_INET and seven for AF_INET6), and IPv4 transport currently generates an IPv6 branch. Considering individual accessors and individual DLTs, the maximum number of permutations is 3 + 20 * 13 + 12 + 9 * 6 + 13 = 342. Considering C code paths, not all permutations need to be tested, so keep the existing halfword and word blocks for link[] and replace all other index test blocks with 111 new test blocks. Order the new blocks to match the order of cases in the C switch block. The new test blocks test every accessor above with at least one DLT in each supported DLT group above, as well as every DLT above with at least one supported (and at least one unsupported where applicable) accessor in each accessor group above. Add three minimal tests to exercise the case of variable link-level prefix and header and VLAN/Geneve/VXLAN before TCP. Add filter apply tests for: radio[], link[], arp[], ip[], tcp[], icmp[], udp[], vrrp[], carp[], ip6[] and icmp6[]. carp.pcap is the first 5 packets from Wireshark 10726-tcpdump-carp.pcap. ieee802.11_exthdr.pcap is the last 10 packets from the tcpdump test file.
Changed files
- testprogs/TESTrun
- tests/filter/carp.pcap
- tests/filter/ieee802.11_exthdr.pcap
Change #259073
Category libpcap Changed by Denis Ovsienko <denis@ovsienko.info> Changed at Tue 24 Feb 2026 21:18:23 Repository https://git.tcpdump.org/libpcap Project libpcap Branch master Revision 8e23f7bc14e67e62711516c17f274b9d17cd4925 Comments
Deduplicate code in gen_proto_abbrev_internal(). Factor four helper functions out to translate from a proto qualifier to a protocol code point, and condense much of the switch block into six parametrised groups.
Changed files
- gencode.c
Change #259074
Category libpcap Changed by Denis Ovsienko <denis@ovsienko.info> Changed at Tue 24 Feb 2026 21:18:23 Repository https://git.tcpdump.org/libpcap Project libpcap Branch master Revision 4d8a69a1f35857eb077c100c2723d1f98e5e26ae Comments
Get IPv4 transport right in gen_load_internal(). The function uses one invocation of gen_proto_abbrev_internal() to match the transport protocol of interest over IPv4, which includes matching of the link-level protocol as IPv4, or (for TCP, UDP, SCTP and PIM) also over IPv6, which includes matching of the link-level protocol as IPv6. It uses another invocation thereof to match strictly IPv4 as the link-level protocol. The resulting filter program includes two consecutive tests for IPv4 if the DLT supports IPv4 and one always-false test for IPv6 (and the dependent unreachable branch) if the DLT supports IPv6. To fix this, match IPv4 only exactly once using proto_abbrev_internal(), then match the transport protocol of interest using gen_ip_proto(). This produces filter programs without the unnecessary instructions, so update the tests. Denote this pitfall in a comment, and a similar one in the Q_ICMPV6 case. While at it, make sure gen_and() does not get both of its arguments from a function call -- this seems to have been deterministic in this context, but it is better when the code is obviously deterministic.
Changed files
- gencode.c
- testprogs/TESTrun
Change #259075
Category libpcap Changed by Denis Ovsienko <denis@ovsienko.info> Changed at Tue 24 Feb 2026 21:18:23 Repository https://git.tcpdump.org/libpcap Project libpcap Branch master Revision bf28b25336a157b9aa2808c0463bdf1b6594407c Comments
Layer gen_load_a() and gen_load_absoffsetrel() better. gen_load_absoffsetrel() needs to know whether the variable part of the absolute offset is present, but not how it has been generated. gen_load_a(), when the variable part comes from a different source (OR_TRAN_IPV4) or is definitely absent (OR_PACKET), does not need to duplicate what gen_load_absoffsetrel() does. In gen_load_absoffsetrel() validate the load size, take an optional variable part and a mandatory constant part as the arguments and focus on producing the load instruction(s). In gen_load_a() focus on preparing the absolute offset components and use gen_load_absoffsetrel() to handle all cases. Constify some arguments in both functions.
Changed files
- gencode.c
Change #259076
Category libpcap Changed by Denis Ovsienko <denis@ovsienko.info> Changed at Tue 24 Feb 2026 21:18:23 Repository https://git.tcpdump.org/libpcap Project libpcap Branch master Revision 9468896ea60a8a55a79d76480c78156f93e31bda Comments
Deduplicate code in gen_load_internal(). Delegate the generation of side effect statements to a new function, gen_load_absoffsetarthrel(), and invoke it exactly once after the switch block has determined the variable and the constant parts of an absolute offset. Merge protocol checks into the arithmetic expression only after the switch block has generated any.
Changed files
- gencode.c
Change #259077
Category libpcap Changed by Denis Ovsienko <denis@ovsienko.info> Changed at Tue 24 Feb 2026 21:18:23 Repository https://git.tcpdump.org/libpcap Project libpcap Branch master Revision e0b74e2108e77b289661d3da1635768031881ef9 Comments
Factor gen_frelay_nlpid() out. Also define exactly the set of named NLPID constants this code needs.
Changed files
- gencode.c