OpenBSD/src abbUGhLusr.sbin/bgpd rde_adjout.c rde.h

   PREFIX_ADJOUT_FLAG_DEAD is no longer needed and can be replaced with
   a check that the attrs pointer is NULL. Refactor the code now a bit
   since the logic got a bit simpler.

   OK tb@
VersionDeltaFile
1.10+10-19usr.sbin/bgpd/rde_adjout.c
1.330+2-4usr.sbin/bgpd/rde.h
+12-232 files

OpenBSD/src oFjrO4asys/kern sys_process.c, sys/sys ptrace.h

   Extend ptrace(2) PT_GET_THREAD_* to include thread names.
   Use a new define larger then _MAXCOMLEN to avoid that define from
   propagating to ptrace.h. Ensure that pts_name is large enough with
   a compile time assert.

   okay claudio@ jca@
VersionDeltaFile
1.107+5-2sys/kern/sys_process.c
1.17+4-1sys/sys/ptrace.h
+9-32 files

OpenBSD/src NhiRmn4lib/libcrypto/x509 x509.h

   x509.h: add missing spaces after ,
VersionDeltaFile
1.125+63-63lib/libcrypto/x509/x509.h
+63-631 files

OpenBSD/src pE8Ozh1regress/usr.sbin/bgpd/unittests bitmap_test.c Makefile

   Add some unit tests for the bitmap api.
VersionDeltaFile
1.1+125-0regress/usr.sbin/bgpd/unittests/bitmap_test.c
1.15+3-1regress/usr.sbin/bgpd/unittests/Makefile
+128-12 files

OpenBSD/src 11TgC0zusr.sbin/bgpd bitmap.c bgpd.h

   Introduce a bitmap API that scales dynamically up but is also minimal for
   the common case.

   Functions include:
   - set, test, clear: set, test and clear a bit in the map
   - empty: check if a bitmap is empty (has no bit set).
   - id_get: return the lowest free id in map
   - id_put: return an id to the map, aka clear
   - init, reset: initialize and free a map

   The first 127 elements are put directly into struct bitmap without further
   allocation. For maps with more than 127 elements external memory is allocated
   in the set function. This memory is only freed by reset which must be called
   before an object is removed containing a bitmap.
   It is not possible to set bit 0 of a bitmap since that bit is used to
   differentiate between access modes. In my use cases this is perfectly fine
   since most code already treats 0 in a special way.

   OK tb@
VersionDeltaFile
1.1+229-0usr.sbin/bgpd/bitmap.c
1.526+17-1usr.sbin/bgpd/bgpd.h
1.45+2-1usr.sbin/bgpd/Makefile
+248-23 files

OpenBSD/src rxfIU4Vusr.bin/openssl speed.c

   Remove unused algorithms from speed.c

   Removed unused algorithms (MD2, SEED, RC5) from the algorithm
   enum and the `names[]` table.

   The current results for these algorithms were always:

   md2                  0.00   0.00   0.00   0.00   0.00
   seed cbc             0.00   0.00   0.00   0.00   0.00
   rc5-32/12 cbc        0.00   0.00   0.00   0.00   0.00

   indicating that they are no longer unused.

   ok tb@
VersionDeltaFile
1.49+3-6usr.bin/openssl/speed.c
+3-61 files

OpenBSD/src SCybGD3usr.bin/openssl speed.c

   Convert D_, R_ macro indices to enums in speed.c

   Replaced many `#define` based index constants with enums by adding ALGOR_NUM,
   DSA_NUM, RSA_NUM, and EC_NUM to the enum definitions.

   This makes it easier to add or remove new entries.

   ok tb@
VersionDeltaFile
1.48+58-48usr.bin/openssl/speed.c
+58-481 files

OpenBSD/src iphd4o4usr.bin/openssl speed.c

   speed: remove unused counters and dead parameters

   In the speed implementation, a number of unused variables and
   parameters (save_count, c[][], rsa_c, dsa_c, ecdsa_c, ecdh_c, and
   the num argument of print_message()/pkey_print_message()) were
   still left behind.

   These values are no longer referenced and cannot affect the
   time-based benchmark logic, so remove them.

   Functional behaviour of speed remains unchanged.

   ok tb@
