Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Builder libpcap-solaris11-sparc Build #131

Results:

Build successful

SourceStamp:

Projectlibpcap
Repositoryhttps://git.tcpdump.org/libpcap
Branchmaster
Revisione0b74e2108e77b289661d3da1635768031881ef9
Got Revisione0b74e2108e77b289661d3da1635768031881ef9
Changes6 changes

BuildSlave:

unstable11s

Reason:

The SingleBranchScheduler scheduler named 'schedule-libpcap-solaris11-sparc' triggered this build

Steps and Logfiles:

  1. git update ( 3 secs )
    1. stdio
  2. shell './build_matrix.sh' ( 5 hrs, 54 secs )
    1. stdio
    2. config.log
  3. trigger triggered trigger-tcpdump-solaris11-sparc ( 1 hrs, 19 mins, 10 secs )
    1. - no logs -
    2. tcpdump-solaris11-sparc #108

Build Properties:

NameValueSource
branch master Build
builddir /export/home/buildbot/slave/libpcap-solaris11-sparc slave
buildername libpcap-solaris11-sparc Builder
buildnumber 131 Build
codebase Build
got_revision e0b74e2108e77b289661d3da1635768031881ef9 Git
project libpcap Build
repository https://git.tcpdump.org/libpcap Build
revision e0b74e2108e77b289661d3da1635768031881ef9 Build
scheduler schedule-libpcap-solaris11-sparc Scheduler
slavename unstable11s BuildSlave
workdir /export/home/buildbot/slave/libpcap-solaris11-sparc slave (deprecated)

Forced Build Properties:

NameLabelValue

Responsible Users:

  1. Denis Ovsienko

Timing:

StartThu Feb 26 15:14:51 2026
EndThu Feb 26 21:34:59 2026
Elapsed6 hrs, 20 mins, 7 secs

All Changes:

:

  1. Change #259072

    Category libpcap
    Changed by Denis Ovsienko <denisohnoyoudont@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
  2. Change #259073

    Category libpcap
    Changed by Denis Ovsienko <denisohnoyoudont@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
  3. Change #259074

    Category libpcap
    Changed by Denis Ovsienko <denisohnoyoudont@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
  4. Change #259075

    Category libpcap
    Changed by Denis Ovsienko <denisohnoyoudont@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
  5. Change #259076

    Category libpcap
    Changed by Denis Ovsienko <denisohnoyoudont@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
  6. Change #259077

    Category libpcap
    Changed by Denis Ovsienko <denisohnoyoudont@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