Also support getting the MAC and MTU.
This commit was SVN r28344.
Этот коммит содержится в:
родитель
eb012c2aad
Коммит
e88881c25f
@ -84,4 +84,6 @@ static void opal_if_construct(opal_if_t *obj)
|
||||
memset(&obj->if_addr, 0, sizeof(obj->if_addr));
|
||||
obj->if_mask = 0;
|
||||
obj->if_bandwidth = 0;
|
||||
memset(obj->if_mac, 0, sizeof(obj->if_mac));
|
||||
obj->if_mtu = 0;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2010-2013 Cisco Systems, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -91,8 +91,10 @@ typedef struct opal_if_t {
|
||||
int if_flags;
|
||||
int if_speed;
|
||||
struct sockaddr_storage if_addr;
|
||||
uint32_t if_mask;
|
||||
uint32_t if_mask;
|
||||
uint32_t if_bandwidth;
|
||||
uint8_t if_mac[6];
|
||||
int if_mtu;
|
||||
} opal_if_t;
|
||||
OPAL_DECLSPEC OBJ_CLASS_DECLARATION(opal_if_t);
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2010-2013 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2013 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
@ -261,6 +261,24 @@ static int if_posix_open(void)
|
||||
/* generate CIDR and assign to netmask */
|
||||
intf->if_mask = prefix(((struct sockaddr_in*) &ifr->ifr_addr)->sin_addr.s_addr);
|
||||
|
||||
#ifdef SIOCGIFHWADDR
|
||||
/* get the MAC address */
|
||||
if (ioctl(sd, SIOCGIFHWADDR, ifr) < 0) {
|
||||
opal_output(0, "btl_usnic_opal_ifinit: ioctl(SIOCGIFHWADDR) failed with errno=%d", errno);
|
||||
break;
|
||||
}
|
||||
memcpy(intf->if_mac, ifr->ifr_hwaddr.sa_data, 6);
|
||||
#endif
|
||||
|
||||
#ifdef SIOCGIFMTU
|
||||
/* get the MTU */
|
||||
if (ioctl(sd, SIOCGIFMTU, ifr) < 0) {
|
||||
opal_output(0, "btl_usnic_opal_ifinit: ioctl(SIOCGIFMTU) failed with errno=%d", errno);
|
||||
break;
|
||||
}
|
||||
intf->if_mtu = ifr->ifr_mtu;
|
||||
#endif
|
||||
|
||||
opal_list_append(&opal_if_list, &(intf->super));
|
||||
}
|
||||
free(ifconf.ifc_req);
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user