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

Builder libpcap-solaris11-sparc Build #65

Results:

Build successful

SourceStamp:

Projectlibpcap
Repositoryhttps://git.tcpdump.org/libpcap
Branchmaster
Revision730a8dbf94b65cd4b6b8f712895622c846b7eb20
Got Revision730a8dbf94b65cd4b6b8f712895622c846b7eb20
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' ( 3 hrs, 16 mins, 11 secs )
    1. stdio
    2. config.log

Build Properties:

NameValueSource
branch master Build
builddir /export/home/buildbot/slave/libpcap-solaris11-sparc slave
buildername libpcap-solaris11-sparc Builder
buildnumber 65 Build
codebase Build
got_revision 730a8dbf94b65cd4b6b8f712895622c846b7eb20 Git
project libpcap Build
repository https://git.tcpdump.org/libpcap Build
revision 730a8dbf94b65cd4b6b8f712895622c846b7eb20 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:

StartWed Nov 5 15:57:54 2025
EndWed Nov 5 19:14:09 2025
Elapsed3 hrs, 16 mins, 14 secs

All Changes:

:

  1. Change #247686

    Category libpcap
    Changed by Denis Ovsienko <denisohnoyoudont@ovsienko.info>
    Changed at Wed 05 Nov 2025 10:38:19
    Repository https://git.tcpdump.org/libpcap
    Project libpcap
    Branch master
    Revision a821648ddcea7b55484097e4db5406aefbaba100

    Comments

    TESTrun: Test proto-unqualified "(host|net)" better.
    The existing tests that mix "ip host IPV4ADDR" and "host IPV4ADDR" etc.
    on DLT_RAW and declare the same optimized filter program do not cover
    the problem space well enough.  One problem with that is such blocks
    cannot declare an unoptimized filter program because in the unoptimized
    space the proto-qualified form does not contain any ARP/RARP branches,
    but proto-unqualified form contains them as unreachable instructions.
    Another problem is that this way it is impossible to verify that the
    proto-unqualified form matches ARP and ARP under right conditions.
    
    Thus move the proto-unqualified aliases to their own test blocks and use
    a DLT that supports all the implied protocols, and many others -- this
    way the test proves that the implicit set of protocols extends as far as
    it is supposed to extend, and no further.  Limit the new blocks to
    lowercase hostnames only, and repeat a quarter (with a fixed dir
    qualifier) of the new blocks for DLT_RAW to cover the elimination of ARP
    and RARP in greater detail for the next commits.  This adds the
    following accept test blocks:
    
    * net_ipv4addr_16bit_IP_OVER_FC (from ip_net_addr)
    * src_net_ipv4addr_24bit_IP_OVER_FC (from ip_src_net_addr)
    * dst_net_ipv4addr_8bit_IP_OVER_FC (from ip_dst_net_addr_8)
    * src_and_dst_net_ipv4addr_12bit_IP_OVER_FC (new)
    * src_and_dst_net_ipv4addr_12bit_RAW (new)
    
    * net_ipv6addr_IP_OVER_FC (from ip6_net)
    * src_net_ipv6addr_IP_OVER_FC (from ip6_src_net)
    * dst_net_ipv6addr_IP_OVER_FC (new)
    * src_and_dst_net_ipv6addr_IP_OVER_FC (new)
    * src_and_dst_net_ipv6addr_RAW (new)
    
    * net_name_EN10MB (new)
    * src_net_name_EN10MB (from ip_src_net_name and ip_src_net_NAME)
    * dst_net_name_EN10MB (from ip_dst_net_name and ip_dst_net_NAME)
    * src_and_dst_net_name_EN10MB (new)
    * src_and_dst_net_name_RAW (new)
    
    * host_ipv4addr_FDDI (from ip_host_addr)
    * src_host_ipv4addr_FDDI (from ip_src_host_addr)
    * dst_host_ipv4addr_FDDI (from ip_dst_host_addr)
    * src_and_dst_host_ipv4addr_FDDI (new)
    * src_and_dst_host_ipv4addr_RAW (new)
    
    * host_ipv6addr_IEEE802_11 (from ip6_host_addr)
    * src_host_ipv6addr_IEEE802_11 (from ip6_src_host_addr)
    * dst_host_ipv6addr_IEEE802_11 (from ip6_dst_host_addr)
    * src_and_dst_host_ipv6addr_IEEE802_11 (new)
    * src_and_dst_host_ipv6addr_RAW (new)
    
    * host_noeth_ipv4_noipv6_EN10MB (from ip_host_name/ip_host_NAME)
    * host_noeth_noipv4_ipv6_EN10MB (from ip6_host_name/ip6_host_NAME)
    * host_noeth_ipv4_ipv6_EN10MB (new)
    * src_host_noeth_ipv4_noipv6_EN10MB (from ip_src_host_name and
      ip_src_host_NAME)
    * src_host_noeth_noipv4_ipv6_EN10MB (from ip6_src_host_name and
      ip6_src_host_NAME)
    * src_host_noeth_ipv4_ipv6_EN10MB (new)
    * dst_host_noeth_ipv4_noipv6_EN10MB (from ip_dst_host_name and
      ip_dst_host_NAME)
    * dst_host_noeth_noipv4_ipv6_EN10MB (from ip6_dst_host_name and
      ip6_dst_host_NAME)
    * dst_host_noeth_ipv4_ipv6_EN10MB (new)
    * src_and_dst_host_noeth_ipv4_noipv6_EN10MB (new)
    * src_and_dst_host_noeth_noipv4_ipv6_EN10MB (new)
    * src_and_dst_host_noeth_ipv4_ipv6_EN10MB (new)
    * src_and_dst_host_noeth_ipv4_noipv6_RAW (new)
    * src_and_dst_host_noeth_noipv4_ipv6_RAW (new)
    * src_and_dst_host_noeth_ipv4_ipv6_RAW (new)

    Changed files

    • testprogs/TESTrun
  2. Change #247687

    Category libpcap
    Changed by Denis Ovsienko <denisohnoyoudont@ovsienko.info>
    Changed at Wed 05 Nov 2025 10:44:08
    Repository https://git.tcpdump.org/libpcap
    Project libpcap
    Branch master
    Revision e42274711bfd0ef4a7fcf4d9c0105fccd741e494

    Comments

    TESTrun: Run most accept tests both optimized and not.
    In the accept block structure make sure both "opt" and "unopt" are
    always _declared_ (i.e. Perl hash keys present), and introduce
    "optunopt" as a shorthand to _define_ (i.e. to set to something other
    than Perl undef) both values at once.
    
    Always require "unopt" to be _defined_ because that's the least of what
    can be expected from an accept test; allow "opt" to be _declared_ as
    undef because several accept tests cannot run optimized.  Require all
    _defined_ results to be non-empty; require "opt" and "unopt" not to be
    equal if each has been defined explicitly rather than expanded from
    "optunopt".  Convert most (505) accept blocks to define "optunopt", in
    the other 145 blocks define both "opt" and "unopt", in the remaining 11
    blocks define "unopt" and specify "opt" as undef.

    Changed files

    • testprogs/TESTrun
  3. Change #247688

    Category libpcap
    Changed by Denis Ovsienko <denisohnoyoudont@ovsienko.info>
    Changed at Wed 05 Nov 2025 10:45:07
    Repository https://git.tcpdump.org/libpcap
    Project libpcap
    Branch master
    Revision 39927bb09f5f12059834d99f6268adc7ab21dbb7

    Comments

    Have gen_and(), gen_or() and gen_not() return the result.
    Also always use the result, except a few times for gen_not().  This
    rewrites a lot of invocations, but preserves the logic, so there are no
    changes to the tests.

    Changed files

    • gencode.c
    • gencode.h
    • grammar.y.in
  4. Change #247689

    Category libpcap
    Changed by Denis Ovsienko <denisohnoyoudont@ovsienko.info>
    Changed at Wed 05 Nov 2025 10:45:07
    Repository https://git.tcpdump.org/libpcap
    Project libpcap
    Branch master
    Revision 1687065d1653dd004e51c3bf16436c0d2fde915c

    Comments

    Reduce AND/OR on a Boolean constant early.
    In the current implementation gen_true() produces "ld #0x0; jeq #0x0"
    and gen_false() produces "ld #0x1; jeq #0x0".  When such a block becomes
    an argument of gen_and() or gen_or(), it is not quite trivial to detect
    the original Boolean constant behind it, so instead of potentially
    reducing the logical AND/OR to exactly one of its arguments the
    functions always combine both blocks in a generic manner.  This accounts
    to at least a fraction of dead branches in some unoptimized filter
    programs.
    
    Subsequently the optimizer (if it is available for the DLT and enabled
    by the user) eliminates many (but not all, see GH #1022) of such no-op
    instructions, but it would be better not to produce them in the first
    place.  As the earlier commits 8620df1, 8788f68 and 6ffae89 show, such
    reductions of a few ANDs indeed have the desired effect, but depend on
    specialized code outwith gen_and().  To cover all such use cases using
    simpler code, generalize the solution.
    
    Add another field to struct block to convey the Boolean meaning of a
    block (definitely true, definitely false, something else), and process
    that in gen_uncond(), gen_and(), gen_or() and gen_not().  This conflicts
    with the old style of taking the result of gen_and() and gen_or() from
    the second argument, so apply PCAP_WARN_UNUSED_RESULT and add comments.
    As the affected tests show, this has varying effect on the number of
    instructions:
    
    DLT_RAW "host IPV4ADDR" (-12 unopt.)
    DLT_RAW "net IPV4ADDR" (-16 unopt.)
    DLT_RAW "net NAME" (-12 unopt.)
    DLT_RAW "(arp|rarp) host IPV4ADDR" (-4 unopt.)
    DLT_EN10MB "vxlan [NUM]" (-10 unopt.)
    DLT_EN10MB "vxlan and vxlan" (-7 opt. and -20 unopt.)
    DLT_EN10MB "geneve [NUM]" (-21 opt. and -21 unopt.)
    DLT_EN10MB "geneve and geneve" (-42 opt. and -42 unopt.)
    DLT_IPV4 "ip multicast" (-1 opt. and -2 unopt.)
    DLT_IPV4 "ip broadcast" (-1 opt. and -2 unopt.)
    DLT_IPV6 "ip6 multicast" (-1 opt. and -2 unopt.)
    DLT_IPV6 "icmp6[NUMBER] != NUMBER" (-1 opt. and -1 unopt.)
    
    There is no change in any "host NAME" accept blocks: the conditional
    q.proto expansion in gen_scode() case Q_HOST eliminates both ARP and
    RARP already.

    Changed files

    • gencode.c
    • gencode.h
    • testprogs/TESTrun
  5. Change #247690

    Category libpcap
    Changed by Denis Ovsienko <denisohnoyoudont@ovsienko.info>
    Changed at Wed 05 Nov 2025 10:45:07
    Repository https://git.tcpdump.org/libpcap
    Project libpcap
    Branch master
    Revision 0434bf6060d1b3082074f31bf1173285cfdabef0

    Comments

    In gen_scode() always leave the proto qualifier intact.
    The only effect of the conditional override that expands Q_DEFAULT to
    Q_IP and Q_IPV6 (but not Q_ARP or Q_RARP) used to be absence of the ARP
    and RARP dead branches in the unoptimized filter program for a number of
    DLTs.  Since this is now a particular case of the generic AND/OR
    reduction, remove the custom code -- this produces exactly the same
    filter programs, so there is no change in any tests.

    Changed files

    • gencode.c
  6. Change #247691

    Category libpcap
    Changed by Denis Ovsienko <denisohnoyoudont@ovsienko.info>
    Changed at Wed 05 Nov 2025 10:45:07
    Repository https://git.tcpdump.org/libpcap
    Project libpcap
    Branch master
    Revision 730a8dbf94b65cd4b6b8f712895622c846b7eb20

    Comments

    Remove the earlier IPv4/IPv6-specific AND reductions.
    This code now is a particular case of what gen_and() does, so there is
    no point in keeping it.  There is no change in any tests because the
    expected optimizations hold as before.

    Changed files

    • gencode.c