Signed-off-by: Nicolas Morey-Chaisemartin <[email protected]>
---
 platform/linux-generic/include/odp_packet_io_internal.h | 1 +
 platform/linux-generic/odp_packet_io.c                  | 8 +++-----
 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 e5fc265..496a273 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 fc57752..b7ebeb8 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 3cbc4b1..b0403e8 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;
+}
-- 
2.4.5.3.g4915f6f


_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to