VersionDeltaFile
1.47+77-92usr.bin/openssl/speed.c
+77-921 files

OpenBSD/src oEnskHmsys/net if_tun.c

   let tun pretend it's a softnet thread with it's own tun_input_process.

   this largely reimplements if_vinput and if_input_process in tun so
   packets pushed through the stack from a tun/tap write can operate
   largely like they're being processed by a softnet thread.

   there's a couple of important differences between tun/tap and softnet
   thought. firstly, multiple threads/processes can write to a single
   tun/tap descriptor concurrently, so each thread has its own netstack
   struct on the stack. secondly, these tun/tap threads are not the
   softnet threads, so they can't avoid taking real interface references
   when processing requeued packets.

   the alternative to this woudl be letting tun/tap writes queue packets
   for processing in a softnet thread, but that adds latency and
   requires a lot of thought about a backpressure mechanism when a
   thread writes too fast for the stack to process.
VersionDeltaFile
1.255+87-4sys/net/if_tun.c
+87-41 files

OpenBSD/src 30erTUHsys/net if.c

   let if_vinput and if_input_proto requeue packets on a struct netstack.

   this moves us from directly calling into different layers of the
   network stack to moving the call back up to if_input_process to
   dispatch. this reduces the kernel thread stack usage, but also makes
   it safe(r) to dispatch this work from an smr critical section. it
   also allows us to dispatch work without holding netlock, and
   eventually getting if_input_process to amortise the locking over
   bundles of these different dispatch calls.
VersionDeltaFile
1.760+20-7sys/net/if.c
+20-71 files

OpenBSD/src 6gHxU4Usys/net if.c if_var.h

   extend struct netstack to queue packet processing in the existing context

   at the moment if_input_process runs packets in an mbuf_list, generally
   produced by an ifiq, through the network stack. as the headers on
   the packet are parsed, subsequent protocol handlers are called to
   process the next layer of the packet. currently these handlers are
   dispatched by by directly calling functions, which consumes the
   stack on the kernel threads running the network stack. if you have
   a deep topology of virtual interfaces (eg, carp on vlan on aggr on
   physical ports), you have a deep call stack.

   the usual alternative to this is to queue packets handled by virtual
   interfaces and get them processed by their own ifiq and their own
   if_input_process call. this is what the stack used to do, but the
   cost of locking and queueing and dispatching it to a softnet thread
   to process (even if it was the same thread) adds significant overhead,
   so we moved to direct dispatch to speed things up.

   this change is kind of a hybrid approach, where input handling is

    [21 lines not shown]
VersionDeltaFile
1.759+34-8sys/net/if.c
1.144+16-4sys/net/if_var.h
+50-122 files

OpenBSD/src aUD5x0vsys/net if.c

   call input handlers in if_input_local and p2p_input via if_input_proto
VersionDeltaFile
1.758+7-5sys/net/if.c
+7-51 files

OpenBSD/src WYcvmossys/net if_ethersubr.c

   call the ip and mpls input handlers in if_ether_input via if_input_proto.
VersionDeltaFile
1.307+2-2sys/net/if_ethersubr.c
+2-21 files

OpenBSD/src Cp4qMCOsys/net if_rport.c

   call the protocol input handlers via if_input_proto.
VersionDeltaFile
1.9+9-5sys/net/if_rport.c
+9-51 files

OpenBSD/src BM266ufsys/net if_tun.c

   turn tun_input into a wrapper around p2p_input.

   tun packets have the address family as a 4 byte prefix on their
   payload which is used to decide which address family input handler
   to call. p2p_input does the same thing except it looks at
   m_pkthdr.ph_family.

   this makes tun_input it's 4 byte prefix to set m_pkthdr.ph_family
   and then calls p2p_input to use it.
VersionDeltaFile
1.254+3-19sys/net/if_tun.c
+3-191 files

OpenBSD/src sGIKxxlsys/net if_tpmr.c if_veb.c

   call ip input handlers for pf diverted packets via if_input_proto.

   this is a step toward being able to run tpmr and veb without the
   net lock. right now ip input needs net lock, so if if_input_proto
   can move their calls to a locked context, tpmr and veb wont need
   to be locked first.
