#
359024 |
|
16-Mar-2020 |
brooks |
MFC r358592:
Expose ifr_buffer_get_(buffer|length) outside if.c.
This is a preparatory commit for D23933.
Reviewed by: jhb Obtained from: CheriBSD Sponsored by: DARPA
|
#
357112 |
|
25-Jan-2020 |
eugen |
MFC r356863: ifa_maintain_loopback_route: adjust debugging output
|
#
356456 |
|
07-Jan-2020 |
bz |
MFC r355070:
Allow kernel to compile without BPF.
r297816 added some bpf magic for VIMAGE unconditionally which no longer allows kernels to compile without bpf (but with other networking). Add the missing ifdef checks and allow a kernel to compile without bpf again.
PR: 242136 Reported by: dave mischler.com MFC after: 2 weeks
|
#
352649 |
|
24-Sep-2019 |
kib |
MFC r352458: Add SIOCGIFDOWNREASON.
Sponsored by: Mellanox Technologies
|
#
352565 |
|
20-Sep-2019 |
kevans |
MFC r352246: SIOCSIFNAME: Do nothing if we're not actually changing
Instead of throwing EEXIST, just succeed if the name isn't actually changing. We don't need to trigger departure or any of that because there's no change from consumers' perspective.
PR: 240539
|
#
341884 |
|
12-Dec-2018 |
hselasky |
MFC r339012: For changing the MTU on tun/tap devices, it should not matter whether it is done via using ifconfig, which uses a SIOCSIFMTU ioctl() command, or doing it using a TUNSIFINFO/TAPSIFINFO ioctl() command. Without this patch, for IPv6 the new MTU is not used when creating routes. Especially, when initiating TCP connections after increasing the MTU, the old MTU is still used to compute the MSS. Thanks to ae@ and bz@ for helping to improve the patch.
Reviewed by: ae@, bz@ Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D17180
|
#
341678 |
|
07-Dec-2018 |
ae |
MFC r341008: Fix possible panic during ifnet detach in rtsock.
The panic can happen, when some application does dump of routing table using sysctl interface. To prevent this, set IFF_DYING flag in if_detach_internal() function, when ifnet under lock is removed from the chain. In sysctl_rtsock() take IFNET_RLOCK_NOSLEEP() to prevent ifnet detach during routes enumeration. In case, if some interface was detached in the time before we take the lock, add the check, that ifnet is not DYING. This prevents access to memory that could be freed after ifnet is unlinked.
Differential Revision: https://reviews.freebsd.org/D18338
|
#
340569 |
|
18-Nov-2018 |
kp |
MFC r340066:
Notify that the ifnet will go away, even on vnet shutdown
pf subscribes to ifnet_departure_event events, so it can clean up the ifg_pf_kif and if_pf_kif pointers in the ifnet. During vnet shutdown interfaces could go away without sending the event, so pf ends up cleaning these up as part of its shutdown sequence, which happens after the ifnet has already been freed.
Send the ifnet_departure_event during vnet shutdown, allowing pf to clean up correctly.
Sponsored by: Orange Business Services
|
#
338081 |
|
20-Aug-2018 |
loos |
MFC r312770 and r337854:
After the in_control() changes in r257692, an existing address is (intentionally) deleted first and then completely added again (so all the events, announces and hooks are given a chance to run).
This cause an issue with CARP where the existing CARP data structure is removed together with the last address for a given VHID, which will cause a subsequent fail when the address is later re-added.
This change fixes this issue by adding a new flag to keep the CARP data structure when an address is not being removed.
There was an additional issue with IPv6 CARP addresses, where the CARP data structure would never be removed after a change and lead to VHIDs which cannot be destroyed.
PR: 229384 Sponsored by: Rubicon Communications, LLC (Netgate)
|
#
333226 |
|
03-May-2018 |
brooks |
MFC r332997:
Translate 32-bit ifmedia requests into native ones.
We use transformation rather than accessors as virtually ever driver implements SIOCGIFMEDIA and all would have to be touched.
Keep the code readable by always performing copies and (possiably no-op) transforms.
Reviewed by: jhb, kib Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14996
|
#
332991 |
|
25-Apr-2018 |
kib |
MFC r331622: Allow to specify PCP on packets not belonging to any VLAN.
Sponsored by: Mellanox Technologies
|
#
332493 |
|
13-Apr-2018 |
brooks |
MFC r332088:
Add 32-bit compat for ioctls that take struct ifgroupreq.
Use an accessor to access ifgr_group and ifgr_groups.
Use an macro CASE_IOC_IFGROUPREQ(cmd) in place of case statements such as "case SIOCAIFGROUP:". This avoids poluting the switch statements with large numbers of #ifdefs.
Reviewed by: kib Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14960
|
#
332329 |
|
09-Apr-2018 |
brooks |
MFC r332151:
ifconf(): correct handling of sockaddrs smaller than struct sockaddr.
Portable programs that use SIOCGIFCONF (e.g. traceroute) assume that each pseudo ifreq is of length MAX(sizeof(struct ifreq), sizeof(ifr_name) + ifr_addr.sa_len). For short sockaddrs we copied too much from the source sockaddr resulting in a heap leak.
I believe only one such sockaddr exists (struct sockaddr_sco which is 8 bytes) and it is unclear if such sockaddrs end up on interfaces in practice. If it did, the result would be an 8 byte heap leak on current architectures.
admbugs: 869 Reviewed by: kib Obtained from: CheriBSD Security: kernel heap leak Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14981
|
#
332294 |
|
08-Apr-2018 |
brooks |
MFC r332087:
ifconf(): Always zero the whole struct ifreq.
The previous split of zeroing ifr_name and ifr_addr seperately is safe on current architectures, but would be unsafe if pointers were larger than 8 bytes. Combining the zeroing adds no real cost (a few instructions) and makes the security property easier to verify.
Reviewed by: kib, emaste Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14912
|
#
332288 |
|
08-Apr-2018 |
brooks |
MFC r331797:
Use an accessor function to access ifr_data.
This fixes 32-bit compat (no ioctl command defintions are required as struct ifreq is the same size).
Reviewed by: kib Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14900
|
#
332281 |
|
08-Apr-2018 |
brooks |
MFC r331641, r331644, r332158
r331641: Fix access to ifru_buffer on freebsd32.
Make all kernel accesses to ifru_buffer go via access functions which take the process ABI into account and use an appropriate union to access members in the correct place in struct ifreq.
Reviewed by: kib Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14846
r331644: Fix a whitespace bug missed in refactoring prior to r331641.
MFC with: r331641
r332158: Remove the thread argument from ifr_buffer_*() accessors.
They are always used in a context where curthread is the correct thread. This makes them more similar to the ifr_data_get_ptr() accessor.
|
#
331722 |
|
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re)
|
#
330897 |
|
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg
|
#
326011 |
|
20-Nov-2017 |
eugen |
MFC r325436: RTF_PINNED for an interface
Allow a process to assign an IP address to local ppp interface even if kernel routing table already has a route to the address in question installed by some routing daemon (PR 223129).
Also, allow loopback route deletion when stopping a VIMAGE jail (PR 222647).
PR: 222647, 223129 Reviewed by: gnn Approved by: mav (mentor) Differential Revision: https://reviews.freebsd.org/D12747
|
#
324472 |
|
10-Oct-2017 |
sephe |
MFC 323170
if: Add ioctls to get RSS key and hash type/function.
It will be needed by hn(4) to configure its RSS key and hash type/function in the transparent VF mode in order to match VF's RSS settings. The description of the transparent VF mode and the RSS hash value issue are here: https://svnweb.freebsd.org/base?view=revision&revision=322299 https://svnweb.freebsd.org/base?view=revision&revision=322485
These are generic enough to promise two independent IOCs instead of abusing SIOCGDRVSPEC.
Setting RSS key and hash type/function is a different story, which probably requires more discussion.
Comment about UDP_{IPV4,IPV6,IPV6_EX} were only in the patch in the review request; these hash types are standardized now.
Reviewed by: gallatin Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D12174
|
#
318397 |
|
17-May-2017 |
rpokala |
MFC r318160, 318176: Persistently store NIC's hardware MAC address, and add a way to retrive it
The MAC address reported by `ifconfig ${nic} ether' does not always match the address in the hardware, as reported by the driver during attach. In particular, NICs which are components of a lagg(4) interface all report the same MAC.
When attaching, the NIC driver passes the MAC address it read from the hardware as an argument to ether_ifattach(). Keep a second copy of it, and create ioctl(SIOCGHWADDR) to return it. Teach `ifconfig' to report it along with the active MAC address.
PR: 194386
|
#
314090 |
|
22-Feb-2017 |
dexuan |
MFC: 312687, 312916
Approved by: sephe (mentor)
r312687 ifnet: introduce event handlers for ifup/ifdown events
Hyper-V's NIC SR-IOV implementation needs a Hyper-V synthetic NIC and a VF NIC to work together, mainly to support seamless live migration.
When the VF device becomes UP (or DOWN), the synthetic NIC driver needs to switch the data path from the synthetic NIC to the VF (or the opposite).
So the synthetic NIC driver needs to know when a VF device is becoming UP or DOWN and hence the patch is made.
Reviewed by: sephe Approved by: sephe (mentor) Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8963
r312916 ifnet: move the new ifnet_event EVENTHANDLER_DECLARE to net/if_var.h
Thank glebius for pointing this out: "The network stuff shall not be added to sys/eventhandler.h"
Reviewed by: David_A_Bright_DELL.com, sephe, glebius Approved by: sephe (mentor) Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D9345
|
#
314089 |
|
22-Feb-2017 |
dexuan |
revert the MFC r314085
Sorry, I generated a wrong commit log for r314085 due to a copy&pasate mistake. Let me revert it and I'll redo the MFC.
|
#
314085 |
|
22-Feb-2017 |
dexuan |
MFC: 312687, 312688
Approved by: sephe (mentor)
r312687 ifnet: introduce event handlers for ifup/ifdown events
Hyper-V's NIC SR-IOV implementation needs a Hyper-V synthetic NIC and a VF NIC to work together, mainly to support seamless live migration.
When the VF device becomes UP (or DOWN), the synthetic NIC driver needs to switch the data path from the synthetic NIC to the VF (or the opposite).
So the synthetic NIC driver needs to know when a VF device is becoming UP or DOWN and hence the patch is made.
Reviewed by: sephe Approved by: sephe (mentor) Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8963
r312688 hyperv/hn: add the support for VF drivers (SR-IOV)
Hyper-V's NIC SR-IOV implementation needs a Hyper-V synthetic NIC and a VF NIC to work together (both NICs have the same MAC address), mainly to support seamless live migration.
When the VF device becomes UP (or DOWN), the synthetic NIC driver needs to switch the data path from the synthetic NIC to the VF (or the opposite).
Note: multicast/broadcast packets are still received through the synthetic NIC and we need to inject the packets through the VF interface (if the VF is UP), even if the synthetic NIC is DOWN (so we need to force the rxfilter to be NDIS_PACKET_TYPE_PROMISCUOUS, when the VF is UP).
Reviewed by: sephe Approved by: sephe (mentor) Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8964
|
#
314002 |
|
21-Feb-2017 |
sephe |
MFC 311475
if: Defer the if_up until the ifnet.if_ioctl is called.
This ensures the interface is initialized by the interface driver before it can be used by the rest of the system.
Reviewed by: jhb, karels, gnn Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8905
|
#
307615 |
|
19-Oct-2016 |
sephe |
MFC 307078
ifnet: Use if_link_state snapshot to invoke ifnet_link_event
So that everyone in this task have consistent view of link state.
Reviewed by: ae Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D8214
|
#
303658 |
|
02-Aug-2016 |
glebius |
Merge r303263: Partially revert r257696/r257713, which have an issue with writing to user controlled address. Restore the old code that emulated OSIOCGIFCONF in if.c.
Approved by: re (kib)
|