get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/96619/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 96619,
    "url": "http://patchwork.dpdk.org/api/patches/96619/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20210803124431.87669-3-aman.deep.singh@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20210803124431.87669-3-aman.deep.singh@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210803124431.87669-3-aman.deep.singh@intel.com",
    "date": "2021-08-03T12:44:31",
    "name": "[v2,2/2] net: macro to extract MAC address bytes",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "062b2e5400ebf7fb9309b52053f782105744e24e",
    "submitter": {
        "id": 1672,
        "url": "http://patchwork.dpdk.org/api/people/1672/?format=api",
        "name": "Singh, Aman Deep",
        "email": "aman.deep.singh@intel.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patchwork.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20210803124431.87669-3-aman.deep.singh@intel.com/mbox/",
    "series": [
        {
            "id": 18166,
            "url": "http://patchwork.dpdk.org/api/series/18166/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=18166",
            "date": "2021-08-03T12:44:29",
            "name": "Use macro to print MAC address",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/18166/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/96619/comments/",
    "check": "fail",
    "checks": "http://patchwork.dpdk.org/api/patches/96619/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id D380BA0A0C;\n\tTue,  3 Aug 2021 14:52:12 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A98B8411A7;\n\tTue,  3 Aug 2021 14:52:12 +0200 (CEST)",
            "from mga12.intel.com (mga12.intel.com [192.55.52.136])\n by mails.dpdk.org (Postfix) with ESMTP id 041DC40E3C\n for <dev@dpdk.org>; Tue,  3 Aug 2021 14:52:09 +0200 (CEST)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 03 Aug 2021 05:52:02 -0700",
            "from npg-npf-wlpr-srv02.iind.intel.com ([10.190.213.104])\n by orsmga004.jf.intel.com with ESMTP; 03 Aug 2021 05:51:50 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10064\"; a=\"193272282\"",
            "E=Sophos;i=\"5.84,291,1620716400\"; d=\"scan'208\";a=\"193272282\"",
            "E=Sophos;i=\"5.84,291,1620716400\"; d=\"scan'208\";a=\"568658360\""
        ],
        "X-ExtLoop1": "1",
        "From": "Aman Singh <aman.deep.singh@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "Reshma Pattan <reshma.pattan@intel.com>,\n Xiaoyun Li <xiaoyun.li@intel.com>,\n Jay Jayatheerthan <jay.jayatheerthan@intel.com>,\n Hemant Agrawal <hemant.agrawal@nxp.com>,\n Sachin Saxena <sachin.saxena@oss.nxp.com>, Matan Azrad <matan@nvidia.com>,\n Shahaf Shuler <shahafs@nvidia.com>,\n Viacheslav Ovsiienko <viacheslavo@nvidia.com>,\n Rasesh Mody <rmody@marvell.com>, Shahed Shaikh <shshaikh@marvell.com>,\n Chas Williams <chas3@att.com>, \"Min Hu (Connor)\" <humin29@huawei.com>,\n Haiyue Wang <haiyue.wang@intel.com>, Gaetan Rivet <grive@u256.net>,\n Ziyang Xuan <xuanziyang2@huawei.com>,\n Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>,\n Guoyang Zhou <zhouguoyang@huawei.com>, Beilei Xing <beilei.xing@intel.com>,\n Jingjing Wu <jingjing.wu@intel.com>, Qiming Yang <qiming.yang@intel.com>,\n Qi Zhang <qi.z.zhang@intel.com>,\n Devendra Singh Rawat <dsinghrawat@marvell.com>,\n Jiawen Wu <jiawenwu@trustnetic.com>, Jian Wang <jianwang@trustnetic.com>,\n Nicolas Chautru <nicolas.chautru@intel.com>,\n David Hunt <david.hunt@intel.com>,\n Harry van Haaren <harry.van.haaren@intel.com>,\n Bernard Iremonger <bernard.iremonger@intel.com>,\n Bruce Richardson <bruce.richardson@intel.com>,\n Cristian Dumitrescu <cristian.dumitrescu@intel.com>,\n Tomasz Kantecki <tomasz.kantecki@intel.com>,\n Akhil Goyal <gakhil@marvell.com>,\n Declan Doherty <declan.doherty@intel.com>,\n Sunil Kumar Kori <skori@marvell.com>,\n Pavan Nikhilesh <pbhagavatula@marvell.com>,\n John McNamara <john.mcnamara@intel.com>,\n Byron Marohn <byron.marohn@intel.com>,\n Yipeng Wang <yipeng1.wang@intel.com>,\n Maxime Coquelin <maxime.coquelin@redhat.com>,\n Chenbo Xia <chenbo.xia@intel.com>, Olivier Matz <olivier.matz@6wind.com>",
        "Date": "Tue,  3 Aug 2021 18:14:31 +0530",
        "Message-Id": "<20210803124431.87669-3-aman.deep.singh@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20210803124431.87669-1-aman.deep.singh@intel.com>",
        "References": "<20210803124431.87669-1-aman.deep.singh@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v2 2/2] net: macro to extract MAC address bytes",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Added macros to simplyfy print of MAC address.\nThe other method of first formatting mac address\ninto a string and string printed, is avoided.\n\nSigned-off-by: Aman Singh <aman.deep.singh@intel.com>\n---\nThe change in the document will be done in seperate patch.\nTo ensure document has direct reference of the code.\n\nV2: Fix build issue in examples code\n---\n app/pdump/main.c                              |  5 +---\n app/test-pmd/cmdline.c                        |  4 +---\n app/test-pmd/config.c                         |  4 +---\n app/test-pmd/testpmd.c                        |  7 +-----\n app/test/test_event_eth_rx_adapter.c          |  5 +---\n app/test/test_event_eth_tx_adapter.c          |  5 +---\n drivers/bus/dpaa/base/fman/netcfg_layer.c     |  7 +-----\n drivers/common/mlx5/linux/mlx5_nl.c           |  4 +---\n drivers/net/bnx2x/bnx2x_vfpf.c                |  7 +-----\n drivers/net/bonding/rte_eth_bond_pmd.c        |  8 ++-----\n drivers/net/dpaa/dpaa_ethdev.c                |  8 +------\n drivers/net/e1000/igb_ethdev.c                |  7 +-----\n drivers/net/failsafe/failsafe.c               |  4 +---\n drivers/net/hinic/hinic_pmd_ethdev.c          |  4 +---\n drivers/net/i40e/i40e_ethdev_vf.c             | 15 +++---------\n drivers/net/iavf/iavf_ethdev.c                | 14 ++---------\n drivers/net/iavf/iavf_vchnl.c                 | 11 ++-------\n drivers/net/ice/ice_dcf.c                     |  4 +---\n drivers/net/ixgbe/ixgbe_ethdev.c              | 23 +++----------------\n drivers/net/mlx4/mlx4.c                       |  5 +---\n drivers/net/mlx5/linux/mlx5_os.c              |  5 +---\n drivers/net/mlx5/windows/mlx5_os.c            |  5 +---\n drivers/net/qede/qede_ethdev.c                |  7 +-----\n drivers/net/txgbe/txgbe_ethdev_vf.c           | 23 +++----------------\n examples/bbdev_app/main.c                     |  7 +-----\n examples/bond/main.c                          |  3 +--\n examples/distributor/main.c                   |  5 +---\n examples/ethtool/ethtool-app/ethapp.c         |  8 +------\n .../pipeline_worker_generic.c                 |  5 +---\n .../eventdev_pipeline/pipeline_worker_tx.c    |  5 +---\n examples/flow_classify/flow_classify.c        |  5 +---\n examples/ioat/ioatfwd.c                       |  7 +-----\n examples/ip_pipeline/cli.c                    |  9 ++------\n examples/l2fwd-cat/l2fwd-cat.c                |  5 +---\n examples/l2fwd-crypto/main.c                  |  9 ++------\n examples/l2fwd-event/l2fwd_common.c           |  7 +-----\n examples/l2fwd-jobstats/main.c                |  9 ++------\n examples/l2fwd-keepalive/main.c               |  7 +-----\n examples/l2fwd/main.c                         |  9 ++------\n examples/link_status_interrupt/main.c         |  7 +-----\n examples/packet_ordering/main.c               |  5 +---\n examples/pipeline/cli.c                       |  4 +---\n examples/rxtx_callbacks/main.c                |  4 +---\n examples/server_node_efd/server/main.c        |  4 +---\n examples/skeleton/basicfwd.c                  |  5 +---\n examples/vhost/main.c                         | 15 +++---------\n examples/vm_power_manager/channel_monitor.c   |  4 +---\n .../guest_cli/vm_power_cli_guest.c            |  5 +---\n examples/vm_power_manager/main.c              |  5 +---\n examples/vmdq/main.c                          | 12 ++--------\n examples/vmdq_dcb/main.c                      | 12 ++--------\n lib/net/rte_ether.h                           |  9 ++++++++\n 52 files changed, 77 insertions(+), 305 deletions(-)",
    "diff": "diff --git a/app/pdump/main.c b/app/pdump/main.c\nindex 63bbe65cd8..46f9d25db0 100644\n--- a/app/pdump/main.c\n+++ b/app/pdump/main.c\n@@ -612,10 +612,7 @@ configure_vdev(uint16_t port_id)\n \n \tprintf(\"Port %u MAC: %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\n \t\t\t\" %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\"\\n\",\n-\t\t\tport_id,\n-\t\t\taddr.addr_bytes[0], addr.addr_bytes[1],\n-\t\t\taddr.addr_bytes[2], addr.addr_bytes[3],\n-\t\t\taddr.addr_bytes[4], addr.addr_bytes[5]);\n+\t\t\tport_id, RTE_ETHER_ADDR_BYTES(&addr));\n \n \tret = rte_eth_promiscuous_enable(port_id);\n \tif (ret != 0) {\ndiff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c\nindex d4186eb9b2..a5d6c20be1 100644\n--- a/app/test-pmd/cmdline.c\n+++ b/app/test-pmd/cmdline.c\n@@ -10900,9 +10900,7 @@ static void cmd_mcast_addr_parsed(void *parsed_result,\n \tif (!rte_is_multicast_ether_addr(&res->mc_addr)) {\n \t\tfprintf(stderr,\n \t\t\t\"Invalid multicast addr \" RTE_ETHER_ADDR_PRT_FMT \"\\n\",\n-\t\t\tres->mc_addr.addr_bytes[0], res->mc_addr.addr_bytes[1],\n-\t\t\tres->mc_addr.addr_bytes[2], res->mc_addr.addr_bytes[3],\n-\t\t\tres->mc_addr.addr_bytes[4], res->mc_addr.addr_bytes[5]);\n+\t\t\tRTE_ETHER_ADDR_BYTES(&res->mc_addr));\n \t\treturn;\n \t}\n \tif (strcmp(res->what, \"add\") == 0)\ndiff --git a/app/test-pmd/config.c b/app/test-pmd/config.c\nindex 21d5db5297..f37cb3f83e 100644\n--- a/app/test-pmd/config.c\n+++ b/app/test-pmd/config.c\n@@ -783,9 +783,7 @@ port_summary_display(portid_t port_id)\n \t\treturn;\n \n \tprintf(\"%-4d \" RTE_ETHER_ADDR_PRT_FMT \" %-12s %-14s %-8s %s\\n\",\n-\t\tport_id, mac_addr.addr_bytes[0], mac_addr.addr_bytes[1],\n-\t\tmac_addr.addr_bytes[2], mac_addr.addr_bytes[3],\n-\t\tmac_addr.addr_bytes[4], mac_addr.addr_bytes[5], name,\n+\t\tport_id, RTE_ETHER_ADDR_BYTES(&mac_addr), name,\n \t\tdev_info.driver_name, (link.link_status) ? (\"up\") : (\"down\"),\n \t\trte_eth_link_speed_to_str(link.link_speed));\n }\ndiff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c\nindex d0ede963ea..bc79402dd3 100644\n--- a/app/test-pmd/testpmd.c\n+++ b/app/test-pmd/testpmd.c\n@@ -2623,12 +2623,7 @@ start_port(portid_t pid)\n \n \t\tif (eth_macaddr_get_print_err(pi, &port->eth_addr) == 0)\n \t\t\tprintf(\"Port %d: \" RTE_ETHER_ADDR_PRT_FMT \"\\n\", pi,\n-\t\t\t\tport->eth_addr.addr_bytes[0],\n-\t\t\t\tport->eth_addr.addr_bytes[1],\n-\t\t\t\tport->eth_addr.addr_bytes[2],\n-\t\t\t\tport->eth_addr.addr_bytes[3],\n-\t\t\t\tport->eth_addr.addr_bytes[4],\n-\t\t\t\tport->eth_addr.addr_bytes[5]);\n+\t\t\t\t\tRTE_ETHER_ADDR_BYTES(&port->eth_addr));\n \n \t\t/* at least one port started, need checking link status */\n \t\tneed_check_link_status = 1;\ndiff --git a/app/test/test_event_eth_rx_adapter.c b/app/test/test_event_eth_rx_adapter.c\nindex 9198767b41..add4d8a678 100644\n--- a/app/test/test_event_eth_rx_adapter.c\n+++ b/app/test/test_event_eth_rx_adapter.c\n@@ -88,10 +88,7 @@ port_init_common(uint16_t port, const struct rte_eth_conf *port_conf,\n \t\treturn retval;\n \tprintf(\"Port %u MAC: %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8\n \t\t\t   \" %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8 \"\\n\",\n-\t\t\t(unsigned int)port,\n-\t\t\taddr.addr_bytes[0], addr.addr_bytes[1],\n-\t\t\taddr.addr_bytes[2], addr.addr_bytes[3],\n-\t\t\taddr.addr_bytes[4], addr.addr_bytes[5]);\n+\t\t\t(unsigned int)port, RTE_ETHER_ADDR_BYTES(&addr));\n \n \t/* Enable RX in promiscuous mode for the Ethernet device. */\n \tretval = rte_eth_promiscuous_enable(port);\ndiff --git a/app/test/test_event_eth_tx_adapter.c b/app/test/test_event_eth_tx_adapter.c\nindex 7073030902..cfcc784351 100644\n--- a/app/test/test_event_eth_tx_adapter.c\n+++ b/app/test/test_event_eth_tx_adapter.c\n@@ -90,10 +90,7 @@ port_init_common(uint16_t port, const struct rte_eth_conf *port_conf,\n \t\treturn retval;\n \tprintf(\"Port %u MAC: %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8\n \t\t\t   \" %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8 \"\\n\",\n-\t\t\t(unsigned int)port,\n-\t\t\taddr.addr_bytes[0], addr.addr_bytes[1],\n-\t\t\taddr.addr_bytes[2], addr.addr_bytes[3],\n-\t\t\taddr.addr_bytes[4], addr.addr_bytes[5]);\n+\t\t\t(unsigned int)port, RTE_ETHER_ADDR_BYTES(&addr));\n \n \t/* Enable RX in promiscuous mode for the Ethernet device. */\n \tretval = rte_eth_promiscuous_enable(port);\ndiff --git a/drivers/bus/dpaa/base/fman/netcfg_layer.c b/drivers/bus/dpaa/base/fman/netcfg_layer.c\nindex 556d631faa..6a405c984d 100644\n--- a/drivers/bus/dpaa/base/fman/netcfg_layer.c\n+++ b/drivers/bus/dpaa/base/fman/netcfg_layer.c\n@@ -48,12 +48,7 @@ dump_netcfg(struct netcfg_info *cfg_ptr)\n \t\t       (__if->mac_type == fman_mac_2_5g) ? \"2.5G\" : \"10G\");\n \n \t\tprintf(\"\\tmac_addr: \" RTE_ETHER_ADDR_PRT_FMT \"\\n\",\n-\t\t       (&__if->mac_addr)->addr_bytes[0],\n-\t\t       (&__if->mac_addr)->addr_bytes[1],\n-\t\t       (&__if->mac_addr)->addr_bytes[2],\n-\t\t       (&__if->mac_addr)->addr_bytes[3],\n-\t\t       (&__if->mac_addr)->addr_bytes[4],\n-\t\t       (&__if->mac_addr)->addr_bytes[5]);\n+\t\t       RTE_ETHER_ADDR_BYTES(&__if->mac_addr));\n \n \t\tprintf(\"\\ttx_channel_id: 0x%02x\\n\",\n \t\t       __if->tx_channel_id);\ndiff --git a/drivers/common/mlx5/linux/mlx5_nl.c b/drivers/common/mlx5/linux/mlx5_nl.c\nindex efd92976b5..9120a697fd 100644\n--- a/drivers/common/mlx5/linux/mlx5_nl.c\n+++ b/drivers/common/mlx5/linux/mlx5_nl.c\n@@ -695,9 +695,7 @@ mlx5_nl_vf_mac_addr_modify(int nlsk_fd, unsigned int iface_idx,\n \t\t\"representor %u cannot set VF MAC address \"\n \t\tRTE_ETHER_ADDR_PRT_FMT \" : %s\",\n \t\tvf_index,\n-\t\tmac->addr_bytes[0], mac->addr_bytes[1],\n-\t\tmac->addr_bytes[2], mac->addr_bytes[3],\n-\t\tmac->addr_bytes[4], mac->addr_bytes[5],\n+\t\tRTE_ETHER_ADDR_BYTES(mac),\n \t\tstrerror(rte_errno));\n \treturn -rte_errno;\n }\ndiff --git a/drivers/net/bnx2x/bnx2x_vfpf.c b/drivers/net/bnx2x/bnx2x_vfpf.c\nindex 03ba0d811f..0e8a92cd33 100644\n--- a/drivers/net/bnx2x/bnx2x_vfpf.c\n+++ b/drivers/net/bnx2x/bnx2x_vfpf.c\n@@ -730,12 +730,7 @@ bnx2x_vfpf_set_mcast(struct bnx2x_softc *sc,\n \tfor (i = 0; i < mc_addrs_num; i++) {\n \t\tPMD_DRV_LOG(DEBUG, sc, \"Adding mcast MAC:\"\n \t\t\t\tRTE_ETHER_ADDR_PRT_FMT,\n-\t\t\t\tmc_addrs[i].addr_bytes[0],\n-\t\t\t\tmc_addrs[i].addr_bytes[1],\n-\t\t\t\tmc_addrs[i].addr_bytes[2],\n-\t\t\t\tmc_addrs[i].addr_bytes[3],\n-\t\t\t\tmc_addrs[i].addr_bytes[4],\n-\t\t\t\tmc_addrs[i].addr_bytes[5]);\n+\t\t\t\tRTE_ETHER_ADDR_BYTES(&mc_addrs[i]));\n \t\tmemcpy(query->multicast[i], mc_addrs[i].addr_bytes, ETH_ALEN);\n \t}\n \ndiff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c\nindex d3cbd753cf..8ed9e036f4 100644\n--- a/drivers/net/bonding/rte_eth_bond_pmd.c\n+++ b/drivers/net/bonding/rte_eth_bond_pmd.c\n@@ -477,13 +477,9 @@ update_client_stats(uint32_t addr, uint16_t port, uint32_t *TXorRXindicator)\n \t\t\"DstMAC:\" RTE_ETHER_ADDR_PRT_FMT \" DstIP:%s %s %d\\n\", \\\n \t\tinfo,\t\t\t\t\t\t\t\\\n \t\tport,\t\t\t\t\t\t\t\\\n-\t\teth_h->s_addr.addr_bytes[0], eth_h->s_addr.addr_bytes[1], \\\n-\t\teth_h->s_addr.addr_bytes[2], eth_h->s_addr.addr_bytes[3], \\\n-\t\teth_h->s_addr.addr_bytes[4], eth_h->s_addr.addr_bytes[5], \\\n+\t\tRTE_ETHER_ADDR_BYTES(&eth_h->s_addr),                  \\\n \t\tsrc_ip,\t\t\t\t\t\t\t\\\n-\t\teth_h->d_addr.addr_bytes[0], eth_h->d_addr.addr_bytes[1], \\\n-\t\teth_h->d_addr.addr_bytes[2], eth_h->d_addr.addr_bytes[3], \\\n-\t\teth_h->d_addr.addr_bytes[4], eth_h->d_addr.addr_bytes[5], \\\n+\t\tRTE_ETHER_ADDR_BYTES(&eth_h->d_addr),                  \\\n \t\tdst_ip,\t\t\t\t\t\t\t\\\n \t\tarp_op, ++burstnumber)\n #endif\ndiff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c\nindex c5739a3a80..36d8f9249d 100644\n--- a/drivers/net/dpaa/dpaa_ethdev.c\n+++ b/drivers/net/dpaa/dpaa_ethdev.c\n@@ -2095,13 +2095,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)\n \trte_ether_addr_copy(&fman_intf->mac_addr, &eth_dev->data->mac_addrs[0]);\n \n \tRTE_LOG(INFO, PMD, \"net: dpaa: %s: \" RTE_ETHER_ADDR_PRT_FMT \"\\n\",\n-\t\tdpaa_device->name,\n-\t\tfman_intf->mac_addr.addr_bytes[0],\n-\t\tfman_intf->mac_addr.addr_bytes[1],\n-\t\tfman_intf->mac_addr.addr_bytes[2],\n-\t\tfman_intf->mac_addr.addr_bytes[3],\n-\t\tfman_intf->mac_addr.addr_bytes[4],\n-\t\tfman_intf->mac_addr.addr_bytes[5]);\n+\t\tdpaa_device->name, RTE_ETHER_ADDR_BYTES(&fman_intf->mac_addr));\n \n \tif (!fman_intf->is_shared_mac) {\n \t\t/* Configure error packet handling */\ndiff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c\nindex 91db3032f5..d80fad01e3 100644\n--- a/drivers/net/e1000/igb_ethdev.c\n+++ b/drivers/net/e1000/igb_ethdev.c\n@@ -978,12 +978,7 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev)\n \t\tPMD_INIT_LOG(INFO, \"\\tVF MAC address not assigned by Host PF\");\n \t\tPMD_INIT_LOG(INFO, \"\\tAssign randomly generated MAC address \"\n \t\t\t     RTE_ETHER_ADDR_PRT_FMT,\n-\t\t\t     perm_addr->addr_bytes[0],\n-\t\t\t     perm_addr->addr_bytes[1],\n-\t\t\t     perm_addr->addr_bytes[2],\n-\t\t\t     perm_addr->addr_bytes[3],\n-\t\t\t     perm_addr->addr_bytes[4],\n-\t\t\t     perm_addr->addr_bytes[5]);\n+\t\t\t     RTE_ETHER_ADDR_BYTES(perm_addr));\n \t}\n \n \tdiag = e1000_rar_set(hw, perm_addr->addr_bytes, 0);\ndiff --git a/drivers/net/failsafe/failsafe.c b/drivers/net/failsafe/failsafe.c\nindex 919d287f88..b87c036e60 100644\n--- a/drivers/net/failsafe/failsafe.c\n+++ b/drivers/net/failsafe/failsafe.c\n@@ -261,9 +261,7 @@ fs_eth_dev_create(struct rte_vdev_device *vdev)\n \t\t\trte_eth_random_addr(&mac->addr_bytes[0]);\n \t}\n \tINFO(\"MAC address is \" RTE_ETHER_ADDR_PRT_FMT,\n-\t\tmac->addr_bytes[0], mac->addr_bytes[1],\n-\t\tmac->addr_bytes[2], mac->addr_bytes[3],\n-\t\tmac->addr_bytes[4], mac->addr_bytes[5]);\n+\t\tRTE_ETHER_ADDR_BYTES(mac));\n \tdev->data->dev_flags |= RTE_ETH_DEV_INTR_LSC |\n \t\t\t\tRTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;\n \tPRIV(dev)->intr_handle = (struct rte_intr_handle){\ndiff --git a/drivers/net/hinic/hinic_pmd_ethdev.c b/drivers/net/hinic/hinic_pmd_ethdev.c\nindex 3ffad21d1a..c01e2ec1d4 100644\n--- a/drivers/net/hinic/hinic_pmd_ethdev.c\n+++ b/drivers/net/hinic/hinic_pmd_ethdev.c\n@@ -2360,9 +2360,7 @@ static int hinic_set_mac_addr(struct rte_eth_dev *dev,\n \trte_ether_addr_copy(addr, &nic_dev->default_addr);\n \n \tPMD_DRV_LOG(INFO, \"Set new mac address \" RTE_ETHER_ADDR_PRT_FMT,\n-\t\t    addr->addr_bytes[0], addr->addr_bytes[1],\n-\t\t    addr->addr_bytes[2], addr->addr_bytes[3],\n-\t\t    addr->addr_bytes[4], addr->addr_bytes[5]);\n+\t\t    RTE_ETHER_ADDR_BYTES(addr));\n \n \treturn 0;\n }\ndiff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c\nindex dcc2b64e17..e8dd6d1dab 100644\n--- a/drivers/net/i40e/i40e_ethdev_vf.c\n+++ b/drivers/net/i40e/i40e_ethdev_vf.c\n@@ -868,9 +868,7 @@ i40evf_add_mac_addr(struct rte_eth_dev *dev,\n \n \tif (rte_is_zero_ether_addr(addr)) {\n \t\tPMD_DRV_LOG(ERR, \"Invalid mac:\" RTE_ETHER_ADDR_PRT_FMT,\n-\t\t\t    addr->addr_bytes[0], addr->addr_bytes[1],\n-\t\t\t    addr->addr_bytes[2], addr->addr_bytes[3],\n-\t\t\t    addr->addr_bytes[4], addr->addr_bytes[5]);\n+\t\t\t    RTE_ETHER_ADDR_BYTES(addr));\n \t\treturn I40E_ERR_INVALID_MAC_ADDR;\n \t}\n \n@@ -2131,9 +2129,7 @@ i40evf_add_del_all_mac_addr(struct rte_eth_dev *dev, bool add)\n \t\t\t\t\t      VIRTCHNL_ETHER_ADDR_PRIMARY :\n \t\t\t\t\t      VIRTCHNL_ETHER_ADDR_EXTRA);\n \t\t\tPMD_DRV_LOG(DEBUG, \"add/rm mac:\" RTE_ETHER_ADDR_PRT_FMT,\n-\t\t\t\t    addr->addr_bytes[0], addr->addr_bytes[1],\n-\t\t\t\t    addr->addr_bytes[2], addr->addr_bytes[3],\n-\t\t\t\t    addr->addr_bytes[4], addr->addr_bytes[5]);\n+\t\t\t\t    RTE_ETHER_ADDR_BYTES(addr));\n \t\t\tj++;\n \t\t}\n \t\tlist->vsi_id = vf->vsi_res->vsi_id;\n@@ -2950,12 +2946,7 @@ i40evf_add_del_mc_addr_list(struct rte_eth_dev *dev,\n \tfor (i = 0; i < mc_addrs_num; i++) {\n \t\tif (!I40E_IS_MULTICAST(mc_addrs[i].addr_bytes)) {\n \t\t\tPMD_DRV_LOG(ERR, \"Invalid mac:\" RTE_ETHER_ADDR_PRT_FMT,\n-\t\t\t\t    mc_addrs[i].addr_bytes[0],\n-\t\t\t\t    mc_addrs[i].addr_bytes[1],\n-\t\t\t\t    mc_addrs[i].addr_bytes[2],\n-\t\t\t\t    mc_addrs[i].addr_bytes[3],\n-\t\t\t\t    mc_addrs[i].addr_bytes[4],\n-\t\t\t\t    mc_addrs[i].addr_bytes[5]);\n+\t\t\t\t    RTE_ETHER_ADDR_BYTES(&mc_addrs[i]));\n \t\t\treturn -EINVAL;\n \t\t}\n \ndiff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c\nindex 676120be2c..7ce0769d8a 100644\n--- a/drivers/net/iavf/iavf_ethdev.c\n+++ b/drivers/net/iavf/iavf_ethdev.c\n@@ -1486,23 +1486,13 @@ iavf_dev_set_default_mac_addr(struct rte_eth_dev *dev,\n \tif (ret)\n \t\tPMD_DRV_LOG(ERR, \"Fail to delete old MAC:\"\n \t\t\t    RTE_ETHER_ADDR_PRT_FMT,\n-\t\t\t    old_addr->addr_bytes[0],\n-\t\t\t    old_addr->addr_bytes[1],\n-\t\t\t    old_addr->addr_bytes[2],\n-\t\t\t    old_addr->addr_bytes[3],\n-\t\t\t    old_addr->addr_bytes[4],\n-\t\t\t    old_addr->addr_bytes[5]);\n+\t\t\t\tRTE_ETHER_ADDR_BYTES(old_addr));\n \n \tret = iavf_add_del_eth_addr(adapter, mac_addr, true, VIRTCHNL_ETHER_ADDR_PRIMARY);\n \tif (ret)\n \t\tPMD_DRV_LOG(ERR, \"Fail to add new MAC:\"\n \t\t\t    RTE_ETHER_ADDR_PRT_FMT,\n-\t\t\t    mac_addr->addr_bytes[0],\n-\t\t\t    mac_addr->addr_bytes[1],\n-\t\t\t    mac_addr->addr_bytes[2],\n-\t\t\t    mac_addr->addr_bytes[3],\n-\t\t\t    mac_addr->addr_bytes[4],\n-\t\t\t    mac_addr->addr_bytes[5]);\n+\t\t\t\tRTE_ETHER_ADDR_BYTES(mac_addr));\n \n \tif (ret)\n \t\treturn -EIO;\ndiff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c\nindex 62fb91ec75..7f86050df3 100644\n--- a/drivers/net/iavf/iavf_vchnl.c\n+++ b/drivers/net/iavf/iavf_vchnl.c\n@@ -1177,9 +1177,7 @@ iavf_add_del_all_mac_addr(struct iavf_adapter *adapter, bool add)\n \t\t\t\t\t      VIRTCHNL_ETHER_ADDR_PRIMARY :\n \t\t\t\t\t      VIRTCHNL_ETHER_ADDR_EXTRA);\n \t\t\tPMD_DRV_LOG(DEBUG, \"add/rm mac:\" RTE_ETHER_ADDR_PRT_FMT,\n-\t\t\t\t    addr->addr_bytes[0], addr->addr_bytes[1],\n-\t\t\t\t    addr->addr_bytes[2], addr->addr_bytes[3],\n-\t\t\t\t    addr->addr_bytes[4], addr->addr_bytes[5]);\n+\t\t\t\t    RTE_ETHER_ADDR_BYTES(addr));\n \t\t\tj++;\n \t\t}\n \t\tlist->vsi_id = vf->vsi_res->vsi_id;\n@@ -1627,12 +1625,7 @@ iavf_add_del_mc_addr_list(struct iavf_adapter *adapter,\n \tfor (i = 0; i < mc_addrs_num; i++) {\n \t\tif (!IAVF_IS_MULTICAST(mc_addrs[i].addr_bytes)) {\n \t\t\tPMD_DRV_LOG(ERR, \"Invalid mac:\" RTE_ETHER_ADDR_PRT_FMT,\n-\t\t\t\t    mc_addrs[i].addr_bytes[0],\n-\t\t\t\t    mc_addrs[i].addr_bytes[1],\n-\t\t\t\t    mc_addrs[i].addr_bytes[2],\n-\t\t\t\t    mc_addrs[i].addr_bytes[3],\n-\t\t\t\t    mc_addrs[i].addr_bytes[4],\n-\t\t\t\t    mc_addrs[i].addr_bytes[5]);\n+\t\t\t\t    RTE_ETHER_ADDR_BYTES(&mc_addrs[i]));\n \t\t\treturn -EINVAL;\n \t\t}\n \ndiff --git a/drivers/net/ice/ice_dcf.c b/drivers/net/ice/ice_dcf.c\nindex 9ca3c755b8..068be668ba 100644\n--- a/drivers/net/ice/ice_dcf.c\n+++ b/drivers/net/ice/ice_dcf.c\n@@ -1076,9 +1076,7 @@ ice_dcf_add_del_all_mac_addr(struct ice_dcf_hw *hw, bool add)\n \trte_memcpy(list->list[0].addr, addr->addr_bytes,\n \t\t\tsizeof(addr->addr_bytes));\n \tPMD_DRV_LOG(DEBUG, \"add/rm mac:\" RTE_ETHER_ADDR_PRT_FMT,\n-\t\t\t    addr->addr_bytes[0], addr->addr_bytes[1],\n-\t\t\t    addr->addr_bytes[2], addr->addr_bytes[3],\n-\t\t\t    addr->addr_bytes[4], addr->addr_bytes[5]);\n+\t\t\t    RTE_ETHER_ADDR_BYTES(addr));\n \n \tlist->vsi_id = hw->vsi_res->vsi_id;\n \tlist->num_elements = 1;\ndiff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c\nindex b4af930906..8932b84d9b 100644\n--- a/drivers/net/ixgbe/ixgbe_ethdev.c\n+++ b/drivers/net/ixgbe/ixgbe_ethdev.c\n@@ -1651,12 +1651,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)\n \t\tPMD_INIT_LOG(INFO, \"\\tVF MAC address not assigned by Host PF\");\n \t\tPMD_INIT_LOG(INFO, \"\\tAssign randomly generated MAC address \"\n \t\t\t     RTE_ETHER_ADDR_PRT_FMT,\n-\t\t\t     perm_addr->addr_bytes[0],\n-\t\t\t     perm_addr->addr_bytes[1],\n-\t\t\t     perm_addr->addr_bytes[2],\n-\t\t\t     perm_addr->addr_bytes[3],\n-\t\t\t     perm_addr->addr_bytes[4],\n-\t\t\t     perm_addr->addr_bytes[5]);\n+\t\t\t\t RTE_ETHER_ADDR_BYTES(perm_addr));\n \t}\n \n \t/* Copy the permanent MAC address */\n@@ -6302,13 +6297,7 @@ ixgbevf_add_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,\n \tif (diag != 0)\n \t\tPMD_DRV_LOG(ERR, \"Unable to add MAC address \"\n \t\t\t    RTE_ETHER_ADDR_PRT_FMT \" - diag=%d\",\n-\t\t\t    mac_addr->addr_bytes[0],\n-\t\t\t    mac_addr->addr_bytes[1],\n-\t\t\t    mac_addr->addr_bytes[2],\n-\t\t\t    mac_addr->addr_bytes[3],\n-\t\t\t    mac_addr->addr_bytes[4],\n-\t\t\t    mac_addr->addr_bytes[5],\n-\t\t\t    diag);\n+\t\t\t    RTE_ETHER_ADDR_BYTES(mac_addr), diag);\n \treturn diag;\n }\n \n@@ -6351,13 +6340,7 @@ ixgbevf_remove_mac_addr(struct rte_eth_dev *dev, uint32_t index)\n \t\t\tPMD_DRV_LOG(ERR,\n \t\t\t\t    \"Adding again MAC address \"\n \t\t\t\t     RTE_ETHER_ADDR_PRT_FMT \" failed \"\n-\t\t\t\t    \"diag=%d\",\n-\t\t\t\t    mac_addr->addr_bytes[0],\n-\t\t\t\t    mac_addr->addr_bytes[1],\n-\t\t\t\t    mac_addr->addr_bytes[2],\n-\t\t\t\t    mac_addr->addr_bytes[3],\n-\t\t\t\t    mac_addr->addr_bytes[4],\n-\t\t\t\t    mac_addr->addr_bytes[5],\n+\t\t\t\t    \"diag=%d\", RTE_ETHER_ADDR_BYTES(mac_addr),\n \t\t\t\t    diag);\n \t}\n }\ndiff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c\nindex 2b17bfac0b..7f9f300c6c 100644\n--- a/drivers/net/mlx4/mlx4.c\n+++ b/drivers/net/mlx4/mlx4.c\n@@ -1015,10 +1015,7 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)\n \t\t\tgoto port_error;\n \t\t}\n \t\tINFO(\"port %u MAC address is \" RTE_ETHER_ADDR_PRT_FMT,\n-\t\t     priv->port,\n-\t\t     mac.addr_bytes[0], mac.addr_bytes[1],\n-\t\t     mac.addr_bytes[2], mac.addr_bytes[3],\n-\t\t     mac.addr_bytes[4], mac.addr_bytes[5]);\n+\t\t     priv->port, RTE_ETHER_ADDR_BYTES(&mac));\n \t\t/* Register MAC address. */\n \t\tpriv->mac[0] = mac;\n \ndiff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c\nindex 244865792c..46a431b93e 100644\n--- a/drivers/net/mlx5/linux/mlx5_os.c\n+++ b/drivers/net/mlx5/linux/mlx5_os.c\n@@ -1666,10 +1666,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \t}\n \tDRV_LOG(INFO,\n \t\t\"port %u MAC address is \" RTE_ETHER_ADDR_PRT_FMT,\n-\t\teth_dev->data->port_id,\n-\t\tmac.addr_bytes[0], mac.addr_bytes[1],\n-\t\tmac.addr_bytes[2], mac.addr_bytes[3],\n-\t\tmac.addr_bytes[4], mac.addr_bytes[5]);\n+\t\teth_dev->data->port_id, RTE_ETHER_ADDR_BYTES(&mac));\n #ifdef RTE_LIBRTE_MLX5_DEBUG\n \t{\n \t\tchar ifname[MLX5_NAMESIZE];\ndiff --git a/drivers/net/mlx5/windows/mlx5_os.c b/drivers/net/mlx5/windows/mlx5_os.c\nindex 6a109db8e8..58944ebc2c 100644\n--- a/drivers/net/mlx5/windows/mlx5_os.c\n+++ b/drivers/net/mlx5/windows/mlx5_os.c\n@@ -567,10 +567,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,\n \t}\n \tDRV_LOG(INFO,\n \t\t\"port %u MAC address is \" RTE_ETHER_ADDR_PRT_FMT,\n-\t\teth_dev->data->port_id,\n-\t\tmac.addr_bytes[0], mac.addr_bytes[1],\n-\t\tmac.addr_bytes[2], mac.addr_bytes[3],\n-\t\tmac.addr_bytes[4], mac.addr_bytes[5]);\n+\t\teth_dev->data->port_id, RTE_ETHER_ADDR_BYTES(mac));\n #ifdef RTE_LIBRTE_MLX5_DEBUG\n \t{\n \t\tchar ifname[MLX5_NAMESIZE];\ndiff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c\nindex ca6cae3606..a4304e0eff 100644\n--- a/drivers/net/qede/qede_ethdev.c\n+++ b/drivers/net/qede/qede_ethdev.c\n@@ -2751,12 +2751,7 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf)\n \t}\n \n \tDP_INFO(edev, \"MAC address : \" RTE_ETHER_ADDR_PRT_FMT \"\\n\",\n-\t\tadapter->primary_mac.addr_bytes[0],\n-\t\tadapter->primary_mac.addr_bytes[1],\n-\t\tadapter->primary_mac.addr_bytes[2],\n-\t\tadapter->primary_mac.addr_bytes[3],\n-\t\tadapter->primary_mac.addr_bytes[4],\n-\t\tadapter->primary_mac.addr_bytes[5]);\n+\t\tRTE_ETHER_ADDR_BYTES(&adapter->primary_mac));\n \n \tDP_INFO(edev, \"Device initialized\\n\");\n \ndiff --git a/drivers/net/txgbe/txgbe_ethdev_vf.c b/drivers/net/txgbe/txgbe_ethdev_vf.c\nindex 07b7751241..304ca376c4 100644\n--- a/drivers/net/txgbe/txgbe_ethdev_vf.c\n+++ b/drivers/net/txgbe/txgbe_ethdev_vf.c\n@@ -283,12 +283,7 @@ eth_txgbevf_dev_init(struct rte_eth_dev *eth_dev)\n \t\tPMD_INIT_LOG(INFO, \"\\tVF MAC address not assigned by Host PF\");\n \t\tPMD_INIT_LOG(INFO, \"\\tAssign randomly generated MAC address \"\n \t\t\t     RTE_ETHER_ADDR_PRT_FMT,\n-\t\t\t     perm_addr->addr_bytes[0],\n-\t\t\t     perm_addr->addr_bytes[1],\n-\t\t\t     perm_addr->addr_bytes[2],\n-\t\t\t     perm_addr->addr_bytes[3],\n-\t\t\t     perm_addr->addr_bytes[4],\n-\t\t\t     perm_addr->addr_bytes[5]);\n+\t\t\t\t RTE_ETHER_ADDR_BYTES(perm_addr));\n \t}\n \n \t/* Copy the permanent MAC address */\n@@ -1040,13 +1035,7 @@ txgbevf_add_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,\n \tif (err != 0)\n \t\tPMD_DRV_LOG(ERR, \"Unable to add MAC address \"\n \t\t\t    RTE_ETHER_ADDR_PRT_FMT \" - err=%d\",\n-\t\t\t    mac_addr->addr_bytes[0],\n-\t\t\t    mac_addr->addr_bytes[1],\n-\t\t\t    mac_addr->addr_bytes[2],\n-\t\t\t    mac_addr->addr_bytes[3],\n-\t\t\t    mac_addr->addr_bytes[4],\n-\t\t\t    mac_addr->addr_bytes[5],\n-\t\t\t    err);\n+\t\t\t    RTE_ETHER_ADDR_BYTES(mac_addr), err);\n \treturn err;\n }\n \n@@ -1090,13 +1079,7 @@ txgbevf_remove_mac_addr(struct rte_eth_dev *dev, uint32_t index)\n \t\t\t\t    \"Adding again MAC address \"\n \t\t\t\t    RTE_ETHER_ADDR_PRT_FMT \" failed \"\n \t\t\t\t    \"err=%d\",\n-\t\t\t\t    mac_addr->addr_bytes[0],\n-\t\t\t\t    mac_addr->addr_bytes[1],\n-\t\t\t\t    mac_addr->addr_bytes[2],\n-\t\t\t\t    mac_addr->addr_bytes[3],\n-\t\t\t\t    mac_addr->addr_bytes[4],\n-\t\t\t\t    mac_addr->addr_bytes[5],\n-\t\t\t\t    err);\n+\t\t\t\t    RTE_ETHER_ADDR_BYTES(mac_addr), err);\n \t}\n }\n \ndiff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c\nindex eeb851e8e6..adbd408083 100644\n--- a/examples/bbdev_app/main.c\n+++ b/examples/bbdev_app/main.c\n@@ -287,12 +287,7 @@ print_mac(unsigned int portid, struct rte_ether_addr *bbdev_ports_eth_address)\n {\n \tprintf(\"Port %u, MAC address: \" RTE_ETHER_ADDR_PRT_FMT \"\\n\\n\",\n \t\t\t(unsigned int) portid,\n-\t\t\tbbdev_ports_eth_address->addr_bytes[0],\n-\t\t\tbbdev_ports_eth_address->addr_bytes[1],\n-\t\t\tbbdev_ports_eth_address->addr_bytes[2],\n-\t\t\tbbdev_ports_eth_address->addr_bytes[3],\n-\t\t\tbbdev_ports_eth_address->addr_bytes[4],\n-\t\t\tbbdev_ports_eth_address->addr_bytes[5]);\n+\t\t\tRTE_ETHER_ADDR_BYTES(bbdev_ports_eth_address));\n }\n \n static inline void\ndiff --git a/examples/bond/main.c b/examples/bond/main.c\nindex f48400e211..a63ca70a7f 100644\n--- a/examples/bond/main.c\n+++ b/examples/bond/main.c\n@@ -104,8 +104,7 @@\n #define MAX_PORTS\t4\n #define PRINT_MAC(addr)\t\tprintf(\"%02\"PRIx8\":%02\"PRIx8\":%02\"PRIx8 \\\n \t\t\":%02\"PRIx8\":%02\"PRIx8\":%02\"PRIx8,\t\\\n-\t\taddr.addr_bytes[0], addr.addr_bytes[1], addr.addr_bytes[2], \\\n-\t\taddr.addr_bytes[3], addr.addr_bytes[4], addr.addr_bytes[5])\n+\t\tRTE_ETHER_ADDR_BYTES(&addr))\n \n uint16_t slaves[RTE_MAX_ETHPORTS];\n uint16_t slaves_count;\ndiff --git a/examples/distributor/main.c b/examples/distributor/main.c\nindex 1b1029660e..d0f40a1fb4 100644\n--- a/examples/distributor/main.c\n+++ b/examples/distributor/main.c\n@@ -201,10 +201,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)\n \n \tprintf(\"Port %u MAC: %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\n \t\t\t\" %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\"\\n\",\n-\t\t\tport,\n-\t\t\taddr.addr_bytes[0], addr.addr_bytes[1],\n-\t\t\taddr.addr_bytes[2], addr.addr_bytes[3],\n-\t\t\taddr.addr_bytes[4], addr.addr_bytes[5]);\n+\t\t\tport, RTE_ETHER_ADDR_BYTES(&addr));\n \n \tretval = rte_eth_promiscuous_enable(port);\n \tif (retval != 0)\ndiff --git a/examples/ethtool/ethtool-app/ethapp.c b/examples/ethtool/ethtool-app/ethapp.c\nindex 5ff0060c08..78e86534e8 100644\n--- a/examples/ethtool/ethtool-app/ethapp.c\n+++ b/examples/ethtool/ethtool-app/ethapp.c\n@@ -499,13 +499,7 @@ pcmd_macaddr_callback(void *ptr_params,\n \t\tif (stat == 0) {\n \t\t\tprintf(\n \t\t\t\t\"Port %i MAC Address: \" RTE_ETHER_ADDR_PRT_FMT \"\\n\",\n-\t\t\t\tparams->port,\n-\t\t\t\tmac_addr.addr_bytes[0],\n-\t\t\t\tmac_addr.addr_bytes[1],\n-\t\t\t\tmac_addr.addr_bytes[2],\n-\t\t\t\tmac_addr.addr_bytes[3],\n-\t\t\t\tmac_addr.addr_bytes[4],\n-\t\t\t\tmac_addr.addr_bytes[5]);\n+\t\t\t\tparams->port, RTE_ETHER_ADDR_BYTES(&mac_addr));\n \t\t\treturn;\n \t\t}\n \t}\ndiff --git a/examples/eventdev_pipeline/pipeline_worker_generic.c b/examples/eventdev_pipeline/pipeline_worker_generic.c\nindex f70ab0cc9e..5ed0dc73ec 100644\n--- a/examples/eventdev_pipeline/pipeline_worker_generic.c\n+++ b/examples/eventdev_pipeline/pipeline_worker_generic.c\n@@ -368,10 +368,7 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool)\n \n \tprintf(\"Port %u MAC: %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8\n \t\t\t\" %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8 \"\\n\",\n-\t\t\t(unsigned int)port,\n-\t\t\taddr.addr_bytes[0], addr.addr_bytes[1],\n-\t\t\taddr.addr_bytes[2], addr.addr_bytes[3],\n-\t\t\taddr.addr_bytes[4], addr.addr_bytes[5]);\n+\t\t\t(unsigned int)port, RTE_ETHER_ADDR_BYTES(&addr));\n \n \t/* Enable RX in promiscuous mode for the Ethernet device. */\n \tretval = rte_eth_promiscuous_enable(port);\ndiff --git a/examples/eventdev_pipeline/pipeline_worker_tx.c b/examples/eventdev_pipeline/pipeline_worker_tx.c\nindex ca6cd200ca..ab8c6d6a0d 100644\n--- a/examples/eventdev_pipeline/pipeline_worker_tx.c\n+++ b/examples/eventdev_pipeline/pipeline_worker_tx.c\n@@ -695,10 +695,7 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool)\n \n \tprintf(\"Port %u MAC: %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8\n \t\t\t\" %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8 \"\\n\",\n-\t\t\t(unsigned int)port,\n-\t\t\taddr.addr_bytes[0], addr.addr_bytes[1],\n-\t\t\taddr.addr_bytes[2], addr.addr_bytes[3],\n-\t\t\taddr.addr_bytes[4], addr.addr_bytes[5]);\n+\t\t\t(unsigned int)port, RTE_ETHER_ADDR_BYTES(&addr));\n \n \t/* Enable RX in promiscuous mode for the Ethernet device. */\n \tretval = rte_eth_promiscuous_enable(port);\ndiff --git a/examples/flow_classify/flow_classify.c b/examples/flow_classify/flow_classify.c\nindex db71f5aa04..65c1d85cf2 100644\n--- a/examples/flow_classify/flow_classify.c\n+++ b/examples/flow_classify/flow_classify.c\n@@ -258,10 +258,7 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool)\n \n \tprintf(\"Port %u MAC: %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8\n \t\t\t   \" %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8 \"\\n\",\n-\t\t\tport,\n-\t\t\taddr.addr_bytes[0], addr.addr_bytes[1],\n-\t\t\taddr.addr_bytes[2], addr.addr_bytes[3],\n-\t\t\taddr.addr_bytes[4], addr.addr_bytes[5]);\n+\t\t\tport, RTE_ETHER_ADDR_BYTES(&addr));\n \n \t/* Enable RX in promiscuous mode for the Ethernet device. */\n \tretval = rte_eth_promiscuous_enable(port);\ndiff --git a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c\nindex 6ac9ca429f..b3977a8be5 100644\n--- a/examples/ioat/ioatfwd.c\n+++ b/examples/ioat/ioatfwd.c\n@@ -927,12 +927,7 @@ port_init(uint16_t portid, struct rte_mempool *mbuf_pool, uint16_t nb_queues)\n \n \tprintf(\"Port %u, MAC address: \" RTE_ETHER_ADDR_PRT_FMT \"\\n\\n\",\n \t\t\tportid,\n-\t\t\tioat_ports_eth_addr[portid].addr_bytes[0],\n-\t\t\tioat_ports_eth_addr[portid].addr_bytes[1],\n-\t\t\tioat_ports_eth_addr[portid].addr_bytes[2],\n-\t\t\tioat_ports_eth_addr[portid].addr_bytes[3],\n-\t\t\tioat_ports_eth_addr[portid].addr_bytes[4],\n-\t\t\tioat_ports_eth_addr[portid].addr_bytes[5]);\n+\t\t\tRTE_ETHER_ADDR_BYTES(&ioat_ports_eth_addr[portid]));\n \n \tcfg.ports[cfg.nb_ports].rxtx_port = portid;\n \tcfg.ports[cfg.nb_ports++].nb_queues = nb_queues;\ndiff --git a/examples/ip_pipeline/cli.c b/examples/ip_pipeline/cli.c\nindex f4b208b256..0c372675a9 100644\n--- a/examples/ip_pipeline/cli.c\n+++ b/examples/ip_pipeline/cli.c\n@@ -281,9 +281,7 @@ print_link_info(struct link *link, char *out, size_t out_size)\n \t\tlink->name,\n \t\teth_link.link_status == 0 ? \"DOWN\" : \"UP\",\n \t\tmtu,\n-\t\tmac_addr.addr_bytes[0], mac_addr.addr_bytes[1],\n-\t\tmac_addr.addr_bytes[2], mac_addr.addr_bytes[3],\n-\t\tmac_addr.addr_bytes[4], mac_addr.addr_bytes[5],\n+\t\tRTE_ETHER_ADDR_BYTES(&mac_addr),\n \t\tlink->n_rxq,\n \t\tlink->n_txq,\n \t\tlink->port_id,\n@@ -4776,10 +4774,7 @@ cmd_pipeline_table_rule_delete_default(char **tokens,\n static void\n ether_addr_show(FILE *f, struct rte_ether_addr *addr)\n {\n-\tfprintf(f, RTE_ETHER_ADDR_PRT_FMT,\n-\t\t(uint32_t)addr->addr_bytes[0], (uint32_t)addr->addr_bytes[1],\n-\t\t(uint32_t)addr->addr_bytes[2], (uint32_t)addr->addr_bytes[3],\n-\t\t(uint32_t)addr->addr_bytes[4], (uint32_t)addr->addr_bytes[5]);\n+\tfprintf(f, RTE_ETHER_ADDR_PRT_FMT, RTE_ETHER_ADDR_BYTES(addr));\n }\n \n static void\ndiff --git a/examples/l2fwd-cat/l2fwd-cat.c b/examples/l2fwd-cat/l2fwd-cat.c\nindex 95de29b868..9b3e324efb 100644\n--- a/examples/l2fwd-cat/l2fwd-cat.c\n+++ b/examples/l2fwd-cat/l2fwd-cat.c\n@@ -80,10 +80,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)\n \n \tprintf(\"Port %u MAC: %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8\n \t\t\t   \" %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8 \"\\n\",\n-\t\t\tport,\n-\t\t\taddr.addr_bytes[0], addr.addr_bytes[1],\n-\t\t\taddr.addr_bytes[2], addr.addr_bytes[3],\n-\t\t\taddr.addr_bytes[4], addr.addr_bytes[5]);\n+\t\t\tport, RTE_ETHER_ADDR_BYTES(&addr));\n \n \t/* Enable RX in promiscuous mode for the Ethernet device. */\n \tretval = rte_eth_promiscuous_enable(port);\ndiff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c\nindex f128e64a4c..66d1491bf7 100644\n--- a/examples/l2fwd-crypto/main.c\n+++ b/examples/l2fwd-crypto/main.c\n@@ -2702,13 +2702,8 @@ initialize_ports(struct l2fwd_crypto_options *options)\n \t\t}\n \n \t\tprintf(\"Port %u, MAC address: \" RTE_ETHER_ADDR_PRT_FMT \"\\n\\n\",\n-\t\t\t\tportid,\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[0],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[1],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[2],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[3],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[4],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[5]);\n+\t\t\tportid,\n+\t\t\tRTE_ETHER_ADDR_BYTES(&l2fwd_ports_eth_addr[portid]));\n \n \t\t/* initialize port stats */\n \t\tmemset(&port_statistics, 0, sizeof(port_statistics));\ndiff --git a/examples/l2fwd-event/l2fwd_common.c b/examples/l2fwd-event/l2fwd_common.c\nindex 7f6a0cc5fb..19f32809aa 100644\n--- a/examples/l2fwd-event/l2fwd_common.c\n+++ b/examples/l2fwd-event/l2fwd_common.c\n@@ -110,12 +110,7 @@ l2fwd_event_init_ports(struct l2fwd_resources *rsrc)\n \n \t\tprintf(\"Port %u,MAC address: \" RTE_ETHER_ADDR_PRT_FMT \"\\n\\n\",\n \t\t\tport_id,\n-\t\t\trsrc->eth_addr[port_id].addr_bytes[0],\n-\t\t\trsrc->eth_addr[port_id].addr_bytes[1],\n-\t\t\trsrc->eth_addr[port_id].addr_bytes[2],\n-\t\t\trsrc->eth_addr[port_id].addr_bytes[3],\n-\t\t\trsrc->eth_addr[port_id].addr_bytes[4],\n-\t\t\trsrc->eth_addr[port_id].addr_bytes[5]);\n+\t\t\tRTE_ETHER_ADDR_BYTES(&rsrc->eth_addr[port_id]));\n \t}\n \n \treturn nb_ports_available;\ndiff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c\nindex 640609543a..afe7fe6ead 100644\n--- a/examples/l2fwd-jobstats/main.c\n+++ b/examples/l2fwd-jobstats/main.c\n@@ -956,13 +956,8 @@ main(int argc, char **argv)\n \t\t}\n \n \t\tprintf(\"Port %u, MAC address: \" RTE_ETHER_ADDR_PRT_FMT \"\\n\\n\",\n-\t\t\t\tportid,\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[0],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[1],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[2],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[3],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[4],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[5]);\n+\t\t\tportid,\n+\t\t\tRTE_ETHER_ADDR_BYTES(&l2fwd_ports_eth_addr[portid]));\n \n \t\t/* initialize port stats */\n \t\tmemset(&port_statistics, 0, sizeof(port_statistics));\ndiff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c\nindex bc160c64e8..d0d979f5ba 100644\n--- a/examples/l2fwd-keepalive/main.c\n+++ b/examples/l2fwd-keepalive/main.c\n@@ -732,12 +732,7 @@ main(int argc, char **argv)\n \t\tprintf(\"Port %u, MAC address: \"\n \t\t\tRTE_ETHER_ADDR_PRT_FMT \"\\n\\n\",\n \t\t\tportid,\n-\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[0],\n-\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[1],\n-\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[2],\n-\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[3],\n-\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[4],\n-\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[5]);\n+\t\t\tRTE_ETHER_ADDR_BYTES(&l2fwd_ports_eth_addr[portid]));\n \n \t\t/* initialize port stats */\n \t\tmemset(&port_statistics, 0, sizeof(port_statistics));\ndiff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c\nindex 272d817bd4..05532551a5 100644\n--- a/examples/l2fwd/main.c\n+++ b/examples/l2fwd/main.c\n@@ -880,13 +880,8 @@ main(int argc, char **argv)\n \t\t\t\t rte_strerror(-ret), portid);\n \n \t\tprintf(\"Port %u, MAC address: \" RTE_ETHER_ADDR_PRT_FMT \"\\n\\n\",\n-\t\t\t\tportid,\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[0],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[1],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[2],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[3],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[4],\n-\t\t\t\tl2fwd_ports_eth_addr[portid].addr_bytes[5]);\n+\t\t\tportid,\n+\t\t\tRTE_ETHER_ADDR_BYTES(&l2fwd_ports_eth_addr[portid]));\n \n \t\t/* initialize port stats */\n \t\tmemset(&port_statistics, 0, sizeof(port_statistics));\ndiff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c\nindex 467f3397c1..a0bc1e56d0 100644\n--- a/examples/link_status_interrupt/main.c\n+++ b/examples/link_status_interrupt/main.c\n@@ -727,12 +727,7 @@ main(int argc, char **argv)\n \n \t\tprintf(\"Port %u, MAC address: \" RTE_ETHER_ADDR_PRT_FMT \"\\n\\n\",\n \t\t\t\t(unsigned) portid,\n-\t\t\t\tlsi_ports_eth_addr[portid].addr_bytes[0],\n-\t\t\t\tlsi_ports_eth_addr[portid].addr_bytes[1],\n-\t\t\t\tlsi_ports_eth_addr[portid].addr_bytes[2],\n-\t\t\t\tlsi_ports_eth_addr[portid].addr_bytes[3],\n-\t\t\t\tlsi_ports_eth_addr[portid].addr_bytes[4],\n-\t\t\t\tlsi_ports_eth_addr[portid].addr_bytes[5]);\n+\t\t\tRTE_ETHER_ADDR_BYTES(&lsi_ports_eth_addr[portid]));\n \n \t\t/* initialize port stats */\n \t\tmemset(&port_statistics, 0, sizeof(port_statistics));\ndiff --git a/examples/packet_ordering/main.c b/examples/packet_ordering/main.c\nindex d2fe9f6b50..4f6982bc12 100644\n--- a/examples/packet_ordering/main.c\n+++ b/examples/packet_ordering/main.c\n@@ -335,10 +335,7 @@ configure_eth_port(uint16_t port_id)\n \n \tprintf(\"Port %u MAC: %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\n \t\t\t\" %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\"\\n\",\n-\t\t\tport_id,\n-\t\t\taddr.addr_bytes[0], addr.addr_bytes[1],\n-\t\t\taddr.addr_bytes[2], addr.addr_bytes[3],\n-\t\t\taddr.addr_bytes[4], addr.addr_bytes[5]);\n+\t\t\tport_id, RTE_ETHER_ADDR_BYTES(&addr));\n \n \tret = rte_eth_promiscuous_enable(port_id);\n \tif (ret != 0)\ndiff --git a/examples/pipeline/cli.c b/examples/pipeline/cli.c\nindex 5ee9567bb0..1ba9b8c52c 100644\n--- a/examples/pipeline/cli.c\n+++ b/examples/pipeline/cli.c\n@@ -385,9 +385,7 @@ print_link_info(struct link *link, char *out, size_t out_size)\n \t\tlink->name,\n \t\teth_link.link_status == 0 ? \"DOWN\" : \"UP\",\n \t\tmtu,\n-\t\tmac_addr.addr_bytes[0], mac_addr.addr_bytes[1],\n-\t\tmac_addr.addr_bytes[2], mac_addr.addr_bytes[3],\n-\t\tmac_addr.addr_bytes[4], mac_addr.addr_bytes[5],\n+\t\tRTE_ETHER_ADDR_BYTES(&mac_addr),\n \t\tlink->n_rxq,\n \t\tlink->n_txq,\n \t\tlink->port_id,\ndiff --git a/examples/rxtx_callbacks/main.c b/examples/rxtx_callbacks/main.c\nindex 6f20f98b2b..ab6fa7d56c 100644\n--- a/examples/rxtx_callbacks/main.c\n+++ b/examples/rxtx_callbacks/main.c\n@@ -227,9 +227,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)\n \tprintf(\"Port %u MAC: %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\n \t\t\t\" %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\"\\n\",\n \t\t\t(unsigned)port,\n-\t\t\taddr.addr_bytes[0], addr.addr_bytes[1],\n-\t\t\taddr.addr_bytes[2], addr.addr_bytes[3],\n-\t\t\taddr.addr_bytes[4], addr.addr_bytes[5]);\n+\t\t\tRTE_ETHER_ADDR_BYTES(&addr));\n \n \tretval = rte_eth_promiscuous_enable(port);\n \tif (retval != 0)\ndiff --git a/examples/server_node_efd/server/main.c b/examples/server_node_efd/server/main.c\nindex 81a942560b..0d0d5679e4 100644\n--- a/examples/server_node_efd/server/main.c\n+++ b/examples/server_node_efd/server/main.c\n@@ -85,9 +85,7 @@ get_printable_mac_addr(uint16_t port)\n \n \t\tsnprintf(addresses[port], sizeof(addresses[port]),\n \t\t\t\tRTE_ETHER_ADDR_PRT_FMT \"\\n\",\n-\t\t\t\tmac.addr_bytes[0], mac.addr_bytes[1],\n-\t\t\t\tmac.addr_bytes[2], mac.addr_bytes[3],\n-\t\t\t\tmac.addr_bytes[4], mac.addr_bytes[5]);\n+\t\t\t\tRTE_ETHER_ADDR_BYTES(&mac));\n \t}\n \treturn addresses[port];\n }\ndiff --git a/examples/skeleton/basicfwd.c b/examples/skeleton/basicfwd.c\nindex ae08261bef..ae9bbee8d8 100644\n--- a/examples/skeleton/basicfwd.c\n+++ b/examples/skeleton/basicfwd.c\n@@ -100,10 +100,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)\n \n \tprintf(\"Port %u MAC: %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8\n \t\t\t   \" %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8 \"\\n\",\n-\t\t\tport,\n-\t\t\taddr.addr_bytes[0], addr.addr_bytes[1],\n-\t\t\taddr.addr_bytes[2], addr.addr_bytes[3],\n-\t\t\taddr.addr_bytes[4], addr.addr_bytes[5]);\n+\t\t\tport, RTE_ETHER_ADDR_BYTES(&addr));\n \n \t/* Enable RX in promiscuous mode for the Ethernet device. */\n \tretval = rte_eth_promiscuous_enable(port);\ndiff --git a/examples/vhost/main.c b/examples/vhost/main.c\nindex a27bc957d0..91a61595d1 100644\n--- a/examples/vhost/main.c\n+++ b/examples/vhost/main.c\n@@ -369,14 +369,8 @@ port_init(uint16_t port)\n \n \tRTE_LOG(INFO, VHOST_PORT, \"Max virtio devices supported: %u\\n\", num_devices);\n \tRTE_LOG(INFO, VHOST_PORT, \"Port %u MAC: %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\n-\t\t\t\" %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\"\\n\",\n-\t\t\tport,\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[0],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[1],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[2],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[3],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[4],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[5]);\n+\t\t\" %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\"\\n\",\n+\t\tport, RTE_ETHER_ADDR_BYTES(&vmdq_ports_eth_addr[port]));\n \n \treturn 0;\n }\n@@ -779,10 +773,7 @@ link_vmdq(struct vhost_dev *vdev, struct rte_mbuf *m)\n \t/* Print out VMDQ registration info. */\n \tRTE_LOG(INFO, VHOST_DATA,\n \t\t\"(%d) mac \" RTE_ETHER_ADDR_PRT_FMT \" and vlan %d registered\\n\",\n-\t\tvdev->vid,\n-\t\tvdev->mac_address.addr_bytes[0], vdev->mac_address.addr_bytes[1],\n-\t\tvdev->mac_address.addr_bytes[2], vdev->mac_address.addr_bytes[3],\n-\t\tvdev->mac_address.addr_bytes[4], vdev->mac_address.addr_bytes[5],\n+\t\tvdev->vid, RTE_ETHER_ADDR_BYTES(&vdev->mac_address),\n \t\tvdev->vlan_tag);\n \n \t/* Register the MAC address. */\ndiff --git a/examples/vm_power_manager/channel_monitor.c b/examples/vm_power_manager/channel_monitor.c\nindex 99f81544d7..f03102eb1b 100644\n--- a/examples/vm_power_manager/channel_monitor.c\n+++ b/examples/vm_power_manager/channel_monitor.c\n@@ -124,9 +124,7 @@ set_policy_mac(struct rte_power_channel_packet *pkt, int idx, char *mac)\n \n \tprintf(\"Received MAC Address: %02\" PRIx8 \":%02\" PRIx8 \":%02\" PRIx8 \":\"\n \t\t\t\"%02\" PRIx8 \":%02\" PRIx8 \":%02\" PRIx8 \"\\n\",\n-\t\t\tpfid.addr.addr_bytes[0], pfid.addr.addr_bytes[1],\n-\t\t\tpfid.addr.addr_bytes[2], pfid.addr.addr_bytes[3],\n-\t\t\tpfid.addr.addr_bytes[4], pfid.addr.addr_bytes[5]);\n+\t\t\tRTE_ETHER_ADDR_BYTES(&pfid.addr));\n \n \tpkt->vfid[idx] = pfid.pfid;\n \treturn 0;\ndiff --git a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c\nindex 0bf5774ffc..94bfbbaf78 100644\n--- a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c\n+++ b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c\n@@ -62,10 +62,7 @@ set_policy_mac(int port, int idx)\n \n \tprintf(\"Port %u MAC: %02\" PRIx8 \":%02\" PRIx8 \":%02\" PRIx8 \":\"\n \t\t\t\"%02\" PRIx8 \":%02\" PRIx8 \":%02\" PRIx8 \"\\n\",\n-\t\t\tport,\n-\t\t\tpfid.addr.addr_bytes[0], pfid.addr.addr_bytes[1],\n-\t\t\tpfid.addr.addr_bytes[2], pfid.addr.addr_bytes[3],\n-\t\t\tpfid.addr.addr_bytes[4], pfid.addr.addr_bytes[5]);\n+\t\t\tport, RTE_ETHER_ADDR_BYTES(&pfid.addr));\n \tpolicy = get_policy();\n \tpolicy->vfid[idx] = pfid.pfid;\n \treturn 0;\ndiff --git a/examples/vm_power_manager/main.c b/examples/vm_power_manager/main.c\nindex 7d5bf68554..e59fb7d347 100644\n--- a/examples/vm_power_manager/main.c\n+++ b/examples/vm_power_manager/main.c\n@@ -121,10 +121,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)\n \n \tprintf(\"Port %u MAC: %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8\n \t\t\t   \" %02\" PRIx8 \" %02\" PRIx8 \" %02\" PRIx8 \"\\n\",\n-\t\t\t(unsigned int)port,\n-\t\t\taddr.addr_bytes[0], addr.addr_bytes[1],\n-\t\t\taddr.addr_bytes[2], addr.addr_bytes[3],\n-\t\t\taddr.addr_bytes[4], addr.addr_bytes[5]);\n+\t\t\t(unsigned int)port, RTE_ETHER_ADDR_BYTES(&addr));\n \n \t/* Enable RX in promiscuous mode for the Ethernet device. */\n \tretval = rte_eth_promiscuous_enable(port);\ndiff --git a/examples/vmdq/main.c b/examples/vmdq/main.c\nindex 4b646b9263..755dcafa2f 100644\n--- a/examples/vmdq/main.c\n+++ b/examples/vmdq/main.c\n@@ -317,12 +317,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)\n \tprintf(\"Port %u MAC: %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\n \t\t\t\" %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\"\\n\",\n \t\t\t(unsigned)port,\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[0],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[1],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[2],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[3],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[4],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[5]);\n+\t\t\tRTE_ETHER_ADDR_BYTES(&vmdq_ports_eth_addr[port]));\n \n \t/*\n \t * Set mac for each pool.\n@@ -335,10 +330,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)\n \t\tmac.addr_bytes[4] = port;\n \t\tmac.addr_bytes[5] = q;\n \t\tprintf(\"Port %u vmdq pool %u set mac \" RTE_ETHER_ADDR_PRT_FMT \"\\n\",\n-\t\t\tport, q,\n-\t\t\tmac.addr_bytes[0], mac.addr_bytes[1],\n-\t\t\tmac.addr_bytes[2], mac.addr_bytes[3],\n-\t\t\tmac.addr_bytes[4], mac.addr_bytes[5]);\n+\t\t\tport, q, RTE_ETHER_ADDR_BYTES(&mac));\n \t\tretval = rte_eth_dev_mac_addr_add(port, &mac,\n \t\t\t\tq + vmdq_pool_base);\n \t\tif (retval) {\ndiff --git a/examples/vmdq_dcb/main.c b/examples/vmdq_dcb/main.c\nindex f6532387f1..6d3c918d6d 100644\n--- a/examples/vmdq_dcb/main.c\n+++ b/examples/vmdq_dcb/main.c\n@@ -345,12 +345,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)\n \tprintf(\"Port %u MAC: %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\n \t\t\t\" %02\"PRIx8\" %02\"PRIx8\" %02\"PRIx8\"\\n\",\n \t\t\t(unsigned)port,\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[0],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[1],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[2],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[3],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[4],\n-\t\t\tvmdq_ports_eth_addr[port].addr_bytes[5]);\n+\t\t\tRTE_ETHER_ADDR_BYTES(&vmdq_ports_eth_addr[port]));\n \n \t/* Set mac for each pool. 8< */\n \tfor (q = 0; q < num_pools; q++) {\n@@ -360,10 +355,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)\n \t\tmac.addr_bytes[4] = port;\n \t\tmac.addr_bytes[5] = q;\n \t\tprintf(\"Port %u vmdq pool %u set mac \" RTE_ETHER_ADDR_PRT_FMT \"\\n\",\n-\t\t\tport, q,\n-\t\t\tmac.addr_bytes[0], mac.addr_bytes[1],\n-\t\t\tmac.addr_bytes[2], mac.addr_bytes[3],\n-\t\t\tmac.addr_bytes[4], mac.addr_bytes[5]);\n+\t\t\tport, q, RTE_ETHER_ADDR_BYTES(&mac));\n \t\tretval = rte_eth_dev_mac_addr_add(port, &mac,\n \t\t\t\tq + vmdq_pool_base);\n \t\tif (retval) {\ndiff --git a/lib/net/rte_ether.h b/lib/net/rte_ether.h\nindex 9935da2800..c4a4847cc0 100644\n--- a/lib/net/rte_ether.h\n+++ b/lib/net/rte_ether.h\n@@ -225,6 +225,15 @@ rte_ether_addr_copy(const struct rte_ether_addr *__restrict ea_from,\n  * Macro to print six-bytes of MAC address in hex format\n  */\n #define RTE_ETHER_ADDR_PRT_FMT     \"%02x:%02x:%02x:%02x:%02x:%02x\"\n+/**\n+ * Macro to extract the MAC address bytes from rte_ether_addr struct\n+ */\n+#define RTE_ETHER_ADDR_BYTES(mac_addrs) ((mac_addrs)->addr_bytes[0]), \\\n+\t\t\t\t\t ((mac_addrs)->addr_bytes[1]), \\\n+\t\t\t\t\t ((mac_addrs)->addr_bytes[2]), \\\n+\t\t\t\t\t ((mac_addrs)->addr_bytes[3]), \\\n+\t\t\t\t\t ((mac_addrs)->addr_bytes[4]), \\\n+\t\t\t\t\t ((mac_addrs)->addr_bytes[5])\n \n #define RTE_ETHER_ADDR_FMT_SIZE         18\n /**\n",
    "prefixes": [
        "v2",
        "2/2"
    ]
}