VersionDeltaFile
1.43+2-2sys/net/if_tpmr.c
1.68+2-2sys/net/if_veb.c
+4-42 files

OpenBSD/src qfCjzfRsys/net if.c if_var.h

   add if_input_proto() as a wrapper around calls to mbuf proto handling.

   this version directly calls the proto handler, but it will be used
   in the future in combination with struct netstack to move the proto
   handler call around.
VersionDeltaFile
1.757+9-1sys/net/if.c
1.143+4-1sys/net/if_var.h
+13-22 files

OpenBSD/src tlztHZlsys/net if.c

   let the softnet threads use ifnet refs without accounting for them.

   currently you need a real ifnet refcnt via if_get/if_unit, or you
   can use if_get_smr in an smr read critical section, but this allows
   code in the softnet threads to use an ifnet ref simply by virtue
   of running in the softnet thread. this means softnet can avoid the
   atomic ops against ifnet refcnts like smr critical sections can
   do, but still sleep, which you cant do with in an smr critical
   section.

   this is implemented by having if_remove net_tq_barriers() before
   letting interface teardown proceed.
VersionDeltaFile
1.756+4-1sys/net/if.c
+4-11 files

OpenBSD/src 5x4dljosys/netinet ip_ah.c ip_ipcomp.c

   populate the enchdr in network byte order instead of host byte order.

   this prepends the packet payloads you can see via enc(4) interfaces,
   and should have been populated consistently from the beginning.
   better late than never.

   i've already fixed tcpdump to cope with these fields in either
   order, so this is mostly about setting a good example in the kernel
   than anything else.
VersionDeltaFile
1.179+6-8sys/netinet/ip_ah.c
1.96+5-7sys/netinet/ip_ipcomp.c
1.222+6-6sys/netinet/ipsec_input.c
1.200+5-6sys/netinet/ip_esp.c
+22-274 files

OpenBSD/src 42fQyTOsys/net pf.c

   if pf can't find a parent for a carp interface, don't process the packet.

   pf tries hard to pretend carp doesnt exist by mapping carp interfaces
   back to their parents for the application of policy (ie, state/ruleset
   evaluation). if a carp parent detaches, it's (very unlikely but
   still) possible for a packet received by a carp interface to go
   through pf.

   previously pf would handle this situation by passing the packet
   through as if it were received by the carp interface, which is
   inconsistent with it trying to use the parent instead.

   this change has it drop packets in this situation instead.

   ok sashan@ claudio@ henning@
VersionDeltaFile
1.1224+3-3sys/net/pf.c
+3-31 files

OpenBSD/src rkEyxiGusr.bin/tmux cmd-parse.y

   Simplify argument move using TAILQ_CONCAT()

   Replace the manual loop moving each argument from cmd->arguments to
   last->arguments with a single TAILQ_CONCAT() call. This makes the code
   clearer and more efficient, while preserving identical behavior.

   OK nicm@
VersionDeltaFile
1.56+3-6usr.bin/tmux/cmd-parse.y
+3-61 files

OpenBSD/src r74uL9tsys/dev/pci/drm/amd/amdgpu amdgpu_devlist.h

   more Navi 48 revisions

   7551 rev c1 is Radeon AI Pro R9700S
   7551 rev c8 is Radeon AI Pro R9600D
   found in AMD Software: Adrenalin Edition 25.12.1
VersionDeltaFile
1.42+1-1sys/dev/pci/drm/amd/amdgpu/amdgpu_devlist.h
+1-11 files

OpenBSD/src 3hlZGImusr.bin/tmux window-copy.c tmux.1

   Add a scroll-to-mouse command for copy mode to scroll to the mouse
   position and bind to the scrollbar, brings the scrollbar keys into line
   with the other mouse keys. From Michael Grant, GitHub issue 4731.
VersionDeltaFile
1.379+20-1usr.bin/tmux/window-copy.c
1.1020+12-7usr.bin/tmux/tmux.1
1.158+4-4usr.bin/tmux/key-bindings.c
+36-123 files

