diff options
author | Nicolas Morey-Chaisemartin <nmorey@kalray.eu> | 2015-07-15 18:18:17 +0200 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2015-07-16 13:47:52 +0300 |
commit | e7d5bbb5cdbc461e960155932ba452755bd099d0 (patch) | |
tree | 67a38d4384594464f2a0ddbab3da84ffec164566 | |
parent | 8a2e099ba657db3f6ba84c1695be9f94a4649004 (diff) |
linux-generic: packet_loop: add method to get mac address
Signed-off-by: Nicolas Morey-Chaisemartin <nmorey@kalray.eu>
Reviewed-by: Stuart Haslam <stuart.haslam@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
-rw-r--r-- | platform/linux-generic/include/odp_packet_io_internal.h | 1 | ||||
-rw-r--r-- | platform/linux-generic/odp_packet_io.c | 8 | ||||
-rw-r--r-- | platform/linux-generic/pktio/loop.c | 8 |
3 files changed, 12 insertions, 5 deletions
diff --git a/platform/linux-generic/include/odp_packet_io_internal.h b/platform/linux-generic/include/odp_packet_io_internal.h index e5fc265de..496a27396 100644 --- a/platform/linux-generic/include/odp_packet_io_internal.h +++ b/platform/linux-generic/include/odp_packet_io_internal.h @@ -94,6 +94,7 @@ int loopback_recv_pkt(pktio_entry_t *pktio_entry, odp_packet_t pkts[], int loopback_send_pkt(pktio_entry_t *pktio_entry, odp_packet_t pkt_tbl[], unsigned len); int loopback_mtu_get(pktio_entry_t *pktio_entry); +int loopback_mac_addr_get(pktio_entry_t *pktio_entry, void *mac_addr); #ifdef __cplusplus } diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c index fc5775222..b7ebeb869 100644 --- a/platform/linux-generic/odp_packet_io.c +++ b/platform/linux-generic/odp_packet_io.c @@ -25,9 +25,6 @@ #include <ifaddrs.h> #include <errno.h> -/* MAC address for the "loop" interface */ -static const char pktio_loop_mac[] = {0x02, 0xe9, 0x34, 0x80, 0x73, 0x01}; - static pktio_table_t *pktio_tbl; /* pktio pointer entries ( for inlines) */ @@ -828,6 +825,7 @@ int odp_pktio_promisc_mode(odp_pktio_t id) int odp_pktio_mac_addr(odp_pktio_t id, void *mac_addr, int addr_size) { pktio_entry_t *entry; + int ret = ETH_ALEN; if (addr_size < ETH_ALEN) { /* Output buffer too small */ @@ -859,7 +857,7 @@ int odp_pktio_mac_addr(odp_pktio_t id, void *mac_addr, int addr_size) ETH_ALEN); break; case ODP_PKTIO_TYPE_LOOPBACK: - memcpy(mac_addr, pktio_loop_mac, ETH_ALEN); + ret = loopback_mac_addr_get(entry, mac_addr); break; default: ODP_ABORT("Wrong socket type %d\n", entry->s.type); @@ -867,5 +865,5 @@ int odp_pktio_mac_addr(odp_pktio_t id, void *mac_addr, int addr_size) unlock_entry(entry); - return ETH_ALEN; + return ret; } diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c index 3cbc4b1b4..b0403e8f8 100644 --- a/platform/linux-generic/pktio/loop.c +++ b/platform/linux-generic/pktio/loop.c @@ -21,6 +21,8 @@ /* MTU to be reported for the "loop" interface */ #define PKTIO_LOOP_MTU 1500 +/* MAC address for the "loop" interface */ +static const char pktio_loop_mac[] = {0x02, 0xe9, 0x34, 0x80, 0x73, 0x01}; int loopback_init(pktio_entry_t *pktio_entry, odp_pktio_t id) { @@ -74,3 +76,9 @@ int loopback_mtu_get(pktio_entry_t *pktio_entry ODP_UNUSED) { return PKTIO_LOOP_MTU; } + +int loopback_mac_addr_get(pktio_entry_t *pktio_entry ODP_UNUSED, void *mac_addr) +{ + memcpy(mac_addr, pktio_loop_mac, ETH_ALEN); + return ETH_ALEN; +} |