#
a2cac544 |
| 03-Jul-2024 |
Zhenlei Huang <zlei@FreeBSD.org> |
if_clone: Allow maxunit to be zero
Some drivers, e.g. if_enc(4), only allow one instance to be created, but the KPI ifc_attach_cloner() treat zero value of maxunit as not limited, aka IF_MAXUNIT.
I
if_clone: Allow maxunit to be zero
Some drivers, e.g. if_enc(4), only allow one instance to be created, but the KPI ifc_attach_cloner() treat zero value of maxunit as not limited, aka IF_MAXUNIT.
Introduce a new flag IFC_F_LIMITUNIT to indicate that the requested maxunit is limited and should be respected.
Consumers should use the new flag if there is an intended limit.
Reviewed by: glebius MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D45757
show more ...
|
Revision tags: release/14.1.0, release/13.3.0 |
|
#
29363fb4 |
| 23-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl s
sys: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl script.
Sponsored by: Netflix
show more ...
|
Revision tags: release/14.0.0 |
|
#
ab393e95 |
| 12-Oct-2023 |
Kristof Provost <kp@FreeBSD.org> |
netlink: move NETLINK define to opt_global.h
Move the NETLINK define into opt_global.h so we can rely on it being set correctly, without having to remember to include opt_netlink.h. This ensures tha
netlink: move NETLINK define to opt_global.h
Move the NETLINK define into opt_global.h so we can rely on it being set correctly, without having to remember to include opt_netlink.h. This ensures that the NETLINK define is correctly set. If not we may end up with unloadable modules, due to missing symbols (such as nlmsg_get_group_writer).
PR: 274306 Reviewed by: imp, markj MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D42179
show more ...
|
#
2ff63af9 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .h pattern
Remove /^\s*\*+\s*\$FreeBSD\$.*$\n/
|
#
7ff9ae90 |
| 03-Aug-2023 |
Marius Strobl <marius@FreeBSD.org> |
iflib(9): Remove support for cloning pseudo interfaces
This code was used by the first incarnation of wg(4) and is dead ever since f187d6dfbf633665ba6740fe22742aec60ce02a2 has removed the latter aga
iflib(9): Remove support for cloning pseudo interfaces
This code was used by the first incarnation of wg(4) and is dead ever since f187d6dfbf633665ba6740fe22742aec60ce02a2 has removed the latter again. Moreover, this code matched iflib(4) like a square peg fits in a round hole, was incomplete and despite some hacks still tailored to VPC and wg(4) but not generic. In effect, this reverts the following: 09f6ff4f1a47c3009dc16fdc609a44f2341bc7ac (w/ its "ancillary changes") 9aeca21324f481f57f2ecb7009f461f4f51b62b3 1f93e931d9f0c688f43f98ef777e04636a325526 0f9544d03e89d180f94a7a84b110ec7d2b6c625a 0dd691b41276ce13d25ffb1443af27f85038aa3f
Reviewed by: erj, kbowling Differential Revision: <https://reviews.freebsd.org/D41196>
show more ...
|
#
089104e0 |
| 19-Apr-2023 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
netlink: add netlink interfaces to if_clone
This change adds netlink create/modify/dump interfaces to the `if_clone.c`. The previous attempt with storing the logic inside `netlink/route/iface_driver
netlink: add netlink interfaces to if_clone
This change adds netlink create/modify/dump interfaces to the `if_clone.c`. The previous attempt with storing the logic inside `netlink/route/iface_drivers.c` did not quite work, as, for example, dumping interface-specific state (like vlan id or vlan parent) required some peeking into the private interfaces.
The new interfaces are added in a compatible way - callers don't have to do anything unless they are extended with Netlink.
Reviewed by: kp Differential Revision: https://reviews.freebsd.org/D39032 MFC after: 1 month
show more ...
|
Revision tags: release/13.2.0 |
|
#
83b5c80c |
| 13-Mar-2023 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
net: refactor if_clone.c #1
* Add ifc_find_cloner() * Rename current ifc_find_cloner() to ifc_find_cloner_in_vnet() * Add ifc_find_cloner_match()
This change simplifies the code a bit and reduces t
net: refactor if_clone.c #1
* Add ifc_find_cloner() * Rename current ifc_find_cloner() to ifc_find_cloner_in_vnet() * Add ifc_find_cloner_match()
This change simplifies the code a bit and reduces the diff to the netlink interface cloners merge (D39032).
Reviewed by: glebius, kp Differential Revision: https://reviews.freebsd.org/D39046 MFC after: 2 weeks
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 ...
|
Revision tags: release/12.4.0 |
|
#
26c190d2 |
| 24-Sep-2022 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
if_clone: add ifc_link_ifp() / ifc_unlink_ifp() to the KPI
Factor cloner ifp addition/deletion into separate functions and make them public. This change simlifies the current cloner code and paves
if_clone: add ifc_link_ifp() / ifc_unlink_ifp() to the KPI
Factor cloner ifp addition/deletion into separate functions and make them public. This change simlifies the current cloner code and paves the way to the other upcoming cloner / epair changes.
MFC after: 2 weeks
show more ...
|
#
09ee0fc0 |
| 22-Sep-2022 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
if_clone: rework cloning KPI
The current cloning KPI does not provide a way of creating interfaces with parameres from within kernel. The reason is that those parameters are passed as an opaque po
if_clone: rework cloning KPI
The current cloning KPI does not provide a way of creating interfaces with parameres from within kernel. The reason is that those parameters are passed as an opaque pointer and it is not possible to specify whether this pointer references kernel-space or user-space. Instead of just adding a flag, generalise the KPI to simplify the extension process. Unify current notion of `SIMPLE` and `ADVANCED` users by leveraging newly-added IFC_C_AUTOUNIT flag to automatically pick unit number, which is a primary feature of the "SIMPLE" KPI. Use extendable structures everywhere instead of passing function pointers or parameters. Isolate all parts of the oldKPI under `CLONE_COMPAT_13` so it can be safely merged back to 13. Old KPI will be removed after the merge.
Differential Revision: https://reviews.freebsd.org/D36632 MFC after: 2 weeks
show more ...
|
Revision tags: release/13.1.0 |
|
#
6d1808f0 |
| 25-Jan-2022 |
Gleb Smirnoff <glebius@FreeBSD.org> |
if_clone: correctly destroy a clone from a different vnet
Try to live with cruel reality fact - if_vmove doesn't move an interface from previous vnet cloning infrastructure to the new one. Let's ad
if_clone: correctly destroy a clone from a different vnet
Try to live with cruel reality fact - if_vmove doesn't move an interface from previous vnet cloning infrastructure to the new one. Let's admit this as design feature and make it work better.
* Delete two blocks of code that would fallback to vnet0, if a cloner isn't found. They didn't do any good job and also whole idea of treating vnet0 as special one is wrong. * When deleting a cloned interface, lookup its cloner using it's home vnet.
With this change simple sequence works correctly:
ifconfig foo0 create jail -c name=jj persist vnet vnet.interface=foo0 jexec jj ifconfig foo0 destroy
Differential revision: https://reviews.freebsd.org/D33942
show more ...
|
#
54712fc4 |
| 25-Jan-2022 |
Gleb Smirnoff <glebius@FreeBSD.org> |
if_vmove: improve restoration in cloner's ifgroup membership
* Do a single call into if_clone.c instead of two. The cloner can't disappear since the interface sits on its list. * Make restoration
if_vmove: improve restoration in cloner's ifgroup membership
* Do a single call into if_clone.c instead of two. The cloner can't disappear since the interface sits on its list. * Make restoration smarter - check that cloner with same name exists in the new vnet.
Differential revision: https://reviews.freebsd.org/D33941
show more ...
|
Revision tags: release/12.3.0, release/13.0.0 |
|
#
53729367 |
| 26-Jan-2021 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
Fix subinterface vlan creation.
D26436 introduced support for stacked vlans that changed the way vlans are configured. In particular, this change broke setups that have same-number vlans as subin
Fix subinterface vlan creation.
D26436 introduced support for stacked vlans that changed the way vlans are configured. In particular, this change broke setups that have same-number vlans as subinterfaces.
Vlan support was initially created assuming "vlanX" semantics. In this paradigm, automatic number assignment supported by cloning (ifconfig vlan create) was a natural fit. When "ifaceX.Y" support was added, allowing to have the same vlan number on multiple devices, cloning code became more complex, as the is no unified "vlan" namespace anymore. Such interfaces got the first spare index from "vlan" cloner. This, in turn, led to the following problem: ifconfig ix0.333 create -> index 1 ifconfig ix0.444 create -> index 2 ifconfig vlan2 create -> allocation failure
This change fixes such allocations by using cloning indexes only for "vlanX" interfaces.
Reviewed by: hselasky MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D27505
show more ...
|
Revision tags: release/12.2.0 |
|
#
c7cffd65 |
| 21-Oct-2020 |
Alexander V. Chernikov <melifaro@FreeBSD.org> |
Add support for stacked VLANs (IEEE 802.1ad, AKA Q-in-Q).
802.1ad interfaces are created with ifconfig using the "vlanproto" parameter. Eg., the following creates a 802.1Q VLAN (id #42) over a 802.1
Add support for stacked VLANs (IEEE 802.1ad, AKA Q-in-Q).
802.1ad interfaces are created with ifconfig using the "vlanproto" parameter. Eg., the following creates a 802.1Q VLAN (id #42) over a 802.1ad S-VLAN (id #5) over a physical Ethernet interface (em0).
ifconfig vlan5 create vlandev em0 vlan 5 vlanproto 802.1ad up ifconfig vlan42 create vlandev vlan5 vlan 42 inet 10.5.42.1/24
VLAN_MTU, VLAN_HWCSUM and VLAN_TSO capabilities should be properly supported. VLAN_HWTAGGING is only partially supported, as there is currently no IFCAP_VLAN_* denoting the possibility to set the VLAN EtherType to anything else than 0x8100 (802.1ad uses 0x88A8).
Submitted by: Olivier Piras Sponsored by: RG Nets Differential Revision: https://reviews.freebsd.org/D26436
show more ...
|
#
662c1305 |
| 01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
net: clean up empty lines in .c and .h files
|
Revision tags: release/11.4.0 |
|
#
bb1d0df5 |
| 29-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357179 through r357269.
|
#
b02fd8b7 |
| 28-Jan-2020 |
Kristof Provost <kp@FreeBSD.org> |
epair: Do not abuse params to register the second interface
if_epair used the 'params' argument to pass a pointer to the b interface through if_clone_create(). This pointer can be controlled by user
epair: Do not abuse params to register the second interface
if_epair used the 'params' argument to pass a pointer to the b interface through if_clone_create(). This pointer can be controlled by userspace, which means it could be abused to trigger a panic. While this requires PRIV_NET_IFCREATE privileges those are assigned to vnet jails, which means that vnet jails could panic the system.
Reported by: Ilja Van Sprundel <ivansprundel@ioactive.com> MFC after: 3 days
show more ...
|
Revision tags: release/12.1.0, release/11.3.0, release/12.0.0 |
|
#
14b841d4 |
| 11-Aug-2018 |
Kyle Evans <kevans@FreeBSD.org> |
MFH @ r337607, in preparation for boarding
|
#
5f901c92 |
| 24-Jul-2018 |
Andrew Turner <andrew@FreeBSD.org> |
Use the new VNET_DEFINE_STATIC macro when we are defining static VNET variables.
Reviewed by: bz Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D16147
|
Revision tags: release/11.2.0 |
|
#
46d0f824 |
| 19-May-2018 |
Matt Macy <mmacy@FreeBSD.org> |
net: fix set but not used
|
#
09f6ff4f |
| 11-May-2018 |
Matt Macy <mmacy@FreeBSD.org> |
iflib(9): Add support for cloning pseudo interfaces
Part 3 of many ... The VPC framework relies heavily on cloning pseudo interfaces (vmnics, vpc switch, vcpswitch port, hostif, vxlan if, etc).
Thi
iflib(9): Add support for cloning pseudo interfaces
Part 3 of many ... The VPC framework relies heavily on cloning pseudo interfaces (vmnics, vpc switch, vcpswitch port, hostif, vxlan if, etc).
This pulls in that piece. Some ancillary changes get pulled in as a side effect.
Reviewed by: shurd@ Approved by: sbruno@ Sponsored by: Joyent, Inc. Differential Revision: https://reviews.freebsd.org/D15347
show more ...
|
#
54b4b13c |
| 24-Dec-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r326936 through r327149.
|
#
92f19df4 |
| 23-Dec-2017 |
Alexander Kabaev <kan@FreeBSD.org> |
Do not pass NULL pointer to copyout in if_clone_list.
Sometimes caller is only interested in how many clones are there and NULL pointer is passed for the destination buffer. Do not pass it to copyou
Do not pass NULL pointer to copyout in if_clone_list.
Sometimes caller is only interested in how many clones are there and NULL pointer is passed for the destination buffer. Do not pass it to copyout then.
show more ...
|
#
ce4ab99d |
| 23-Dec-2017 |
Alexander Kabaev <kan@FreeBSD.org> |
Remove some trailing whitespace.
Reviewed by: glebius, ae Differential Revision: https://reviews.freebsd.org/D10386
|
#
3395dd6e |
| 23-Dec-2017 |
Alexander Kabaev <kan@FreeBSD.org> |
Do not double free the memory in if_clone.
if_clone_attach function will drop the reference on failure which will free the if_clone structure. No need to do it second time.
Reviewed by: glebius, a
Do not double free the memory in if_clone.
if_clone_attach function will drop the reference on failure which will free the if_clone structure. No need to do it second time.
Reviewed by: glebius, ae Differential Revision: https://reviews.freebsd.org/D10386
show more ...
|