OpenBSD/src bIWhpEysys/arch/m88k/include param.h cpu.h, sys/arch/m88k/m88k subr.S

   On kernels compiled for both 88100 and 88110, replace the CPU_IS881[01]0
   logic to no longer check the cputyp variable, but directly check bits in the
   processor identification register; loading this value produces faster and
   smaller code than accessing memory, and the compiler can be instructed that
   the value is a constant.
VersionDeltaFile
1.23+16-10sys/arch/m88k/include/param.h
1.35+8-9sys/arch/m88k/m88k/subr.S
1.84+7-1sys/arch/m88k/include/cpu.h
+31-203 files

OpenBSD/src aCnwYGMsys/arch/m88k/m88k m88k_machdep.c

   Stop checking the cputyp variable to pick 88100 or 88110 codepath, stick to
   the CPU_IS881[01]0 macros. No functional change yet.
VersionDeltaFile
1.75+8-15sys/arch/m88k/m88k/m88k_machdep.c
+8-151 files

OpenBSD/src ilIjvqqsys/arch/amd64/amd64 vmm_machdep.c

   vmm(4): don't return EIO from ioctl(2) on vcpu halt.

   In the current design, if a vcpu halts without interrupts enabled,
   the vcpu run loop returns EIO. This was then being returned as the
   result of the ioctl(2) call, which is incorrect. The VMM_IOC_RUN
   ioctl is successful and this isn't an error condition. vmm(4) already
   associates this vcpu state with vcpu termination and communicates
   this to vmd(8) in the returned vcpu state.

   This is observed primarily by Linux guests that, due to vmd(8) not
   emulating an ACPI method to power off, the kernel disables interrupts
   and halts the cpu. vmd(8) ends up logging some noise because of the
   EIO return value.

   ok mlarkin@
VersionDeltaFile
1.67+11-13sys/arch/amd64/amd64/vmm_machdep.c
+11-131 files

OpenBSD/src kwLMIdUusr.sbin/bgpctl output.c output_json.c

   Update show rib mem stats now that we have pend_attr and pend_prefix objects.

   OK tb@
VersionDeltaFile
1.65+11-1usr.sbin/bgpctl/output.c
1.56+9-1usr.sbin/bgpctl/output_json.c
1.20+9-1usr.sbin/bgpctl/output_ometric.c
+29-33 files

OpenBSD/src B9wCq5Husr.sbin/bgpd rde_adjout.c rde_update.c

   Implement a per-peer pending prefix queue and lookup table and
   a pending attribute queue and lookup table.

   Withdraws just end up in the peer pending withdraw prefix queue.
   For updates the prefix is queued on a pending attribute entry, which
   itself is queued on the peer pending update queue.
   For updates this allows to aggregate multiple prefixes into a single
   UPDATE message.

   All prefixes are also stored in the per-peer lookup table and this table
   is checked before adding an entry. If the object already exists the prefix
   is first dequeued and the requeued at the tail of its queue.
   pend_prefix_add() is therefor a bit fiddly.

   Similar all attrs are added to the per-peer attribute lookup table and this
   is used to locate the update queue where the prefix is queued on.
   Once queued an attr is not requeued to ensure updates are sent in FIFO order.

   If the attr pointer in struct pend_prefix is NULL then it is a withdraw.

    [8 lines not shown]
VersionDeltaFile
1.9+261-115usr.sbin/bgpd/rde_adjout.c
1.188+42-64usr.sbin/bgpd/rde_update.c
1.329+33-27usr.sbin/bgpd/rde.h
1.674+17-16usr.sbin/bgpd/rde.c
1.60+7-10usr.sbin/bgpd/rde_peer.c
1.525+3-1usr.sbin/bgpd/bgpd.h
+363-2336 files

OpenBSD/src mWwJJqtsys/dev/dt dt_dev.c

   No need to initialize fields to 0, fdalloc() already does that.

   ok sashan@
VersionDeltaFile
1.47+1-2sys/dev/dt/dt_dev.c
+1-21 files

OpenBSD/src TsyIZXLsys/uvm uvm_pdaemon.c

   Prevent lock recursion in new error code paths.
VersionDeltaFile
1.141+5-1sys/uvm/uvm_pdaemon.c
+5-11 files