#
badcb3fd |
| 29-Mar-2023 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
routing: fix panic when adding an interface route to the p2p interface without and inet/inet6 addresses attached.
MFC after: 3 days
|
#
e2427c69 |
| 16-Mar-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
IfAPI: Add iterator to complement if_foreach()
Summary: Sometimes an if_foreach() callback can be trivial, or need a lot of outer context. In this case a regular `for` loop makes more sense. To ke
IfAPI: Add iterator to complement if_foreach()
Summary: Sometimes an if_foreach() callback can be trivial, or need a lot of outer context. In this case a regular `for` loop makes more sense. To keep things hidden in the new API, use an opaque `if_iter` structure that can still be instantiated on the stack. The current implementation uses just a single pointer out of the 4 alotted to the opaque context, and the cleanup does nothing, but may be used in the future.
Reviewed by: melifaro Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D39138
show more ...
|
#
df2b419a |
| 04-Mar-2023 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
ifnet: add if_foreach_sleep() to allow ifnet iterations with sleep.
Subscribers: imp, ae, glebius
Differential Revision: https://reviews.freebsd.org/D38904
|
#
66bdbcd5 |
| 03-Mar-2023 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
net: unify mtu update code
Subscribers: imp, ae, glebius
Differential Revision: https://reviews.freebsd.org/D38893
|
#
aac2d19d |
| 10-Feb-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
IfAPI: Style cleanup
Summary: Clean up style issues from IfAPI additions.
Casts to (struct ifnet *) made sense when `if_t` was a `void *`, but since it's a `struct ifnet *` it no longer makes sense
IfAPI: Style cleanup
Summary: Clean up style issues from IfAPI additions.
Casts to (struct ifnet *) made sense when `if_t` was a `void *`, but since it's a `struct ifnet *` it no longer makes sense. Fix whitespace errors, among others.
Reviewed by: kib, glebius Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D38499
show more ...
|
#
a3a76c3d |
| 10-Feb-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
IfAPI: Add capabilities2/capenable2 accessors
Summary: As a stopgap measure add basic accessors for the if_capabilities2 and if_capenable2 members to further hide the ifnet details.
Sponsored by: J
IfAPI: Add capabilities2/capenable2 accessors
Summary: As a stopgap measure add basic accessors for the if_capabilities2 and if_capenable2 members to further hide the ifnet details.
Sponsored by: Juniper Networks, Inc. Reviewed by: glebius, kib Differential Revision: https://reviews.freebsd.org/D38487
show more ...
|
#
189c3729 |
| 10-Feb-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
IfAPI: More accessors
Summary: Add the following accessors needed by infiniband drivers: * if_getaddrlen() * if_setbroadcastaddr() * if_resolvemulti()
With these accessors, and additional changes o
IfAPI: More accessors
Summary: Add the following accessors needed by infiniband drivers: * if_getaddrlen() * if_setbroadcastaddr() * if_resolvemulti()
With these accessors, and additional changes on the drivers' side, an amd64 kernel can be compiled with `struct ifnet` completely hidden.
Reviewed by: melifaro Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D38488
show more ...
|
#
1e6131ba |
| 01-Feb-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
IfAPI: Add needed APIs for mbuf support
Summary: Add 2 new APIs for supporting recent mbuf changes: * 36e0a362ac added the m_snd_tag_alloc() wrapper around if_snd_tag_alloc(). Push this down to t
IfAPI: Add needed APIs for mbuf support
Summary: Add 2 new APIs for supporting recent mbuf changes: * 36e0a362ac added the m_snd_tag_alloc() wrapper around if_snd_tag_alloc(). Push this down to the ifnet level. * 4d7a1361ef adds the m_rcvif_serialize()/m_rcvif_restore() KPIs to serialize and restore an ifnet pointer. Add the necessary wrapper to get the index generation for this.
Reviewed By: jhb Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D38340
show more ...
|
#
2eeb8083 |
| 01-Feb-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
IfAPI: Add iterator to loop over all interfaces
Summary: Sometimes it's useful to iterate over all interfaces in the current VNET, as the linuxulator does in several places.
Unlike other iterators
IfAPI: Add iterator to loop over all interfaces
Summary: Sometimes it's useful to iterate over all interfaces in the current VNET, as the linuxulator does in several places.
Unlike other iterators in the IfAPI this propagates any error received up to the caller, instead of returning a count.
Sponsored by: Juniper Networks, Inc. Reviewed by: glebius, melifaro Differential Revision: https://reviews.freebsd.org/D38348
show more ...
|
#
d79539e6 |
| 25-Jan-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
IfAPI: Add if_altq_is_enabled() interface.
Summary: The only user of the ALTQ_IS_ENABLED() in a driver checks against the ifnet queue. Abstract that all out and present the interface to check if AL
IfAPI: Add if_altq_is_enabled() interface.
Summary: The only user of the ALTQ_IS_ENABLED() in a driver checks against the ifnet queue. Abstract that all out and present the interface to check if ALTQ is enabled on the interface.
Sponsored by: Juniper Networks, Inc. Reviewed By: glebius Differential Revision: https://reviews.freebsd.org/D38204
show more ...
|
#
31cfaf19 |
| 25-Jan-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
IfAPI: Add l2com accessor for firewire.
Summary: Firewire is the only device driver that accesses the l2com member, all other accesses are handled within the netstack itself.
Sponsored by: Juniper
IfAPI: Add l2com accessor for firewire.
Summary: Firewire is the only device driver that accesses the l2com member, all other accesses are handled within the netstack itself.
Sponsored by: Juniper Networks, Inc. Reviewed by: glebius, melifaro Differential Revision: https://reviews.freebsd.org/D38203
show more ...
|
#
0d2684e1 |
| 24-Jan-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
IfAPI: Add some more accessors
Summary: * if_setreassignfn for wireguard. * if_getinputfn() and if_getstartfn() for various drivers. Use the function descriptor typedefs for these and the setters
IfAPI: Add some more accessors
Summary: * if_setreassignfn for wireguard. * if_getinputfn() and if_getstartfn() for various drivers. Use the function descriptor typedefs for these and the setters. * vlantrunk accessor. This is used by VLAN_CAPABILITIES() used by several drivers, as well as directly by mxge(4). * if_pcp member accessor, used by cxgbe. * accessors for netmap adapter.
Sponsored by: Juniper Networks, Inc. Reviewed By: glebius Differential Revision: https://reviews.freebsd.org/D38202
show more ...
|
#
c255d1a4 |
| 23-Jan-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
IfAPI: Add if_llsoftc member accessors for TOEDEV
Summary: Keep TOEDEV() macro for backwards compatibility, and add a SETTOEDEV() macro to complement with the new accessors.
Sponsored by: Juniper N
IfAPI: Add if_llsoftc member accessors for TOEDEV
Summary: Keep TOEDEV() macro for backwards compatibility, and add a SETTOEDEV() macro to complement with the new accessors.
Sponsored by: Juniper Networks, Inc. Reviewed by: glebius Differential Revision: https://reviews.freebsd.org/D38199
show more ...
|
#
30af2c13 |
| 23-Jan-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
IfAPI: Add if_get/setmaclabel() and use it.
Summary: Port the MAC modules to use the IfAPI APIs as part of this.
Sponsored by: Juniper Networks, Inc. Reviewed by: glebius Differential Revision: htt
IfAPI: Add if_get/setmaclabel() and use it.
Summary: Port the MAC modules to use the IfAPI APIs as part of this.
Sponsored by: Juniper Networks, Inc. Reviewed by: glebius Differential Revision: https://reviews.freebsd.org/D38197
show more ...
|
#
113af4fd |
| 24-Jan-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
IfAPI: Add if_gettype() API and use it for vlan
Sponsored by: Juniper Networks, Inc. Reviewed by: #network, glebius Differential Revision: https://reviews.freebsd.org/D38198
|
#
053a24d1 |
| 13-Jan-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
debugnet: Add ifnet accessor to set debugnet methods
As part of the effort to hide the internals of the ifnet struct, convert the DEBUGNET_SET() macro to use an accessor instead of directly touching
debugnet: Add ifnet accessor to set debugnet methods
As part of the effort to hide the internals of the ifnet struct, convert the DEBUGNET_SET() macro to use an accessor instead of directly touching the methods member.
Reviewed by: glebius (older version) Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D38105
show more ...
|
#
2c2b37ad |
| 13-Jan-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
ifnet/API: Move struct ifnet definition to a <net/if_private.h>
Hide the ifnet structure definition, no user serviceable parts inside, it's a netstack implementation detail. Include it temporarily
ifnet/API: Move struct ifnet definition to a <net/if_private.h>
Hide the ifnet structure definition, no user serviceable parts inside, it's a netstack implementation detail. Include it temporarily in <net/if_var.h> until all drivers are updated to use the accessors exclusively.
Reviewed by: glebius Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D38046
show more ...
|
#
fa25dbfd |
| 12-Jan-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
ifnet API: Change if_init() to take context argument
Some drivers, like iflib drivers, take a 'context' argument instead of a ifnet argument, as a single interface may have multiple contexts. Follow
ifnet API: Change if_init() to take context argument
Some drivers, like iflib drivers, take a 'context' argument instead of a ifnet argument, as a single interface may have multiple contexts. Follow this scheme by passing the context argument down. Most drivers will likely pass 'ifp' as the context.
Reviewed by: glebius Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D38102
show more ...
|
#
d3467839 |
| 09-Jan-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
ifnet/API: Change if_set*bit accessors to clear first
Summary: A common pattern has been to:
if (foo) caps = IFCAP_FOO; ifp->if_capenable &= ~IFCAP_FOO; ifp->if_capenable |= caps;
which in th
ifnet/API: Change if_set*bit accessors to clear first
Summary: A common pattern has been to:
if (foo) caps = IFCAP_FOO; ifp->if_capenable &= ~IFCAP_FOO; ifp->if_capenable |= caps;
which in the new order of things would be:
if (foo) caps = IF_FOO; if_setcapenablebits(ifp, 0, IFCAP_FOO); if_setcapenablebits(ifp, caps, 0);
This change streamlines this into:
if (foo) caps = IF_FOO; if_setcapenablebits(ifp, caps, IFCAP_FOO);
Reviewed by: melifaro Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D37993
show more ...
|
#
74abe47e |
| 21-Dec-2022 |
Justin Hibbits <jhibbits@FreeBSD.org> |
ifnet/DrvAPI: Implement if_setoutputfn() accessor
Fixes: eb1da3e5258238e1c0555c6a006a341df0821d8e Sponsored by: Juniper Networks, Inc.
|
#
eb1da3e5 |
| 09-Dec-2022 |
Justin Hibbits <jhibbits@FreeBSD.org> |
DrvAPI: Extend driver KPI with more accessors
Summary: Add the following accessors to hide some more netstack details: * if_get/setcapabilities2 and *bits analogue * if_setdname * if_getxname * if_t
DrvAPI: Extend driver KPI with more accessors
Summary: Add the following accessors to hide some more netstack details: * if_get/setcapabilities2 and *bits analogue * if_setdname * if_getxname * if_transmit - wrapper for call to ifp->if_transmit() - This required changing the existing if_transmit to if_transmit_default, since that's its purpose. * if_getalloctype * if_getindex * if_foreach_addr_type - Like if_foreach_lladdr() but for any address family type. Used by some drivers to iterate over all AF_INET addresses. * if_init() - wrapper for ifp->if_init() call * if_setinputfn * if_setsndtagallocfn * if_togglehwassist
Reviewers: #transport, #network, glebius, melifaro
Reviewed by: #network, melifaro Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D37664
show more ...
|
#
bfeef0d3 |
| 30-Nov-2022 |
Nick Reilly <nreilly@blackberry.com> |
pf: fix pfi_ifnet leak on interface removal
The detach of the interface and group were leaving pfi_ifnet memory behind. Check if the kif still has references, and clean it up if it doesn't
On inter
pf: fix pfi_ifnet leak on interface removal
The detach of the interface and group were leaving pfi_ifnet memory behind. Check if the kif still has references, and clean it up if it doesn't
On interface detach, the group deletion was notified first and then a change notification was sent. This would recreate the group in the kif layer. Reorder the change to before the delete.
PR: 257218 MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D37569
show more ...
|
#
1bcd230f |
| 03-Dec-2022 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
netlink: add interface notification on link status / flags change.
* Add link-state change notifications by subscribing to ifnet_link_event. In the Linux netlink model, link state is reported in 2
netlink: add interface notification on link status / flags change.
* Add link-state change notifications by subscribing to ifnet_link_event. In the Linux netlink model, link state is reported in 2 places: first is the IFLA_OPERSTATE, which stores state per RFC2863. The second is an IFF_LOWER_UP interface flag. As many applications rely on the latter, reserve 1 bit from if_flags, named as IFF_NETLINK_1. This flag is mapped to IFF_LOWER_UP in the netlink headers. This is done to avoid making applications think this flag is actually supported / presented in non-netlink outputs. * Add flag change notifications, by hooking into rt_ifmsg(). In the netlink model, notification should include the bitmask for the change flags. Update rt_ifmsg() to include such bitmask.
Differential Revision: https://reviews.freebsd.org/D37597
show more ...
|
#
984b27d8 |
| 30-Nov-2022 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
net: add if_allocdescr() to permit updating iface description from the kernel
Reviewed by: kp,zlei Differential Revision: https://reviews.freebsd.org/D37566 MFC after: 2 weeks
|
Revision tags: release/12.4.0 |
|
#
9a7c520a |
| 24-Sep-2022 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
ifp: add if_setdescr() / if_freedesrt() methods
Add methods for setting and removing the description from the interface, so the external users can manage it without using ioctl API.
MFC after:
ifp: add if_setdescr() / if_freedesrt() methods
Add methods for setting and removing the description from the interface, so the external users can manage it without using ioctl API.
MFC after: 2 weeks
show more ...
|