{"action":"created","issue":{"url":"https://api.github.com/repos/systemd/systemd/issues/1390","labels_url":"https://api.github.com/repos/systemd/systemd/issues/1390/labels{/name}","comments_url":"https://api.github.com/repos/systemd/systemd/issues/1390/comments","events_url":"https://api.github.com/repos/systemd/systemd/issues/1390/events","html_url":"https://github.com/systemd/systemd/issues/1390","id":108408560,"number":1390,"title":"systemd predictable device naming with Intel X552/X557-AT","user":{"login":"major","id":89910,"avatar_url":"https://avatars.githubusercontent.com/u/89910?v=3","gravatar_id":"","url":"https://api.github.com/users/major","html_url":"https://github.com/major","followers_url":"https://api.github.com/users/major/followers","following_url":"https://api.github.com/users/major/following{/other_user}","gists_url":"https://api.github.com/users/major/gists{/gist_id}","starred_url":"https://api.github.com/users/major/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/major/subscriptions","organizations_url":"https://api.github.com/users/major/orgs","repos_url":"https://api.github.com/users/major/repos","events_url":"https://api.github.com/users/major/events{/privacy}","received_events_url":"https://api.github.com/users/major/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/systemd/systemd/labels/needs-reporter-feedback","name":"needs-reporter-feedback","color":"eb6420"},{"url":"https://api.github.com/repos/systemd/systemd/labels/udev","name":"udev","color":"f7c6c7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":18,"created_at":"2015-09-25T21:09:58Z","updated_at":"2015-09-28T20:04:27Z","closed_at":null,"body":"I've just purchased a [Supermicro 5028D-TN4T](http://www.supermicro.com/products/system/midtower/5028/sys-5028d-tn4t.cfm) and it has two onboard network devices:\r\n\r\n* Intel I350 (two ports)\r\n* Intel X552/X557-AT 10GBASE-T (two ports)\r\n\r\nThe I350 shows up as `eno1` and `eno2`, which is totally reasonable since they're onboard NICs.  However, the dual-port X552/X557 card is onboard as well and shows up as `eth0` and `eth1`.\r\n\r\nlcpci output:\r\n```\r\n# lspci | grep Eth\r\n03:00.0 Ethernet controller: Intel Corporation Ethernet Connection X552/X557-AT 10GBASE-T\r\n03:00.1 Ethernet controller: Intel Corporation Ethernet Connection X552/X557-AT 10GBASE-T\r\n05:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)\r\n05:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)\r\n```\r\n\r\n`udevadm info -e` output\r\n```\r\nP: /devices/pci0000:00/0000:00:02.2/0000:03:00.0\r\nE: DEVPATH=/devices/pci0000:00/0000:00:02.2/0000:03:00.0\r\nE: DRIVER=ixgbe\r\nE: ID_MODEL_FROM_DATABASE=Ethernet Connection X552/X557-AT 10GBASE-T\r\nE: ID_PCI_CLASS_FROM_DATABASE=Network controller\r\nE: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller\r\nE: ID_VENDOR_FROM_DATABASE=Intel Corporation\r\nE: MODALIAS=pci:v00008086d000015ADsv000015D9sd000015ADbc02sc00i00\r\nE: PCI_CLASS=20000\r\nE: PCI_ID=8086:15AD\r\nE: PCI_SLOT_NAME=0000:03:00.0\r\nE: PCI_SUBSYS_ID=15D9:15AD\r\nE: SUBSYSTEM=pci\r\nE: USEC_INITIALIZED=3732889\r\n\r\nP: /devices/pci0000:00/0000:00:02.2/0000:03:00.0/net/eth0\r\nE: DEVPATH=/devices/pci0000:00/0000:00:02.2/0000:03:00.0/net/eth0\r\nE: ID_BUS=pci\r\nE: ID_MODEL_FROM_DATABASE=Ethernet Connection X552/X557-AT 10GBASE-T\r\nE: ID_MODEL_ID=0x15ad\r\nE: ID_NET_DRIVER=ixgbe\r\nE: ID_NET_LINK_FILE=/usr/lib/systemd/network/99-default.link\r\nE: ID_NET_NAME=eno1\r\nE: ID_NET_NAME_MAC=enx0cc47a7591c8\r\nE: ID_NET_NAME_ONBOARD=eno1\r\nE: ID_NET_NAME_PATH=enp3s0f0\r\nE: ID_OUI_FROM_DATABASE=Super Micro Computer, Inc.\r\nE: ID_PATH=pci-0000:03:00.0\r\nE: ID_PATH_TAG=pci-0000_03_00_0\r\nE: ID_PCI_CLASS_FROM_DATABASE=Network controller\r\nE: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller\r\nE: ID_VENDOR_FROM_DATABASE=Intel Corporation\r\nE: ID_VENDOR_ID=0x8086\r\nE: IFINDEX=4\r\nE: INTERFACE=eth0\r\nE: SUBSYSTEM=net\r\nE: SYSTEMD_ALIAS=/sys/subsystem/net/devices/eno1\r\nE: TAGS=:systemd:\r\nE: USEC_INITIALIZED=7449982\r\n\r\nP: /devices/pci0000:00/0000:00:02.2/0000:03:00.1\r\nE: DEVPATH=/devices/pci0000:00/0000:00:02.2/0000:03:00.1\r\nE: DRIVER=ixgbe\r\nE: ID_MODEL_FROM_DATABASE=Ethernet Connection X552/X557-AT 10GBASE-T\r\nE: ID_PCI_CLASS_FROM_DATABASE=Network controller\r\nE: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller\r\nE: ID_VENDOR_FROM_DATABASE=Intel Corporation\r\nE: MODALIAS=pci:v00008086d000015ADsv000015D9sd000015ADbc02sc00i00\r\nE: PCI_CLASS=20000\r\nE: PCI_ID=8086:15AD\r\nE: PCI_SLOT_NAME=0000:03:00.1\r\nE: PCI_SUBSYS_ID=15D9:15AD\r\nE: SUBSYSTEM=pci\r\nE: USEC_INITIALIZED=3732891\r\n\r\nP: /devices/pci0000:00/0000:00:02.2/0000:03:00.1/net/eth1\r\nE: DEVPATH=/devices/pci0000:00/0000:00:02.2/0000:03:00.1/net/eth1\r\nE: ID_BUS=pci\r\nE: ID_MODEL_FROM_DATABASE=Ethernet Connection X552/X557-AT 10GBASE-T\r\nE: ID_MODEL_ID=0x15ad\r\nE: ID_NET_DRIVER=ixgbe\r\nE: ID_NET_LINK_FILE=/usr/lib/systemd/network/99-default.link\r\nE: ID_NET_NAME=eno2\r\nE: ID_NET_NAME_MAC=enx0cc47a7591c9\r\nE: ID_NET_NAME_ONBOARD=eno2\r\nE: ID_NET_NAME_PATH=enp3s0f1\r\nE: ID_OUI_FROM_DATABASE=Super Micro Computer, Inc.\r\nE: ID_PATH=pci-0000:03:00.1\r\nE: ID_PATH_TAG=pci-0000_03_00_1\r\nE: ID_PCI_CLASS_FROM_DATABASE=Network controller\r\nE: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller\r\nE: ID_VENDOR_FROM_DATABASE=Intel Corporation\r\nE: ID_VENDOR_ID=0x8086\r\nE: IFINDEX=5\r\nE: INTERFACE=eth1\r\nE: SUBSYSTEM=net\r\nE: SYSTEMD_ALIAS=/sys/subsystem/net/devices/eno2\r\nE: TAGS=:systemd:\r\nE: USEC_INITIALIZED=7952695\r\n```\r\n\r\nIf I'm reading the code in systemd correctly, `ID_NET_NAME_ONBOARD` will be chosen for the name, but that would clash with the I350 card that already has `eno1` and `eno2`.  I assume that's why the X552/X557 card shows up as `eth0` and `eth1`.  However, should the X552/X557 show up as `enp3s0f0` and `enp3s0f1` as a fallback?\r\n\r\nThanks!"},"comment":{"url":"https://api.github.com/repos/systemd/systemd/issues/comments/143859696","html_url":"https://github.com/systemd/systemd/issues/1390#issuecomment-143859696","issue_url":"https://api.github.com/repos/systemd/systemd/issues/1390","id":143859696,"user":{"login":"major","id":89910,"avatar_url":"https://avatars.githubusercontent.com/u/89910?v=3","gravatar_id":"","url":"https://api.github.com/users/major","html_url":"https://github.com/major","followers_url":"https://api.github.com/users/major/followers","following_url":"https://api.github.com/users/major/following{/other_user}","gists_url":"https://api.github.com/users/major/gists{/gist_id}","starred_url":"https://api.github.com/users/major/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/major/subscriptions","organizations_url":"https://api.github.com/users/major/orgs","repos_url":"https://api.github.com/users/major/repos","events_url":"https://api.github.com/users/major/events{/privacy}","received_events_url":"https://api.github.com/users/major/received_events","type":"User","site_admin":false},"created_at":"2015-09-28T20:04:27Z","updated_at":"2015-09-28T20:04:27Z","body":"Is there a way for me to set custom names for the interfaces or provide hints to udev by using SYSTEMD_ALIAS? That might be a workaround for me in the meantime."}}