libvirt/src/util
Roman Bogorodskiy 3b90d0dc1a util: improve virNetDevTapGetRealDeviceName
virNetDevTapGetRealDeviceName() is used on FreeBSD because interface
names (such as one sees in output of tools like ifconfig(8)) might not
match their /dev entity names, and for bhyve we need the latter.

Current implementation is not very efficient because in order to find
/dev name, it goes through all /dev/tap* entries and tries to issue
TAPGIFNAME ioctl on it. Not only this is slow, but also there's a bug in
this implementation when more than one NIC is passed to a VM: once we
find the tap interface we're looking for, we set its state to UP because
opening it for issuing ioctl sets it DOWN, even if it was UP before.
When we have more than 1 NIC for a VM, we have only last one UP because
others remain DOWN after unsuccessful attempts to match interface name.

New implementation just uses sysctl(3), so it should be faster and
won't make interfaces go down to get name.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2018-04-24 21:08:19 +04:00
..
iohelper.c iohelper: use saferead if later write with O_DIRECT 2017-10-24 10:53:18 +02:00
Makefile.inc.am util: Introduce virDevMapperGetTargets 2018-04-05 09:58:44 +02:00
viralloc.c Use explicit boolean comparison in OOM check 2017-02-23 10:11:16 +00:00
viralloc.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virarch.c
virarch.h
virarptable.c virarptable: fix some leaks and format issue 2018-03-17 13:19:07 +01:00
virarptable.h virarptable: Include rtnetlink.h only on Linux 2018-03-15 14:59:12 +01:00
viratomic.c
viratomic.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
viraudit.c audit: Log only an info message if audit_level < 2 and audit is not supported 2017-12-13 13:42:16 +01:00
viraudit.h audit: Log only an info message if audit_level < 2 and audit is not supported 2017-12-13 13:42:16 +01:00
virauth.c
virauth.h
virauthconfig.c util: Fix broken syntax-check 2016-06-16 06:17:58 -04:00
virauthconfig.h
virbitmap.c util: bitmap: Note that shrinking the bitmap requires clearing of unused bits 2018-02-05 16:08:57 +01:00
virbitmap.h util: bitmap: Use VIR_SHRINK_N in virBitmapShrink 2018-02-05 16:08:57 +01:00
virbuffer.c util: buffer: Tolerate NULL 'buf' in virBufferStrcat 2018-03-23 14:52:07 +01:00
virbuffer.h hyperv: Escape WQL queries 2017-10-16 10:29:32 -04:00
vircgroup.c virCgroupValidateMachineGroup: Don't free @machinename 2017-08-01 11:37:51 +02:00
vircgroup.h Move machineName generation from virsystemd into domain_conf 2017-07-25 17:02:27 +02:00
vircgrouppriv.h
virclosecallbacks.c conf: Rework/rename virDomainObjListFindByUUIDRef 2018-04-23 06:41:45 -04:00
virclosecallbacks.h util: Alter virCloseCallback typedef to return void 2018-04-09 18:26:03 -04:00
vircommand.c virCommandFDIsSet: Update documentation 2018-03-22 07:44:14 +01:00
vircommand.h virCommandPassFD: Give name to flags 2018-03-22 07:44:14 +01:00
vircommandpriv.h
virconf.c util: handle missing switch enum cases 2018-02-21 16:53:44 +00:00
virconf.h maint: Replace tabs with spaces in all source files in repo 2017-10-18 13:25:10 +02:00
vircrypto.c Fix padding of encrypted data 2017-05-02 17:27:13 +01:00
vircrypto.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virdbus.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virdbus.h
virdbuspriv.h
virdevmapper.c util: Introduce virDevMapperGetTargets 2018-04-05 09:58:44 +02:00
virdevmapper.h util: Introduce virDevMapperGetTargets 2018-04-05 09:58:44 +02:00
virdnsmasq.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virdnsmasq.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virebtables.c
virebtables.h
virendian.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virerror.c qemu: Introduce VIR_ERR_DEVICE_MISSING 2018-02-01 07:17:01 -05:00
virerror.h util: handle missing switch enum cases 2018-02-21 16:53:44 +00:00
virevent.c util: Missing 'removeTimeoutImpl' check variable inside virEventRegisterImpl() function. 2017-10-20 15:15:35 +02:00
virevent.h
vireventpoll.c util: remove redundant comments 2016-06-16 13:09:19 -04:00
vireventpoll.h THREADS.txt: fix typos 2017-01-25 09:18:49 +01:00
virfcp.c util: fix virfcp build on non-Linux 2017-05-26 20:00:51 +04:00
virfcp.h util: helper functions for fibre channel devices 2017-05-26 10:44:05 -04:00
virfdstream.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virfdstream.h fdstream: Implement sparse stream 2017-05-18 07:42:13 +02:00
virfile.c driver: fix handling of error return from finding resource 2018-04-24 17:00:49 +01:00
virfile.h util: add virFileReadHeaderQuiet wrapper around virFileReadHeaderFD 2018-01-04 16:52:03 +01:00
virfilecache.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virfilecache.h util: introduce virFileCache 2017-07-26 15:31:25 +02:00
virfirewall.c util: handle missing switch enum cases 2018-02-21 16:53:44 +00:00
virfirewall.h util: Fix syntax-check 2017-01-04 12:47:01 +01:00
virfirewallpriv.h
virfirmware.c virstring: Unify string list function names 2016-11-25 13:54:05 +01:00
virfirmware.h driver config: Introduce virFirmware object 2016-06-13 14:13:16 -06:00
virgettext.c po: provide custom make rules for po file management 2018-04-19 10:35:58 +01:00
virgettext.h
virgic.c
virgic.h gic: Remove VIR_GIC_VERSION_DEFAULT 2017-05-16 16:48:30 +02:00
virhash.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virhash.h util: hash: Include stdbool.h in the header file 2017-08-03 09:49:15 +02:00
virhashcode.c Use ATTRIBUTE_FALLTHROUGH 2017-06-12 19:11:30 -04:00
virhashcode.h util: hash: Make virHashCodeGen mockable 2017-08-03 09:49:15 +02:00
virhook.c libxl: add hooks support 2016-08-02 14:20:31 +02:00
virhook.h Replace QEmu with QEMU 2018-04-01 17:42:29 +02:00
virhostcpu.c util: virhostcpu: parse frequency information on S390 2018-01-10 17:24:11 -05:00
virhostcpu.h util: introduce virHostCPUGetMicrocodeVersion 2018-01-04 16:52:03 +01:00
virhostcpupriv.h util: Adapt virhostcpu to the new virsysfs 2017-03-27 13:13:29 +02:00
virhostdev.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virhostdev.h util: Remove NONNULL from virHostdevReAttachMediatedDevices 2017-03-27 12:41:24 -04:00
virhostmem.c virNumaGetHugePageInfo: Return page_avail and page_free as ULL 2018-04-24 11:02:28 +02:00
virhostmem.h nodeinfo: move host memory APIs out into virhostmem file 2016-06-09 18:43:18 +01:00
viridentity.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
viridentity.h
virinitctl.c
virinitctl.h
viriptables.c
viriptables.h
viriscsi.c virISCSIGetSession: Don't leak memory 2017-04-05 15:18:30 +02:00
viriscsi.h util: Introduce virISCSINodeNew 2016-07-28 08:27:13 -04:00
virjson.c util: Introduce virJSONValueObjectStealObject 2018-04-17 10:46:23 +02:00
virjson.h util: Introduce virJSONValueObjectStealObject 2018-04-17 10:46:23 +02:00
virkeycode.c keycodemapdb: Update submodule 2018-03-12 16:30:49 +01:00
virkeycode.h
virkeyfile.c
virkeyfile.h maint: fix up copyright notice inconsistencies 2012-09-20 16:30:55 -06:00
virkmod.c
virkmod.h
virlease.c Don't drop expired lease while reading custom leases file 2016-10-05 08:33:59 +02:00
virlease.h
virlockspace.c Print hex values with '0x' prefix and octal with '0' in debug messages 2017-09-25 13:34:53 +01:00
virlockspace.h
virlog.c util: virlog: Introduce wildcard to log filters 2018-04-09 08:42:28 +02:00
virlog.h util: virlog: Introduce wildcard to log filters 2018-04-09 08:42:28 +02:00
virmacaddr.c conf: move 'generated' member from virMacAddr to virDomainNetDef 2018-02-19 13:15:00 -05:00
virmacaddr.h conf: move 'generated' member from virMacAddr to virDomainNetDef 2018-02-19 13:15:00 -05:00
virmacmap.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virmacmap.h network: Move and rename networkMacMgrFileName 2017-08-16 14:17:57 -04:00
virmdev.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virmdev.h util: mdev: Introduce virMediatedDeviceTypeReadAttrs getter 2018-01-29 15:34:30 +01:00
virnetdev.c nodedev: Fix failing to parse PCI address for non-PCI network devices 2018-01-19 09:53:01 -07:00
virnetdev.h nodedev: add switchdev to NIC capabilities 2017-09-18 08:32:24 -04:00
virnetdevbandwidth.c QoS: Set classes and filters in proper direction 2017-10-05 09:16:05 +02:00
virnetdevbandwidth.h QoS: Set classes and filters in proper direction 2017-10-05 09:16:05 +02:00
virnetdevbridge.c util: netdevbridge: Refactor error handling in virNetDevBridgeCreate 2017-06-28 15:27:17 +02:00
virnetdevbridge.h
virnetdevip.c IPv6 route check: list devices only once 2017-04-26 18:59:24 +02:00
virnetdevip.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virnetdevmacvlan.c util: restructure virNetDevReadNetConfig() to eliminate false error logs 2017-08-11 19:09:49 -04:00
virnetdevmacvlan.h util: make macvtap/macvlan generated name #defines available to other files 2017-04-28 09:43:52 -04:00
virnetdevmidonet.c
virnetdevmidonet.h
virnetdevopenvswitch.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virnetdevopenvswitch.h Handle hotplug change on VLAN configuration using OVS 2017-07-20 15:15:03 +02:00
virnetdevtap.c util: improve virNetDevTapGetRealDeviceName 2018-04-24 21:08:19 +04:00
virnetdevtap.h virNetDevTapInterfaceStats: Allow caller to not swap the statistics 2017-10-05 09:16:05 +02:00
virnetdevveth.c
virnetdevveth.h
virnetdevvlan.c
virnetdevvlan.h
virnetdevvportprofile.c util: handle missing switch enum cases 2018-02-21 16:53:44 +00:00
virnetdevvportprofile.h util: handle missing switch enum cases 2018-02-21 16:53:44 +00:00
virnetlink.c virNetlinkDumpCommand: Don't leak response buffer 2018-03-19 10:47:08 +01:00
virnetlink.h util: introduce virNetlinkGetNeighbor to get neighbor table entry 2018-03-15 11:22:42 +01:00
virnodesuspend.c util: Fix naming in util/virnodesuspend 2017-03-27 13:13:29 +02:00
virnodesuspend.h util: Fix naming in util/virnodesuspend 2017-03-27 13:13:29 +02:00
virnuma.c virNumaGetHugePageInfo: Return page_avail and page_free as ULL 2018-04-24 11:02:28 +02:00
virnuma.h virNumaGetHugePageInfo: Return page_avail and page_free as ULL 2018-04-24 11:02:28 +02:00
virobject.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virobject.h virobject: Check if @parent is the first member in class 2018-04-18 10:04:55 +02:00
virpci.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virpci.h util: pci: Introduce virPCIGetMdevTypes helper 2018-01-29 15:34:30 +01:00
virperf.c virPerfEventIsEnabled: Accept NULL @perf 2017-05-04 16:42:25 +02:00
virperf.h perf: add emulation_faults software perf event support 2017-03-07 13:51:05 -05:00
virpidfile.c
virpidfile.h
virpolkit.c Merge WITH_POLKIT1 and WITH_POLKIT 2018-03-14 12:46:26 +01:00
virpolkit.h
virportallocator.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virportallocator.h port allocator: make port range constant object 2018-02-22 13:52:45 +01:00
virprobe.h util: probe: Add quiet versions of the "PROBE" macro 2018-01-03 15:21:06 +01:00
virprocess.c process: Translate "unlimited" correctly 2017-03-28 10:54:49 +02:00
virprocess.h lxc: Move lxcContainerAvailable to virprocess 2017-01-11 18:02:35 +01:00
virqemu.c util: qemu: Don't access virJSONValue directly in virQEMUBuildCommandLineJSONRecurse 2018-04-03 13:34:33 +02:00
virqemu.h Revert "util: virqemu: introduce virQEMUBuildBufferEscape" 2017-06-12 12:45:42 +02:00
virrandom.c util: Perform proper virRandomBytes return value checking 2016-06-07 10:18:36 -04:00
virrandom.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virresctrl.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virresctrl.h util: Extract path formatting into virResctrlAllocDeterminePath 2018-01-31 14:51:34 +01:00
virresctrlpriv.h resctrl: Add functions to work with resctrl allocations 2018-01-25 17:16:08 +01:00
virrotatingfile.c Print hex values with '0x' prefix and octal with '0' in debug messages 2017-09-25 13:34:53 +01:00
virrotatingfile.h
virscsi.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virscsi.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virscsihost.c util: Move scsi_host specific functions from virutil 2017-02-19 06:45:09 -05:00
virscsihost.h util: Move scsi_host specific functions from virutil 2017-02-19 06:45:09 -05:00
virscsivhost.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virscsivhost.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virseclabel.c
virseclabel.h
virsecret.c util: Move virSecretUsageType to virsecret.h 2017-09-21 15:46:48 -04:00
virsecret.h util: Move virSecretUsageType to virsecret.h 2017-09-21 15:46:48 -04:00
virsexpr.c
virsexpr.h
virsocketaddr.c util: fix spelling in virSocketAddrParseAny docs 2018-04-05 14:57:16 -06:00
virsocketaddr.h util: introduce virSocketAddrParseAny 2018-04-05 14:50:15 -06:00
virstorageencryption.c util: storage: Sanitize parsing of disk encryption XMLs 2018-03-08 14:29:50 +01:00
virstorageencryption.h util: storage: Sanitize parsing of disk encryption XMLs 2018-03-08 14:29:50 +01:00
virstoragefile.c conf: Move 'driverName' back to disk definition structure 2018-04-18 16:19:12 +02:00
virstoragefile.h conf: Move 'driverName' back to disk definition structure 2018-04-18 16:19:12 +02:00
virstoragefilebackend.c storage: move storage file backend framework into util directory 2018-02-09 11:05:10 +00:00
virstoragefilebackend.h storage: move storage file backend framework into util directory 2018-02-09 11:05:10 +00:00
virstring.c util: Introduce virStringListMerge 2018-01-11 18:53:04 +01:00
virstring.h util: Introduce virStringListMerge 2018-01-11 18:53:04 +01:00
virsysinfo.c virsysinfo: Use more virSkipSpacesBackwards() 2018-03-14 17:43:40 +01:00
virsysinfo.h conf: Add support for setting Chassis SMBIOS data fields 2018-02-17 07:36:46 -05:00
virsysinfopriv.h tests: sysinfo: Export virSysinfoSetup via the private header 2017-03-07 10:44:26 +01:00
virsystemd.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virsystemd.h Move machineName generation from virsystemd into domain_conf 2017-07-25 17:02:27 +02:00
virsystemdpriv.h Cache the presence of machine1 service 2017-03-06 15:44:33 +01:00
virthread.c util: gettid() is Linux-specific 2017-12-05 11:28:19 +01:00
virthread.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virthreadjob.c
virthreadjob.h
virthreadpool.c
virthreadpool.h
virtime.c virTimeBackOffWait: Avoid long periods of sleep 2017-03-16 09:21:39 +01:00
virtime.h
virtpm.c tpm: Use /dev/null for cancel path if none was found 2017-09-07 14:00:46 +02:00
virtpm.h Revert "Prevent more compiler optimization of mockable functions" 2017-07-13 13:07:06 +01:00
virtypedparam.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virtypedparam.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
viruri.c virstring: Unify string list function names 2016-11-25 13:54:05 +01:00
viruri.h util: uri: Convert port number to unsigned integer 2017-07-24 10:55:43 +02:00
virusb.c virobject: Introduce VIR_CLASS_NEW() macro 2018-04-18 10:04:55 +02:00
virusb.h virusb: Introduce virUSBDeviceGetPath 2016-12-15 09:25:16 +01:00
virutil.c util: use union for sockaddr structs to avoid aliasing 2018-01-31 17:33:08 +00:00
virutil.h util: add virGetUNIXSocketPath helper 2018-01-31 15:12:53 +00:00
viruuid.c
viruuid.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virvhba.c util: virvhba: fix typo that breaks build on non-linux systems 2017-02-19 15:47:27 +01:00
virvhba.h util: Create a new virvhba module and move/rename API's 2017-02-19 06:45:09 -05:00
virxdrdefs.h
virxml.c Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00
virxml.h Remove backslash alignment attempts 2017-11-03 13:24:12 +01:00