@zigc/lib 0.17.0-dev.332 → 0.17.0-dev.356
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/main.js +8 -8
- package/libc/darwin/SDKSettings.json +1 -1
- package/libc/darwin/libSystem.tbd +88 -87
- package/libc/include/aarch64-openbsd-none/arm64/cpu.h +7 -1
- package/libc/include/aarch64-openbsd-none/arm64/intr.h +9 -1
- package/libc/include/aarch64-openbsd-none/machine/cpu.h +7 -1
- package/libc/include/aarch64-openbsd-none/machine/intr.h +9 -1
- package/libc/include/any-darwin-any/AvailabilityInternal.h +10 -10
- package/libc/include/any-darwin-any/AvailabilityVersions.h +8 -0
- package/libc/include/any-darwin-any/mach/host_info.h +3 -1
- package/libc/include/any-darwin-any/mach/mach_voucher_types.h +2 -0
- package/libc/include/any-darwin-any/mach/vm_statistics.h +33 -2
- package/libc/include/any-darwin-any/spawn.h +3 -1
- package/libc/include/any-darwin-any/sys/_symbol_aliasing.h +12 -0
- package/libc/include/generic-openbsd/db.h +1 -7
- package/libc/include/generic-openbsd/ddb/db_interface.h +2 -1
- package/libc/include/generic-openbsd/fnmatch.h +6 -2
- package/libc/include/generic-openbsd/login_cap.h +3 -1
- package/libc/include/generic-openbsd/miscfs/fuse/fusefs_node.h +2 -1
- package/libc/include/generic-openbsd/net/bpf.h +3 -1
- package/libc/include/generic-openbsd/net/hfsc.h +4 -4
- package/libc/include/generic-openbsd/net/if.h +5 -1
- package/libc/include/generic-openbsd/net/if_bridge.h +48 -1
- package/libc/include/generic-openbsd/net/if_etherbridge.h +20 -7
- package/libc/include/generic-openbsd/net/if_media.h +26 -1
- package/libc/include/generic-openbsd/net/if_pflow.h +71 -20
- package/libc/include/generic-openbsd/net/if_pfsync.h +2 -2
- package/libc/include/generic-openbsd/net/if_sppp.h +2 -1
- package/libc/include/generic-openbsd/net/if_trunk.h +3 -2
- package/libc/include/generic-openbsd/net/if_types.h +2 -2
- package/libc/include/generic-openbsd/net/if_var.h +34 -12
- package/libc/include/generic-openbsd/net/netisr.h +1 -3
- package/libc/include/generic-openbsd/net/pfvar.h +154 -1
- package/libc/include/generic-openbsd/net/pfvar_priv.h +256 -1
- package/libc/include/generic-openbsd/net80211/ieee80211.h +76 -4
- package/libc/include/generic-openbsd/net80211/ieee80211_ioctl.h +3 -2
- package/libc/include/generic-openbsd/net80211/ieee80211_node.h +48 -2
- package/libc/include/generic-openbsd/net80211/ieee80211_proto.h +4 -1
- package/libc/include/generic-openbsd/net80211/ieee80211_var.h +18 -2
- package/libc/include/generic-openbsd/netinet/if_ether.h +12 -11
- package/libc/include/generic-openbsd/netinet/igmp_var.h +17 -3
- package/libc/include/generic-openbsd/netinet/in_pcb.h +2 -1
- package/libc/include/generic-openbsd/netinet/in_var.h +17 -59
- package/libc/include/generic-openbsd/netinet/ip.h +3 -2
- package/libc/include/generic-openbsd/netinet/tcp_timer.h +1 -2
- package/libc/include/generic-openbsd/netinet6/in6_var.h +15 -29
- package/libc/include/generic-openbsd/netinet6/ip6_var.h +1 -2
- package/libc/include/generic-openbsd/netinet6/mld6_var.h +17 -4
- package/libc/include/generic-openbsd/netinet6/nd6.h +2 -2
- package/libc/include/generic-openbsd/pthread.h +2 -2
- package/libc/include/generic-openbsd/signal.h +2 -2
- package/libc/include/generic-openbsd/sndio.h +6 -12
- package/libc/include/generic-openbsd/strings.h +5 -1
- package/libc/include/generic-openbsd/sys/device.h +4 -3
- package/libc/include/generic-openbsd/sys/disklabel.h +17 -5
- package/libc/include/generic-openbsd/sys/dkio.h +3 -5
- package/libc/include/generic-openbsd/sys/filedesc.h +3 -2
- package/libc/include/generic-openbsd/sys/mbuf.h +1 -1
- package/libc/include/generic-openbsd/sys/mman.h +7 -2
- package/libc/include/generic-openbsd/sys/mutex.h +10 -7
- package/libc/include/generic-openbsd/sys/namei.h +8 -7
- package/libc/include/generic-openbsd/sys/param.h +1 -1
- package/libc/include/generic-openbsd/sys/pledge.h +1 -3
- package/libc/include/generic-openbsd/sys/protosw.h +8 -1
- package/libc/include/generic-openbsd/sys/ptrace.h +4 -1
- package/libc/include/generic-openbsd/sys/sched.h +8 -1
- package/libc/include/generic-openbsd/sys/signal.h +4 -2
- package/libc/include/generic-openbsd/sys/socketvar.h +2 -1
- package/libc/include/generic-openbsd/sys/sockio.h +11 -1
- package/libc/include/generic-openbsd/sys/syscall.h +5 -3
- package/libc/include/generic-openbsd/sys/syscallargs.h +9 -2
- package/libc/include/generic-openbsd/sys/sysctl.h +7 -4
- package/libc/include/generic-openbsd/sys/types.h +6 -2
- package/libc/include/generic-openbsd/sys/videoio.h +143 -68
- package/libc/include/generic-openbsd/sys/xcall.h +2 -2
- package/libc/include/generic-openbsd/time.h +2 -2
- package/libc/include/generic-openbsd/unistd.h +2 -2
- package/libc/include/generic-openbsd/uvm/uvm_anon.h +2 -3
- package/libc/include/generic-openbsd/uvm/uvm_extern.h +1 -19
- package/libc/include/generic-openbsd/uvm/uvm_pager.h +3 -4
- package/libc/include/generic-openbsd/uvm/uvm_pmemrange.h +1 -2
- package/libc/include/generic-openbsd/uvm/uvm_swap.h +4 -1
- package/libc/include/generic-openbsd/uvm/uvm_vnode.h +3 -4
- package/libc/include/generic-openbsd/uvm/uvmexp.h +41 -35
- package/libc/include/mips64-openbsd-none/machine/octeonvar.h +1 -27
- package/libc/include/mips64-openbsd-none/octeon/octeonvar.h +1 -27
- package/libc/include/mips64el-openbsd-none/loongson/apmvar.h +1 -1
- package/libc/include/mips64el-openbsd-none/loongson/param.h +1 -5
- package/libc/include/mips64el-openbsd-none/machine/apmvar.h +1 -1
- package/libc/include/mips64el-openbsd-none/machine/param.h +1 -5
- package/libc/include/powerpc-openbsd-eabihf/powerpc/intr.h +1 -4
- package/libc/include/powerpc64-openbsd-none/machine/atomic.h +3 -3
- package/libc/include/powerpc64-openbsd-none/powerpc64/atomic.h +3 -3
- package/libc/include/riscv64-openbsd-none/machine/cpu.h +4 -8
- package/libc/include/riscv64-openbsd-none/machine/cpufunc.h +4 -4
- package/libc/include/riscv64-openbsd-none/machine/pmap.h +5 -1
- package/libc/include/riscv64-openbsd-none/machine/pte.h +9 -1
- package/libc/include/riscv64-openbsd-none/riscv64/cpu.h +4 -8
- package/libc/include/riscv64-openbsd-none/riscv64/cpufunc.h +4 -4
- package/libc/include/riscv64-openbsd-none/riscv64/pmap.h +5 -1
- package/libc/include/riscv64-openbsd-none/riscv64/pte.h +9 -1
- package/libc/include/x86-openbsd-none/i386/specialreg.h +3 -1
- package/libc/include/x86-openbsd-none/machine/specialreg.h +3 -1
- package/libc/include/x86_64-openbsd-none/amd64/conf.h +11 -2
- package/libc/include/x86_64-openbsd-none/amd64/cpu.h +14 -4
- package/libc/include/x86_64-openbsd-none/amd64/cpufunc.h +2 -3
- package/libc/include/x86_64-openbsd-none/amd64/ghcb.h +2 -1
- package/libc/include/x86_64-openbsd-none/amd64/i82489var.h +2 -4
- package/libc/include/x86_64-openbsd-none/amd64/i8259.h +1 -53
- package/libc/include/x86_64-openbsd-none/amd64/intr.h +5 -2
- package/libc/include/x86_64-openbsd-none/amd64/intrdefs.h +9 -7
- package/libc/include/x86_64-openbsd-none/amd64/kexec.h +48 -0
- package/libc/include/x86_64-openbsd-none/amd64/specialreg.h +4 -1
- package/libc/include/x86_64-openbsd-none/machine/conf.h +11 -2
- package/libc/include/x86_64-openbsd-none/machine/cpu.h +14 -4
- package/libc/include/x86_64-openbsd-none/machine/cpufunc.h +2 -3
- package/libc/include/x86_64-openbsd-none/machine/ghcb.h +2 -1
- package/libc/include/x86_64-openbsd-none/machine/i82489var.h +2 -4
- package/libc/include/x86_64-openbsd-none/machine/i8259.h +1 -53
- package/libc/include/x86_64-openbsd-none/machine/intr.h +5 -2
- package/libc/include/x86_64-openbsd-none/machine/intrdefs.h +9 -7
- package/libc/include/x86_64-openbsd-none/machine/kexec.h +48 -0
- package/libc/include/x86_64-openbsd-none/machine/specialreg.h +4 -1
- package/libc/openbsd/abilists +0 -0
- package/package.json +1 -1
- package/std/Io/File.zig +6 -0
- package/std/Target.zig +50 -38
- package/std/bit_set.zig +0 -1
- package/std/crypto/ascon.zig +0 -2
- package/std/crypto/salsa20.zig +0 -6
- package/std/crypto/sha3.zig +0 -2
- package/std/debug/cpu_context.zig +0 -21
- package/libc/include/mips64el-openbsd-none/loongson/hibernate.h +0 -33
- package/libc/include/mips64el-openbsd-none/loongson/hibernate_var.h +0 -39
- package/libc/include/mips64el-openbsd-none/machine/hibernate.h +0 -33
- package/libc/include/mips64el-openbsd-none/machine/hibernate_var.h +0 -39
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* $OpenBSD: ieee80211.h,v 1.
|
|
1
|
+
/* $OpenBSD: ieee80211.h,v 1.66 2026/03/29 21:16:21 kirill Exp $ */
|
|
2
2
|
/* $NetBSD: ieee80211.h,v 1.6 2004/04/30 23:51:53 dyoung Exp $ */
|
|
3
3
|
|
|
4
4
|
/*-
|
|
@@ -454,9 +454,16 @@ enum {
|
|
|
454
454
|
IEEE80211_ELEMID_QUIET_CHNL = 198, /* 11ac */
|
|
455
455
|
IEEE80211_ELEMID_OPMODE_NOTIF = 199, /* 11ac */
|
|
456
456
|
/* 200-220 reserved */
|
|
457
|
-
IEEE80211_ELEMID_VENDOR = 221 /* vendor private */
|
|
458
|
-
/* 222-
|
|
457
|
+
IEEE80211_ELEMID_VENDOR = 221, /* vendor private */
|
|
458
|
+
/* 222-254 reserved */
|
|
459
|
+
IEEE80211_ELEMID_EXTENSION = 255 /* Extension */
|
|
459
460
|
};
|
|
461
|
+
/*
|
|
462
|
+
* Extension element IDs
|
|
463
|
+
* Used with IEEE80211_ELEMID_EXTENSION (255)
|
|
464
|
+
*/
|
|
465
|
+
#define IEEE80211_ELEMID_EXT_HECAPS 35 /* 11ax HE Capabilities */
|
|
466
|
+
#define IEEE80211_ELEMID_EXT_HEOP 36 /* 11ax HE Operation */
|
|
460
467
|
|
|
461
468
|
/*
|
|
462
469
|
* Action field category values (see 802.11-2012 8.4.1.11 Table 8-38).
|
|
@@ -518,6 +525,7 @@ enum {
|
|
|
518
525
|
|
|
519
526
|
#define IEEE80211_HT_NUM_MCS 77
|
|
520
527
|
#define IEEE80211_VHT_NUM_MCS 10
|
|
528
|
+
#define IEEE80211_HE_NUM_MCS 12
|
|
521
529
|
|
|
522
530
|
/*
|
|
523
531
|
* BlockAck/BlockAckReq Control field (see 802.11-2012 8.3.1.9 Figure 8-25).
|
|
@@ -712,7 +720,8 @@ enum {
|
|
|
712
720
|
#define IEEE80211_HTOP1_NONGF_STA 0x0004
|
|
713
721
|
/* Bit 3 is reserved. */
|
|
714
722
|
#define IEEE80211_HTOP1_OBSS_NONHT_STA 0x0010
|
|
715
|
-
|
|
723
|
+
#define IEEE80211_HTOP1_CCFS2_SHIFT 5
|
|
724
|
+
#define IEEE80211_HTOP1_CCFS2_MASK 0x1fe0
|
|
716
725
|
/* Bytes 4-5. */
|
|
717
726
|
/* Bits 0-5 are reserved. */
|
|
718
727
|
#define IEEE80211_HTOP2_DUALBEACON 0x0040
|
|
@@ -768,6 +777,8 @@ enum {
|
|
|
768
777
|
#define IEEE80211_VHTCAP_LINK_ADAPT_MRQ_MFB 3
|
|
769
778
|
#define IEEE80211_VHTCAP_RX_ANT_PATTERN 0x10000000
|
|
770
779
|
#define IEEE80211_VHTCAP_TX_ANT_PATTERN 0x20000000
|
|
780
|
+
#define IEEE80211_VHTCAP_EXT_NSS_BW_SHIFT 30
|
|
781
|
+
#define IEEE80211_VHTCAP_EXT_NSS_BW_MASK 0xc0000000
|
|
771
782
|
|
|
772
783
|
/*
|
|
773
784
|
* VHT-MCS and NSS map (see 802.11ac-2013 8.4.2.160.3, Figure 8-401bs).
|
|
@@ -784,6 +795,7 @@ enum {
|
|
|
784
795
|
|
|
785
796
|
#define IEEE80211_VHT_MAX_LGI_MBIT_S_MASK 0x1fff
|
|
786
797
|
#define IEEE80211_VHT_MAX_LGI_MBIT_S_SHIFT 0
|
|
798
|
+
#define IEEE80211_VHT_EXT_NSS_BW_CAPABLE (1 << 13)
|
|
787
799
|
|
|
788
800
|
/* The highest number of spatial streams supported by VHT. */
|
|
789
801
|
#define IEEE80211_VHT_NUM_SS 8
|
|
@@ -801,6 +813,66 @@ enum {
|
|
|
801
813
|
/* Byte 1 contains channel center frequency index 0 for 80, 80+80, 160 MHz. */
|
|
802
814
|
/* Byte 2 contains channel center frequency index 1 for 80+80 MHz only. */
|
|
803
815
|
|
|
816
|
+
|
|
817
|
+
/*
|
|
818
|
+
* 802.11ax (HE) definitions.
|
|
819
|
+
*/
|
|
820
|
+
|
|
821
|
+
/* HE Capabilities element fixed fields */
|
|
822
|
+
#define IEEE80211_HE_MAC_CAPS_LEN 6
|
|
823
|
+
#define IEEE80211_HE_PHY_CAPS_LEN 11
|
|
824
|
+
#define IEEE80211_HE_CAPS_FIXED_LEN (IEEE80211_HE_MAC_CAPS_LEN + \
|
|
825
|
+
IEEE80211_HE_PHY_CAPS_LEN)
|
|
826
|
+
|
|
827
|
+
/* HE Tx/Rx MCS NSS Support field size for 80 MHz */
|
|
828
|
+
#define IEEE80211_HE_MCS_NSS_80_LEN 4
|
|
829
|
+
|
|
830
|
+
/* Minimum length of the HE Capabilities element body (includes Ext ID) */
|
|
831
|
+
#define IEEE80211_HE_CAPS_MINLEN (1 + IEEE80211_HE_CAPS_FIXED_LEN + \
|
|
832
|
+
IEEE80211_HE_MCS_NSS_80_LEN)
|
|
833
|
+
|
|
834
|
+
/*
|
|
835
|
+
* Selected HE PHY capability bits (phy_cap_info[0])
|
|
836
|
+
* These are used to determine the presence of additional MCS/NSS maps.
|
|
837
|
+
*/
|
|
838
|
+
#define IEEE80211_HE_PHYCAP0_CHAN_WIDTH_40_IN_2G 0x02
|
|
839
|
+
#define IEEE80211_HE_PHYCAP0_CHAN_WIDTH_40_80_IN_5G 0x04
|
|
840
|
+
#define IEEE80211_HE_PHYCAP0_CHAN_WIDTH_160_IN_5G 0x08
|
|
841
|
+
#define IEEE80211_HE_PHYCAP0_CHAN_WIDTH_8080_IN_5G 0x10
|
|
842
|
+
|
|
843
|
+
/*
|
|
844
|
+
* Size of the HE Tx/Rx MCS NSS Support field, in bytes, for a given
|
|
845
|
+
* HE PHY capabilities byte 0.
|
|
846
|
+
*/
|
|
847
|
+
#define IEEE80211_HE_MCS_NSS_SIZE(_phycap0) (IEEE80211_HE_MCS_NSS_80_LEN + \
|
|
848
|
+
((((_phycap0) & IEEE80211_HE_PHYCAP0_CHAN_WIDTH_160_IN_5G) ? 4 : 0)) + \
|
|
849
|
+
((((_phycap0) & IEEE80211_HE_PHYCAP0_CHAN_WIDTH_8080_IN_5G) ? 4 : 0)))
|
|
850
|
+
|
|
851
|
+
/*
|
|
852
|
+
* HE MCS and NSS map (HE-MCS/NSS set)
|
|
853
|
+
*
|
|
854
|
+
* Set of HE MCS supported for a given number of spatial streams, `n'.
|
|
855
|
+
* Used by the HE capabilities IE and by the basic HE MCS set in
|
|
856
|
+
* the HE operation IE.
|
|
857
|
+
*/
|
|
858
|
+
#define IEEE80211_HE_MCS_FOR_SS_MASK(n) (0x3 << (2 * ((n) - 1)))
|
|
859
|
+
#define IEEE80211_HE_MCS_FOR_SS_SHIFT(n) (2 * ((n) - 1))
|
|
860
|
+
#define IEEE80211_HE_MCS_0_7 0
|
|
861
|
+
#define IEEE80211_HE_MCS_0_9 1
|
|
862
|
+
#define IEEE80211_HE_MCS_0_11 2
|
|
863
|
+
#define IEEE80211_HE_MCS_SS_NOT_SUPP 3
|
|
864
|
+
|
|
865
|
+
/* The highest number of spatial streams supported by HE */
|
|
866
|
+
#define IEEE80211_HE_NUM_SS 8
|
|
867
|
+
|
|
868
|
+
/*
|
|
869
|
+
* HE Operation element fixed fields (not including the Ext ID byte)
|
|
870
|
+
*/
|
|
871
|
+
#define IEEE80211_HEOP_PARAMS_LEN 4
|
|
872
|
+
#define IEEE80211_HEOP_BASIC_MCS_LEN 2
|
|
873
|
+
#define IEEE80211_HEOP_FIXED_LEN (IEEE80211_HEOP_PARAMS_LEN + \
|
|
874
|
+
IEEE80211_HEOP_BASIC_MCS_LEN)
|
|
875
|
+
|
|
804
876
|
/*
|
|
805
877
|
* EDCA Access Categories.
|
|
806
878
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* $OpenBSD: ieee80211_ioctl.h,v 1.
|
|
1
|
+
/* $OpenBSD: ieee80211_ioctl.h,v 1.45 2026/03/26 12:15:01 kirill Exp $ */
|
|
2
2
|
/* $NetBSD: ieee80211_ioctl.h,v 1.7 2004/04/30 22:51:04 dyoung Exp $ */
|
|
3
3
|
|
|
4
4
|
/*-
|
|
@@ -385,9 +385,10 @@ struct ieee80211_nodereq {
|
|
|
385
385
|
#define IEEE80211_NODEREQ_ASSOCFAIL_BSSID 0x20
|
|
386
386
|
#define IEEE80211_NODEREQ_ASSOCFAIL_WPA_PROTO 0x40
|
|
387
387
|
#define IEEE80211_NODEREQ_ASSOCFAIL_WPA_KEY 0x80
|
|
388
|
+
#define IEEE80211_NODEREQ_ASSOCFAIL_CSA 0x100
|
|
388
389
|
#define IEEE80211_NODEREQ_ASSOCFAIL_BITS \
|
|
389
390
|
"\20\1!CHAN\2!IBSS\3!PRIVACY\4!BASICRATE\5!ESSID\6!BSSID\7!WPAPROTO" \
|
|
390
|
-
"\10!WPAKEY"
|
|
391
|
+
"\10!WPAKEY\11!CSA"
|
|
391
392
|
|
|
392
393
|
/* get the entire node cache */
|
|
393
394
|
struct ieee80211_nodereq_all {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* $OpenBSD: ieee80211_node.h,v 1.
|
|
1
|
+
/* $OpenBSD: ieee80211_node.h,v 1.101 2026/03/29 21:16:21 kirill Exp $ */
|
|
2
2
|
/* $NetBSD: ieee80211_node.h,v 1.9 2004/04/30 22:57:32 dyoung Exp $ */
|
|
3
3
|
|
|
4
4
|
/*-
|
|
@@ -370,6 +370,20 @@ struct ieee80211_node {
|
|
|
370
370
|
uint8_t ni_vht_chan_center_freq_idx1;
|
|
371
371
|
uint16_t ni_vht_basic_mcs;
|
|
372
372
|
|
|
373
|
+
/* HE capabilities */
|
|
374
|
+
uint8_t ni_he_mac_cap[IEEE80211_HE_MAC_CAPS_LEN];
|
|
375
|
+
uint8_t ni_he_phy_cap[IEEE80211_HE_PHY_CAPS_LEN];
|
|
376
|
+
uint16_t ni_he_rxmcs_80;
|
|
377
|
+
uint16_t ni_he_txmcs_80;
|
|
378
|
+
uint16_t ni_he_rxmcs_160;
|
|
379
|
+
uint16_t ni_he_txmcs_160;
|
|
380
|
+
uint16_t ni_he_rxmcs_80p80;
|
|
381
|
+
uint16_t ni_he_txmcs_80p80;
|
|
382
|
+
|
|
383
|
+
/* HE operation */
|
|
384
|
+
uint8_t ni_he_oper_params[IEEE80211_HEOP_PARAMS_LEN];
|
|
385
|
+
uint16_t ni_he_basic_mcs;
|
|
386
|
+
|
|
373
387
|
/* Timeout handlers which trigger Tx Block Ack negotiation. */
|
|
374
388
|
struct timeout ni_addba_req_to[IEEE80211_NUM_TID];
|
|
375
389
|
int ni_addba_req_intval[IEEE80211_NUM_TID];
|
|
@@ -381,6 +395,7 @@ struct ieee80211_node {
|
|
|
381
395
|
|
|
382
396
|
int ni_txmcs; /* current MCS used for TX */
|
|
383
397
|
int ni_vht_ss; /* VHT # spatial streams */
|
|
398
|
+
int ni_he_ss; /* HE # spatial streams */
|
|
384
399
|
|
|
385
400
|
/* others */
|
|
386
401
|
u_int16_t ni_associd; /* assoc response */
|
|
@@ -398,6 +413,7 @@ struct ieee80211_node {
|
|
|
398
413
|
#define IEEE80211_NODE_ASSOCFAIL_BSSID 0x20
|
|
399
414
|
#define IEEE80211_NODE_ASSOCFAIL_WPA_PROTO 0x40
|
|
400
415
|
#define IEEE80211_NODE_ASSOCFAIL_WPA_KEY 0x80
|
|
416
|
+
#define IEEE80211_NODE_ASSOCFAIL_CSA 0x100
|
|
401
417
|
|
|
402
418
|
int ni_inact; /* inactivity mark count */
|
|
403
419
|
int ni_txrate; /* index to ni_rates[] */
|
|
@@ -427,6 +443,9 @@ struct ieee80211_node {
|
|
|
427
443
|
#define IEEE80211_NODE_VHTCAP 0x40000 /* claims to support VHT */
|
|
428
444
|
#define IEEE80211_NODE_VHT_SGI80 0x80000 /* SGI on 80 MHz negotiated */
|
|
429
445
|
#define IEEE80211_NODE_VHT_SGI160 0x100000 /* SGI on 160 MHz negotiated */
|
|
446
|
+
#define IEEE80211_NODE_HE 0x200000 /* HE negotiated */
|
|
447
|
+
#define IEEE80211_NODE_HECAP 0x400000 /* claims to support HE */
|
|
448
|
+
#define IEEE80211_NODE_CSA 0x800000 /* channel switch announced */
|
|
430
449
|
|
|
431
450
|
/* If not NULL, this function gets called when ni_refcnt hits zero. */
|
|
432
451
|
void (*ni_unref_cb)(struct ieee80211com *,
|
|
@@ -590,7 +609,11 @@ ieee80211_node_supports_vht_chan160(struct ieee80211_node *ni)
|
|
|
590
609
|
|
|
591
610
|
cap_chan_width = (ni->ni_vhtcaps & IEEE80211_VHTCAP_CHAN_WIDTH_MASK) >>
|
|
592
611
|
IEEE80211_VHTCAP_CHAN_WIDTH_SHIFT;
|
|
593
|
-
if (cap_chan_width != IEEE80211_VHTCAP_CHAN_WIDTH_160
|
|
612
|
+
if (cap_chan_width != IEEE80211_VHTCAP_CHAN_WIDTH_160 &&
|
|
613
|
+
cap_chan_width != IEEE80211_VHTCAP_CHAN_WIDTH_160_8080 &&
|
|
614
|
+
((ni->ni_vhtcaps & IEEE80211_VHTCAP_EXT_NSS_BW_MASK) == 0 ||
|
|
615
|
+
(ni->ni_vht_tx_max_lgi_mbit_s &
|
|
616
|
+
IEEE80211_VHT_EXT_NSS_BW_CAPABLE) == 0))
|
|
594
617
|
return 0;
|
|
595
618
|
|
|
596
619
|
op_chan_width = (ni->ni_vht_chan_width &
|
|
@@ -600,6 +623,23 @@ ieee80211_node_supports_vht_chan160(struct ieee80211_node *ni)
|
|
|
600
623
|
return (op_chan_width == IEEE80211_VHTOP0_CHAN_WIDTH_160);
|
|
601
624
|
}
|
|
602
625
|
|
|
626
|
+
/*
|
|
627
|
+
* Check if the peer supports HE.
|
|
628
|
+
* Require a HE capabilities IE and support for HE MCS with a single
|
|
629
|
+
* spatial stream.
|
|
630
|
+
*/
|
|
631
|
+
static inline int
|
|
632
|
+
ieee80211_node_supports_he(struct ieee80211_node *ni)
|
|
633
|
+
{
|
|
634
|
+
uint16_t rx_mcs;
|
|
635
|
+
|
|
636
|
+
rx_mcs = (ni->ni_he_rxmcs_80 & IEEE80211_HE_MCS_FOR_SS_MASK(1)) >>
|
|
637
|
+
IEEE80211_HE_MCS_FOR_SS_SHIFT(1);
|
|
638
|
+
|
|
639
|
+
return ((ni->ni_flags & IEEE80211_NODE_HECAP) &&
|
|
640
|
+
rx_mcs != IEEE80211_HE_MCS_SS_NOT_SUPP);
|
|
641
|
+
}
|
|
642
|
+
|
|
603
643
|
struct ieee80211com;
|
|
604
644
|
|
|
605
645
|
typedef void ieee80211_iter_func(void *, struct ieee80211_node *);
|
|
@@ -642,6 +682,11 @@ void ieee80211_setup_vhtcaps(struct ieee80211_node *, const uint8_t *,
|
|
|
642
682
|
void ieee80211_clear_vhtcaps(struct ieee80211_node *);
|
|
643
683
|
int ieee80211_setup_vhtop(struct ieee80211_node *, const uint8_t *,
|
|
644
684
|
uint8_t, int);
|
|
685
|
+
void ieee80211_setup_hecaps(struct ieee80211_node *, const uint8_t *,
|
|
686
|
+
uint8_t);
|
|
687
|
+
void ieee80211_clear_hecaps(struct ieee80211_node *);
|
|
688
|
+
int ieee80211_setup_heop(struct ieee80211_node *, const uint8_t *,
|
|
689
|
+
uint8_t, int);
|
|
645
690
|
int ieee80211_setup_rates(struct ieee80211com *,
|
|
646
691
|
struct ieee80211_node *, const u_int8_t *, const u_int8_t *, int);
|
|
647
692
|
enum ieee80211_phymode ieee80211_node_abg_mode(struct ieee80211com *,
|
|
@@ -656,6 +701,7 @@ void ieee80211_node_join(struct ieee80211com *,
|
|
|
656
701
|
void ieee80211_node_leave(struct ieee80211com *,
|
|
657
702
|
struct ieee80211_node *);
|
|
658
703
|
int ieee80211_match_bss(struct ieee80211com *, struct ieee80211_node *, int);
|
|
704
|
+
void ieee80211_node_switch_bss(struct ieee80211com *, struct ieee80211_node *);
|
|
659
705
|
void ieee80211_node_tx_stopped(struct ieee80211com *, struct ieee80211_node *);
|
|
660
706
|
struct ieee80211_node *ieee80211_node_choose_bss(struct ieee80211com *, int,
|
|
661
707
|
struct ieee80211_node **);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* $OpenBSD: ieee80211_proto.h,v 1.
|
|
1
|
+
/* $OpenBSD: ieee80211_proto.h,v 1.51 2026/03/19 16:50:32 chris Exp $ */
|
|
2
2
|
/* $NetBSD: ieee80211_proto.h,v 1.3 2003/10/13 04:23:56 dyoung Exp $ */
|
|
3
3
|
|
|
4
4
|
/*-
|
|
@@ -137,6 +137,7 @@ extern u_int8_t *ieee80211_add_xrates(u_int8_t *,
|
|
|
137
137
|
extern u_int8_t *ieee80211_add_htcaps(u_int8_t *, struct ieee80211com *);
|
|
138
138
|
extern u_int8_t *ieee80211_add_htop(u_int8_t *, struct ieee80211com *);
|
|
139
139
|
extern u_int8_t *ieee80211_add_vhtcaps(u_int8_t *, struct ieee80211com *);
|
|
140
|
+
extern u_int8_t *ieee80211_add_hecaps(u_int8_t *, struct ieee80211com *);
|
|
140
141
|
extern u_int8_t *ieee80211_add_tie(u_int8_t *, u_int8_t, u_int32_t);
|
|
141
142
|
|
|
142
143
|
extern int ieee80211_parse_rsn(struct ieee80211com *, const u_int8_t *,
|
|
@@ -169,6 +170,8 @@ extern void ieee80211_ht_negotiate(struct ieee80211com *,
|
|
|
169
170
|
struct ieee80211_node *);
|
|
170
171
|
extern void ieee80211_vht_negotiate(struct ieee80211com *,
|
|
171
172
|
struct ieee80211_node *);
|
|
173
|
+
extern void ieee80211_he_negotiate(struct ieee80211com *,
|
|
174
|
+
struct ieee80211_node *);
|
|
172
175
|
extern void ieee80211_tx_ba_timeout(void *);
|
|
173
176
|
extern void ieee80211_rx_ba_timeout(void *);
|
|
174
177
|
extern int ieee80211_addba_request(struct ieee80211com *,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* $OpenBSD: ieee80211_var.h,v 1.
|
|
1
|
+
/* $OpenBSD: ieee80211_var.h,v 1.114 2026/03/19 16:50:32 chris Exp $ */
|
|
2
2
|
/* $NetBSD: ieee80211_var.h,v 1.7 2004/05/06 03:07:10 dyoung Exp $ */
|
|
3
3
|
|
|
4
4
|
/*-
|
|
@@ -92,8 +92,9 @@ enum ieee80211_phymode {
|
|
|
92
92
|
IEEE80211_MODE_11G = 3, /* 2GHz, OFDM */
|
|
93
93
|
IEEE80211_MODE_11N = 4, /* 2GHz/5GHz, OFDM/HT */
|
|
94
94
|
IEEE80211_MODE_11AC = 5, /* 5GHz, OFDM/VHT */
|
|
95
|
+
IEEE80211_MODE_11AX = 6, /* 2GHz/5GHz, OFDM/HE */
|
|
95
96
|
};
|
|
96
|
-
#define IEEE80211_MODE_MAX (
|
|
97
|
+
#define IEEE80211_MODE_MAX (IEEE80211_MODE_11AX+1)
|
|
97
98
|
|
|
98
99
|
enum ieee80211_opmode {
|
|
99
100
|
IEEE80211_M_STA = 1, /* infrastructure station */
|
|
@@ -142,6 +143,7 @@ struct ieee80211_channel {
|
|
|
142
143
|
*/
|
|
143
144
|
#define IEEE80211_CHANX_80MHZ 0x00000001 /* use of 80 MHz is allowed */
|
|
144
145
|
#define IEEE80211_CHANX_160MHZ 0x00000002 /* use of 160 MHz is allowed */
|
|
146
|
+
#define IEEE80211_CHANX_HE 0x00000004 /* 11ax/HE channel */
|
|
145
147
|
|
|
146
148
|
/*
|
|
147
149
|
* Useful combinations of channel characteristics.
|
|
@@ -185,6 +187,8 @@ struct ieee80211_channel {
|
|
|
185
187
|
(((_c)->ic_xflags & IEEE80211_CHANX_80MHZ) != 0)
|
|
186
188
|
#define IEEE80211_CHAN_160MHZ_ALLOWED(_c) \
|
|
187
189
|
(((_c)->ic_xflags & IEEE80211_CHANX_160MHZ) != 0)
|
|
190
|
+
#define IEEE80211_CHAN_HE(_c) \
|
|
191
|
+
(((_c)->ic_xflags & IEEE80211_CHANX_HE) != 0)
|
|
188
192
|
|
|
189
193
|
/*
|
|
190
194
|
* EDCA AC parameters.
|
|
@@ -337,6 +341,8 @@ struct ieee80211com {
|
|
|
337
341
|
*/
|
|
338
342
|
struct ieee80211_edca_ac_params ic_edca_ac[EDCA_NUM_AC];
|
|
339
343
|
u_int ic_edca_updtcount;
|
|
344
|
+
u_int ic_edca_txop_count[EDCA_NUM_AC];
|
|
345
|
+
struct timeval ic_edca_txop_time[EDCA_NUM_AC];
|
|
340
346
|
u_int16_t ic_tid_noack;
|
|
341
347
|
u_int8_t ic_globalcnt[EAPOL_KEY_NONCE_LEN];
|
|
342
348
|
u_int8_t ic_nonce[EAPOL_KEY_NONCE_LEN];
|
|
@@ -383,6 +389,15 @@ struct ieee80211com {
|
|
|
383
389
|
uint16_t ic_vht_txmcs;
|
|
384
390
|
uint16_t ic_vht_tx_max_lgi_mbit_s;
|
|
385
391
|
|
|
392
|
+
u_int8_t ic_he_mac_cap[IEEE80211_HE_MAC_CAPS_LEN];
|
|
393
|
+
u_int8_t ic_he_phy_cap[IEEE80211_HE_PHY_CAPS_LEN];
|
|
394
|
+
uint16_t ic_he_rxmcs_80;
|
|
395
|
+
uint16_t ic_he_txmcs_80;
|
|
396
|
+
uint16_t ic_he_rxmcs_160;
|
|
397
|
+
uint16_t ic_he_txmcs_160;
|
|
398
|
+
uint16_t ic_he_rxmcs_80p80;
|
|
399
|
+
uint16_t ic_he_txmcs_80p80;
|
|
400
|
+
|
|
386
401
|
TAILQ_HEAD(, ieee80211_ess) ic_ess;
|
|
387
402
|
};
|
|
388
403
|
#define ic_if ic_ac.ac_if
|
|
@@ -440,6 +455,7 @@ struct ieee80211_ess {
|
|
|
440
455
|
#define IEEE80211_F_BGSCAN 0x08000000 /* STATUS: background scan */
|
|
441
456
|
#define IEEE80211_F_AUTO_JOIN 0x10000000 /* CONF: auto-join active */
|
|
442
457
|
#define IEEE80211_F_VHTON 0x20000000 /* CONF: VHT enabled */
|
|
458
|
+
#define IEEE80211_F_HEON 0x40000000 /* CONF: HE enabled */
|
|
443
459
|
|
|
444
460
|
/* ic_xflags */
|
|
445
461
|
#define IEEE80211_F_TX_MGMT_ONLY 0x00000001 /* leave data frames on ifq */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* $OpenBSD: if_ether.h,v 1.
|
|
1
|
+
/* $OpenBSD: if_ether.h,v 1.99 2025/12/02 03:24:19 dlg Exp $ */
|
|
2
2
|
/* $NetBSD: if_ether.h,v 1.22 1996/05/11 13:00:00 mycroft Exp $ */
|
|
3
3
|
|
|
4
4
|
/*
|
|
@@ -220,12 +220,12 @@ do { \
|
|
|
220
220
|
|
|
221
221
|
#include <net/if_var.h> /* for "struct ifnet" */
|
|
222
222
|
|
|
223
|
-
struct
|
|
224
|
-
struct mbuf *(*
|
|
223
|
+
struct ether_port {
|
|
224
|
+
struct mbuf *(*ep_input)(struct ifnet *, struct mbuf *,
|
|
225
225
|
uint64_t, void *, struct netstack *);
|
|
226
|
-
void (*
|
|
227
|
-
void
|
|
228
|
-
void *
|
|
226
|
+
void *(*ep_port_take)(void *);
|
|
227
|
+
void (*ep_port_rele)(void *, void *);
|
|
228
|
+
void *ep_port;
|
|
229
229
|
};
|
|
230
230
|
|
|
231
231
|
/*
|
|
@@ -241,8 +241,8 @@ struct arpcom {
|
|
|
241
241
|
int ac_multicnt; /* length of ac_multiaddrs */
|
|
242
242
|
int ac_multirangecnt; /* number of mcast ranges */
|
|
243
243
|
|
|
244
|
-
|
|
245
|
-
const struct
|
|
244
|
+
const struct ether_port *ac_trport;
|
|
245
|
+
const struct ether_port *ac_brport;
|
|
246
246
|
};
|
|
247
247
|
|
|
248
248
|
extern int arpt_keep; /* arp resolved cache expire */
|
|
@@ -289,11 +289,11 @@ void ether_rtrequest(struct ifnet *, int, struct rtentry *);
|
|
|
289
289
|
char *ether_sprintf(u_char *);
|
|
290
290
|
|
|
291
291
|
int ether_brport_isset(struct ifnet *);
|
|
292
|
-
void ether_brport_set(struct ifnet *, const struct
|
|
292
|
+
void ether_brport_set(struct ifnet *, const struct ether_port *);
|
|
293
293
|
void ether_brport_clr(struct ifnet *);
|
|
294
|
-
const struct
|
|
294
|
+
const struct ether_port *
|
|
295
295
|
ether_brport_get(struct ifnet *);
|
|
296
|
-
const struct
|
|
296
|
+
const struct ether_port *
|
|
297
297
|
ether_brport_get_locked(struct ifnet *);
|
|
298
298
|
|
|
299
299
|
uint64_t ether_addr_to_e64(const struct ether_addr *);
|
|
@@ -313,6 +313,7 @@ struct ether_extracted {
|
|
|
313
313
|
};
|
|
314
314
|
|
|
315
315
|
void ether_extract_headers(struct mbuf *, struct ether_extracted *);
|
|
316
|
+
struct mbuf *ether_offload_ifcap(struct ifnet *, struct mbuf *);
|
|
316
317
|
|
|
317
318
|
/*
|
|
318
319
|
* Ethernet multicast address structure. There is one of these for each
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* $OpenBSD: igmp_var.h,v 1.
|
|
1
|
+
/* $OpenBSD: igmp_var.h,v 1.17 2026/02/26 00:53:18 bluhm Exp $ */
|
|
2
2
|
/* $NetBSD: igmp_var.h,v 1.9 1996/02/13 23:41:31 christos Exp $ */
|
|
3
3
|
|
|
4
4
|
/*
|
|
@@ -105,12 +105,26 @@ igmpstat_inc(enum igmpstat_counters c)
|
|
|
105
105
|
*/
|
|
106
106
|
#define IGMP_RANDOM_DELAY(X) (arc4random_uniform(X) + 1)
|
|
107
107
|
|
|
108
|
+
struct igmp_pktinfo {
|
|
109
|
+
STAILQ_ENTRY(igmp_pktinfo) ipi_list;
|
|
110
|
+
struct in_addr ipi_addr;
|
|
111
|
+
unsigned int ipi_rdomain;
|
|
112
|
+
unsigned int ipi_ifidx;
|
|
113
|
+
int ipi_type;
|
|
114
|
+
};
|
|
115
|
+
STAILQ_HEAD(igmp_pktlist, igmp_pktinfo);
|
|
116
|
+
|
|
108
117
|
void igmp_init(void);
|
|
109
118
|
int igmp_input(struct mbuf **, int *, int, int, struct netstack *);
|
|
110
|
-
void igmp_joingroup(struct in_multi *, struct ifnet
|
|
111
|
-
|
|
119
|
+
void igmp_joingroup(struct in_multi *, struct ifnet *,
|
|
120
|
+
struct igmp_pktinfo *);
|
|
121
|
+
void igmp_leavegroup(struct in_multi *, struct ifnet *,
|
|
122
|
+
struct igmp_pktinfo *);
|
|
112
123
|
void igmp_fasttimo(void);
|
|
113
124
|
void igmp_slowtimo(void);
|
|
114
125
|
int igmp_sysctl(int *, u_int, void *, size_t *, void *, size_t);
|
|
126
|
+
void igmp_sendpkt(struct igmp_pktinfo *);
|
|
127
|
+
|
|
115
128
|
#endif /* _KERNEL */
|
|
129
|
+
|
|
116
130
|
#endif /* _NETINET_IGMP_VAR_H_ */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* $OpenBSD: in_pcb.h,v 1.
|
|
1
|
+
/* $OpenBSD: in_pcb.h,v 1.174 2026/02/05 03:26:00 dlg Exp $ */
|
|
2
2
|
/* $NetBSD: in_pcb.h,v 1.14 1996/02/13 23:42:00 christos Exp $ */
|
|
3
3
|
|
|
4
4
|
/*
|
|
@@ -357,6 +357,7 @@ void in_setpeeraddr(struct inpcb *, struct mbuf *);
|
|
|
357
357
|
void in_setsockaddr(struct inpcb *, struct mbuf *);
|
|
358
358
|
int in_sockaddr(struct socket *, struct mbuf *);
|
|
359
359
|
int in_peeraddr(struct socket *, struct mbuf *);
|
|
360
|
+
int in_flowid(struct socket *);
|
|
360
361
|
int in_baddynamic(u_int16_t, u_int16_t);
|
|
361
362
|
int in_rootonly(u_int16_t, u_int16_t);
|
|
362
363
|
int in_pcbselsrc(struct in_addr *, const struct sockaddr_in *,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* $OpenBSD: in_var.h,v 1.
|
|
1
|
+
/* $OpenBSD: in_var.h,v 1.47 2026/03/22 23:14:00 bluhm Exp $ */
|
|
2
2
|
/* $NetBSD: in_var.h,v 1.16 1996/02/13 23:42:15 christos Exp $ */
|
|
3
3
|
|
|
4
4
|
/*
|
|
@@ -35,6 +35,12 @@
|
|
|
35
35
|
#ifndef _NETINET_IN_VAR_H_
|
|
36
36
|
#define _NETINET_IN_VAR_H_
|
|
37
37
|
|
|
38
|
+
/*
|
|
39
|
+
* Locks used to protect struct members in this file:
|
|
40
|
+
* I immutable after creation
|
|
41
|
+
* m multicast if_maddrlock rwlock of parent interface
|
|
42
|
+
*/
|
|
43
|
+
|
|
38
44
|
#include <sys/queue.h>
|
|
39
45
|
|
|
40
46
|
#ifdef _KERNEL
|
|
@@ -75,37 +81,9 @@ struct in_aliasreq {
|
|
|
75
81
|
struct sockaddr_in ifra_mask;
|
|
76
82
|
};
|
|
77
83
|
|
|
78
|
-
|
|
79
|
-
#ifdef _KERNEL
|
|
80
|
-
/*
|
|
81
|
-
* Macro for finding the internet address structure (in_ifaddr) corresponding
|
|
82
|
-
* to a given interface (ifnet structure).
|
|
83
|
-
*/
|
|
84
|
-
#define IFP_TO_IA(ifp, ia) \
|
|
85
|
-
/* struct ifnet *ifp; */ \
|
|
86
|
-
/* struct in_ifaddr *ia; */ \
|
|
87
|
-
do { \
|
|
88
|
-
struct ifaddr *ifa; \
|
|
89
|
-
NET_ASSERT_LOCKED(); \
|
|
90
|
-
TAILQ_FOREACH(ifa, &(ifp)->if_addrlist, ifa_list) { \
|
|
91
|
-
if (ifa->ifa_addr->sa_family == AF_INET) \
|
|
92
|
-
break; \
|
|
93
|
-
} \
|
|
94
|
-
(ia) = ifatoia(ifa); \
|
|
95
|
-
} while (/* CONSTCOND */ 0)
|
|
96
|
-
#endif
|
|
97
|
-
|
|
98
|
-
/*
|
|
99
|
-
* Per-interface router version information.
|
|
100
|
-
*/
|
|
101
|
-
struct router_info {
|
|
102
|
-
unsigned int rti_ifidx;
|
|
103
|
-
int rti_type; /* type of router on this interface */
|
|
104
|
-
int rti_age; /* time since last v1 query */
|
|
105
|
-
LIST_ENTRY(router_info) rti_list;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
84
|
#ifdef _KERNEL
|
|
85
|
+
struct router_info;
|
|
86
|
+
|
|
109
87
|
/*
|
|
110
88
|
* Internet multicast address structure. There is one of these for each IP
|
|
111
89
|
* multicast group to which this host belongs on a given network interface.
|
|
@@ -115,11 +93,11 @@ struct in_multi {
|
|
|
115
93
|
#define inm_refcnt inm_ifma.ifma_refcnt
|
|
116
94
|
#define inm_ifidx inm_ifma.ifma_ifidx
|
|
117
95
|
|
|
118
|
-
struct sockaddr_in inm_sin; /* IPv4 multicast address */
|
|
96
|
+
struct sockaddr_in inm_sin; /* [I] IPv4 multicast address */
|
|
119
97
|
#define inm_addr inm_sin.sin_addr
|
|
120
98
|
|
|
121
|
-
u_int inm_state; /* state of membership */
|
|
122
|
-
u_int inm_timer; /* IGMP membership report
|
|
99
|
+
u_int inm_state; /* [m] state of membership */
|
|
100
|
+
u_int inm_timer; /* [m] IGMP membership report */
|
|
123
101
|
|
|
124
102
|
struct router_info *inm_rti; /* router version info */
|
|
125
103
|
};
|
|
@@ -130,37 +108,17 @@ ifmatoinm(struct ifmaddr *ifma)
|
|
|
130
108
|
return ((struct in_multi *)(ifma));
|
|
131
109
|
}
|
|
132
110
|
|
|
133
|
-
|
|
134
|
-
* Macro for looking up the in_multi record for a given IP multicast
|
|
135
|
-
* address on a given interface. If no matching record is found, "inm"
|
|
136
|
-
* returns NULL.
|
|
137
|
-
*/
|
|
138
|
-
#define IN_LOOKUP_MULTI(addr, ifp, inm) \
|
|
139
|
-
/* struct in_addr addr; */ \
|
|
140
|
-
/* struct ifnet *ifp; */ \
|
|
141
|
-
/* struct in_multi *inm; */ \
|
|
142
|
-
do { \
|
|
143
|
-
struct ifmaddr *ifma; \
|
|
144
|
-
\
|
|
145
|
-
(inm) = NULL; \
|
|
146
|
-
NET_ASSERT_LOCKED(); \
|
|
147
|
-
TAILQ_FOREACH(ifma, &(ifp)->if_maddrlist, ifma_list) \
|
|
148
|
-
if (ifma->ifma_addr->sa_family == AF_INET && \
|
|
149
|
-
ifmatoinm(ifma)->inm_addr.s_addr == (addr).s_addr) {\
|
|
150
|
-
(inm) = ifmatoinm(ifma); \
|
|
151
|
-
break; \
|
|
152
|
-
} \
|
|
153
|
-
} while (/* CONSTCOND */ 0)
|
|
154
|
-
|
|
111
|
+
struct in_ifaddr *in_ifp2ia(struct ifnet *);
|
|
155
112
|
int in_ifinit(struct ifnet *,
|
|
156
113
|
struct in_ifaddr *, struct sockaddr_in *, int);
|
|
157
|
-
struct in_multi *
|
|
114
|
+
struct in_multi *in_lookupmulti(const struct in_addr *, struct ifnet *);
|
|
115
|
+
struct in_multi *in_addmulti(const struct in_addr *, struct ifnet *);
|
|
158
116
|
void in_delmulti(struct in_multi *);
|
|
159
|
-
int in_hasmulti(struct in_addr *, struct ifnet *);
|
|
117
|
+
int in_hasmulti(const struct in_addr *, struct ifnet *);
|
|
160
118
|
void in_ifscrub(struct ifnet *, struct in_ifaddr *);
|
|
161
119
|
int in_control(struct socket *, u_long, caddr_t, struct ifnet *);
|
|
162
120
|
int in_ioctl(u_long, caddr_t, struct ifnet *, int);
|
|
163
121
|
void in_prefixlen2mask(struct in_addr *, int);
|
|
164
|
-
#endif
|
|
122
|
+
#endif /* _KERNEL */
|
|
165
123
|
|
|
166
124
|
#endif /* _NETINET_IN_VAR_H_ */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* $OpenBSD: ip.h,v 1.
|
|
1
|
+
/* $OpenBSD: ip.h,v 1.22 2025/12/19 13:58:53 tb Exp $ */
|
|
2
2
|
/* $NetBSD: ip.h,v 1.9 1995/05/15 01:22:44 cgd Exp $ */
|
|
3
3
|
|
|
4
4
|
/*
|
|
@@ -95,7 +95,7 @@ struct ip {
|
|
|
95
95
|
#define IPTOS_PREC_ROUTINE 0x00
|
|
96
96
|
|
|
97
97
|
/*
|
|
98
|
-
* Definitions for DiffServ Codepoints as per RFCs 2474, 3246, 4594
|
|
98
|
+
* Definitions for DiffServ Codepoints as per RFCs 2474, 3246, 4594, 5865, 8622.
|
|
99
99
|
* These are the 6 most significant bits as they appear on the wire, so the
|
|
100
100
|
* two least significant bits must be zero.
|
|
101
101
|
*/
|
|
@@ -118,6 +118,7 @@ struct ip {
|
|
|
118
118
|
#define IPTOS_DSCP_AF42 0x90
|
|
119
119
|
#define IPTOS_DSCP_AF43 0x98
|
|
120
120
|
#define IPTOS_DSCP_CS5 0xa0
|
|
121
|
+
#define IPTOS_DSCP_VA 0xb0
|
|
121
122
|
#define IPTOS_DSCP_EF 0xb8
|
|
122
123
|
#define IPTOS_DSCP_CS6 0xc0
|
|
123
124
|
#define IPTOS_DSCP_CS7 0xe0
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* $OpenBSD: tcp_timer.h,v 1.
|
|
1
|
+
/* $OpenBSD: tcp_timer.h,v 1.28 2025/12/31 03:47:04 jsg Exp $ */
|
|
2
2
|
/* $NetBSD: tcp_timer.h,v 1.6 1995/03/26 20:32:37 jtc Exp $ */
|
|
3
3
|
|
|
4
4
|
/*
|
|
@@ -162,7 +162,6 @@ extern int tcp_keepintvl; /* [a] time between keepalive probes */
|
|
|
162
162
|
extern int tcp_keepinit_sec; /* [a] copy of above in seconds for sysctl */
|
|
163
163
|
extern int tcp_keepidle_sec; /* [a] copy of above in seconds for sysctl */
|
|
164
164
|
extern int tcp_keepintvl_sec; /* [a] copy of above in seconds for sysctl */
|
|
165
|
-
extern int tcp_ttl; /* time to live for TCP segs */
|
|
166
165
|
extern const int tcp_backoff[];
|
|
167
166
|
#endif /* _KERNEL */
|
|
168
167
|
#endif /* _NETINET_TCP_TIMER_H_ */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* $OpenBSD: in6_var.h,v 1.
|
|
1
|
+
/* $OpenBSD: in6_var.h,v 1.85 2026/03/22 23:14:00 bluhm Exp $ */
|
|
2
2
|
/* $KAME: in6_var.h,v 1.55 2001/02/16 12:49:45 itojun Exp $ */
|
|
3
3
|
|
|
4
4
|
/*
|
|
@@ -64,6 +64,12 @@
|
|
|
64
64
|
#ifndef _NETINET6_IN6_VAR_H_
|
|
65
65
|
#define _NETINET6_IN6_VAR_H_
|
|
66
66
|
|
|
67
|
+
/*
|
|
68
|
+
* Locks used to protect struct members in this file:
|
|
69
|
+
* I immutable after creation
|
|
70
|
+
* m multicast if_maddrlock rwlock of parent interface
|
|
71
|
+
*/
|
|
72
|
+
|
|
67
73
|
/*
|
|
68
74
|
* Interface address, Internet version. One of these structures
|
|
69
75
|
* is allocated for each interface with an Internet address.
|
|
@@ -316,11 +322,11 @@ struct in6_multi {
|
|
|
316
322
|
#define in6m_refcnt in6m_ifma.ifma_refcnt
|
|
317
323
|
#define in6m_ifidx in6m_ifma.ifma_ifidx
|
|
318
324
|
|
|
319
|
-
struct sockaddr_in6 in6m_sin; /* IPv6 multicast address */
|
|
325
|
+
struct sockaddr_in6 in6m_sin; /* [I] IPv6 multicast address */
|
|
320
326
|
#define in6m_addr in6m_sin.sin6_addr
|
|
321
327
|
|
|
322
|
-
u_int in6m_state; /* state of membership */
|
|
323
|
-
u_int in6m_timer; /* MLD6 membership report
|
|
328
|
+
u_int in6m_state; /* [m] state of membership */
|
|
329
|
+
u_int in6m_timer; /* [m] MLD6 membership report */
|
|
324
330
|
};
|
|
325
331
|
|
|
326
332
|
static __inline struct in6_multi *
|
|
@@ -329,32 +335,12 @@ ifmatoin6m(struct ifmaddr *ifma)
|
|
|
329
335
|
return ((struct in6_multi *)(ifma));
|
|
330
336
|
}
|
|
331
337
|
|
|
332
|
-
|
|
333
|
-
*
|
|
334
|
-
* address on a given interface. If no matching record is found, "in6m"
|
|
335
|
-
* returns NULL.
|
|
336
|
-
*/
|
|
337
|
-
#define IN6_LOOKUP_MULTI(addr, ifp, in6m) \
|
|
338
|
-
/* struct in6_addr addr; */ \
|
|
339
|
-
/* struct ifnet *ifp; */ \
|
|
340
|
-
/* struct in6_multi *in6m; */ \
|
|
341
|
-
do { \
|
|
342
|
-
struct ifmaddr *ifma; \
|
|
343
|
-
\
|
|
344
|
-
(in6m) = NULL; \
|
|
345
|
-
TAILQ_FOREACH(ifma, &(ifp)->if_maddrlist, ifma_list) \
|
|
346
|
-
if (ifma->ifma_addr->sa_family == AF_INET6 && \
|
|
347
|
-
IN6_ARE_ADDR_EQUAL(&ifmatoin6m(ifma)->in6m_addr, \
|
|
348
|
-
&(addr))) { \
|
|
349
|
-
(in6m) = ifmatoin6m(ifma); \
|
|
350
|
-
break; \
|
|
351
|
-
} \
|
|
352
|
-
} while (/* CONSTCOND */ 0)
|
|
353
|
-
|
|
354
|
-
struct in6_multi *in6_addmulti(struct in6_addr *, struct ifnet *, int *);
|
|
338
|
+
struct in6_multi *in6_lookupmulti(const struct in6_addr *, struct ifnet *);
|
|
339
|
+
struct in6_multi *in6_addmulti(const struct in6_addr *, struct ifnet *, int *);
|
|
355
340
|
void in6_delmulti(struct in6_multi *);
|
|
356
|
-
int in6_hasmulti(struct in6_addr *, struct ifnet *);
|
|
357
|
-
struct in6_multi_mship *in6_joingroup(struct ifnet *, struct in6_addr *,
|
|
341
|
+
int in6_hasmulti(const struct in6_addr *, struct ifnet *);
|
|
342
|
+
struct in6_multi_mship *in6_joingroup(struct ifnet *, const struct in6_addr *,
|
|
343
|
+
int *);
|
|
358
344
|
void in6_leavegroup(struct in6_multi_mship *);
|
|
359
345
|
int in6_control(struct socket *, u_long, caddr_t, struct ifnet *);
|
|
360
346
|
int in6_ioctl(u_long, caddr_t, struct ifnet *, int);
|