Lines Matching refs:names

21  * Predictable network interface device names based on:
35 * Type of names:
131 static int dev_pci_onboard(struct udev_device *dev, struct netnames *names) {
139 attr = udev_device_get_sysattr_value(names->pcidev, "acpi_index");
142 attr = udev_device_get_sysattr_value(names->pcidev, "index");
155 s = names->pci_onboard;
156 l = sizeof(names->pci_onboard);
161 names->pci_onboard[0] = '\0';
163 names->pci_onboard_label = udev_device_get_sysattr_value(names->pcidev, "label");
188 static int dev_pci_slot(struct udev_device *dev, struct netnames *names) {
189 struct udev *udev = udev_device_get_udev(names->pcidev);
200 if (sscanf(udev_device_get_sysname(names->pcidev), "%x:%x:%x.%u", &domain, &bus, &slot, &func) != 4)
209 s = names->pci_path;
210 l = sizeof(names->pci_path);
214 if (func > 0 || is_pci_multifunction(names->pcidev))
219 names->pci_path[0] = '\0';
249 if (strneq(address, udev_device_get_sysname(names->pcidev), strlen(address)))
259 s = names->pci_slot;
260 l = sizeof(names->pci_slot);
264 if (func > 0 || is_pci_multifunction(names->pcidev))
269 names->pci_slot[0] = '\0';
276 static int names_pci(struct udev_device *dev, struct netnames *names) {
284 names->type = NET_PCI;
285 names->pcidev = parent;
287 names->pcidev = udev_device_get_parent_with_subsystem_devtype(dev, "pci", NULL);
288 if (!names->pcidev)
291 dev_pci_onboard(dev, names);
292 dev_pci_slot(dev, names);
296 static int names_usb(struct udev_device *dev, struct netnames *names) {
332 s = names->usb_ports;
333 l = strpcpyl(&s, sizeof(names->usb_ports), "u", ports, NULL);
337 l = strpcpyl(&s, sizeof(names->usb_ports), "c", config, NULL);
341 l = strpcpyl(&s, sizeof(names->usb_ports), "i", interf, NULL);
345 names->type = NET_USB;
349 static int names_bcma(struct udev_device *dev, struct netnames *names) {
362 snprintf(names->bcma_core, sizeof(names->bcma_core), "b%u", core);
364 names->type = NET_BCMA;
368 static int names_ccw(struct udev_device *dev, struct netnames *names) {
400 rc = snprintf(names->ccw_group, sizeof(names->ccw_group), "ccw%s", bus_id);
401 if (rc >= 0 && rc < (int)sizeof(names->ccw_group))
402 names->type = NET_CCWGROUP;
406 static int names_mac(struct udev_device *dev, struct netnames *names) {
429 names->mac[0] = a1;
430 names->mac[1] = a2;
431 names->mac[2] = a3;
432 names->mac[3] = a4;
433 names->mac[4] = a5;
434 names->mac[5] = a6;
435 names->mac_valid = true;
440 static int ieee_oui(struct udev_device *dev, struct netnames *names, bool test) {
443 if (!names->mac_valid)
446 if (memcmp(names->mac, "\0\0\0", 3) == 0)
449 names->mac[0], names->mac[1], names->mac[2],
450 names->mac[3], names->mac[4], names->mac[5]);
461 struct netnames names = {};
498 err = names_mac(dev, &names);
499 if (err >= 0 && names.mac_valid) {
503 names.mac[0], names.mac[1], names.mac[2],
504 names.mac[3], names.mac[4], names.mac[5]);
507 ieee_oui(dev, &names, test);
510 /* get path names for Linux on System z network devices */
511 err = names_ccw(dev, &names);
512 if (err >= 0 && names.type == NET_CCWGROUP) {
515 if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_group) < (int)sizeof(str))
520 /* get PCI based path names, we compose only PCI based paths */
521 err = names_pci(dev, &names);
526 if (names.type == NET_PCI) {
529 if (names.pci_onboard[0])
530 if (snprintf(str, sizeof(str), "%s%s", prefix, names.pci_onboard) < (int)sizeof(str))
533 if (names.pci_onboard_label)
534 if (snprintf(str, sizeof(str), "%s%s", prefix, names.pci_onboard_label) < (int)sizeof(str))
537 if (names.pci_path[0])
538 if (snprintf(str, sizeof(str), "%s%s", prefix, names.pci_path) < (int)sizeof(str))
541 if (names.pci_slot[0])
542 if (snprintf(str, sizeof(str), "%s%s", prefix, names.pci_slot) < (int)sizeof(str))
548 err = names_usb(dev, &names);
549 if (err >= 0 && names.type == NET_USB) {
552 if (names.pci_path[0])
553 if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.usb_ports) < (int)sizeof(str))
556 if (names.pci_slot[0])
557 if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.usb_ports) < (int)sizeof(str))
563 err = names_bcma(dev, &names);
564 if (err >= 0 && names.type == NET_BCMA) {
567 if (names.pci_path[0])
568 if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.bcma_core) < (int)sizeof(str))
571 if (names.pci_slot[0])
572 if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.bcma_core) < (int)sizeof(str))