get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 11733,
    "url": "https://patches.dpdk.org/api/patches/11733/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1458934950-23333-2-git-send-email-thomas.monjalon@6wind.com/",
    "project": {
        "id": 1,
        "url": "https://patches.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": "<1458934950-23333-2-git-send-email-thomas.monjalon@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1458934950-23333-2-git-send-email-thomas.monjalon@6wind.com",
    "date": "2016-03-25T19:42:23",
    "name": "[dpdk-dev,v12,1/8] ethdev: use constants for link state",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "3ea1a11c57b52505fe6f19992b8342c667fa67e9",
    "submitter": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/people/1/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas.monjalon@6wind.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1458934950-23333-2-git-send-email-thomas.monjalon@6wind.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/11733/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/11733/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 9BF5856A2;\n\tFri, 25 Mar 2016 20:44:37 +0100 (CET)",
            "from mail-wm0-f43.google.com (mail-wm0-f43.google.com\n\t[74.125.82.43]) by dpdk.org (Postfix) with ESMTP id E16F056A2\n\tfor <dev@dpdk.org>; Fri, 25 Mar 2016 20:44:32 +0100 (CET)",
            "by mail-wm0-f43.google.com with SMTP id l68so27186006wml.0\n\tfor <dev@dpdk.org>; Fri, 25 Mar 2016 12:44:32 -0700 (PDT)",
            "from XPS13.localdomain (91.111.75.86.rev.sfr.net. [86.75.111.91])\n\tby smtp.gmail.com with ESMTPSA id\n\tu4sm13240660wjz.4.2016.03.25.12.44.29\n\t(version=TLSv1/SSLv3 cipher=OTHER);\n\tFri, 25 Mar 2016 12:44:32 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=6wind-com.20150623.gappssmtp.com; s=20150623;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=pXD9YUK2PafwBb5SNsY5EN1qtCDH+etM8sWfsXUB5f8=;\n\tb=zFGQGOeknZ37rch9eIrEsHvO6s4mKJOv9JQkCKM1pK//H8G8lyHVbZ79kBLQuxn3Li\n\tHVSYQnCRBIIImZvHj0kz8We9DVx/2RMixEHESboNPvuUmxUFhGoiKWEFVohMAYQgMGCO\n\thSz/iVP9E+IalMJaPQ3vstHynLplcRnfQjdPHTfmX5a8BrBUm1ivuK/5IS6uUiRgLQbp\n\tZ9/qsP0+0aBLYWcPQwN5oc3ShiVkhS3hofv8DYoPE9tQYfnohxxz34LpyHxvGGxr0RUH\n\tEG7gnXL7eDsGVeo29Nj4qpO6t/L5hbUoOsu2lUhQRxjslw7VSVt8qApImLvCT14zmHfE\n\tof9Q==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=pXD9YUK2PafwBb5SNsY5EN1qtCDH+etM8sWfsXUB5f8=;\n\tb=hGyGR14JqGSFsw6Gk6AZPcS0Wsz7UNqdDXApvsmzDJYrjT9Lad+GBLy8OjqiemtM48\n\taljV96YhXSElUXIrgo4lz6ja1+dttmeIjigwMWrximT5LYUViypwzjLi53SiNB5GYqrS\n\tRXGP6OIkTpe5GRSg0Pkfz3vcMUp5c8v/fyIw4YBKkQqtxO1Ga6NueNHrkoC88QSQ3OAy\n\tHsLvAvPvHcbxdmeMTuDPxDTwyoE/8cCXtAJn655tGby3nwR2Avz5Lp0uf61VuASHm/it\n\tERCjlgrqBiyqfx3ROlBgsnHNHtL7bJeJ/79PKpoPzROKfRt7cEtUXZTe9K9KtgirnAbY\n\txXaQ==",
        "X-Gm-Message-State": "AD7BkJKInNKnDEQ51OSiFlhg3LBbS4M3nNtCLTXjHb4qg75/ieM+bTqe8XPGvvCtMlHxiCFJ",
        "X-Received": "by 10.194.205.103 with SMTP id\n\tlf7mr16417172wjc.147.1458935072752; \n\tFri, 25 Mar 2016 12:44:32 -0700 (PDT)",
        "From": "Thomas Monjalon <thomas.monjalon@6wind.com>",
        "To": "marcdevel@gmail.com, bruce.richardson@intel.com, declan.doherty@intel.com,\n\tkonstantin.ananyev@intel.com, wenzhuo.lu@intel.com,\n\thelin.zhang@intel.com, jing.d.chen@intel.com, harish.patil@qlogic.com,\n\trahul.lakkireddy@chelsio.com, johndale@cisco.com, vido@cesnet.cz,\n\tadrien.mazarguil@6wind.com, alejandro.lucero@netronome.com",
        "Cc": "dev@dpdk.org",
        "Date": "Fri, 25 Mar 2016 20:42:23 +0100",
        "Message-Id": "<1458934950-23333-2-git-send-email-thomas.monjalon@6wind.com>",
        "X-Mailer": "git-send-email 2.7.0",
        "In-Reply-To": "<1458934950-23333-1-git-send-email-thomas.monjalon@6wind.com>",
        "References": "<1458238145-7496-1-git-send-email-thomas.monjalon@6wind.com>\n\t<1458934950-23333-1-git-send-email-thomas.monjalon@6wind.com>",
        "Subject": "[dpdk-dev] [PATCH v12 1/8] ethdev: use constants for link state",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Define and use ETH_LINK_UP and ETH_LINK_DOWN where appropriate.\n\nSigned-off-by: Marc Sune <marcdevel@gmail.com>\nSigned-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>\n---\n app/test-pipeline/init.c                                 |  2 +-\n app/test-pmd/testpmd.c                                   |  2 +-\n app/test/test_pmd_perf.c                                 |  2 +-\n app/test/virtual_pmd.c                                   |  6 +++---\n drivers/net/af_packet/rte_eth_af_packet.c                |  6 +++---\n drivers/net/bnx2x/bnx2x_ethdev.c                         |  2 +-\n drivers/net/bnx2x/elink.c                                |  2 +-\n drivers/net/bonding/rte_eth_bond_api.c                   |  4 ++--\n drivers/net/bonding/rte_eth_bond_pmd.c                   | 12 ++++++------\n drivers/net/e1000/em_ethdev.c                            |  8 ++++----\n drivers/net/e1000/igb_ethdev.c                           |  4 ++--\n drivers/net/fm10k/fm10k_ethdev.c                         |  2 +-\n drivers/net/i40e/i40e_ethdev_vf.c                        |  2 +-\n drivers/net/ixgbe/ixgbe_ethdev.c                         |  4 ++--\n drivers/net/mpipe/mpipe_tilegx.c                         | 12 ++++++------\n drivers/net/nfp/nfp_net.c                                |  2 +-\n drivers/net/null/rte_eth_null.c                          |  6 +++---\n drivers/net/pcap/rte_eth_pcap.c                          |  6 +++---\n drivers/net/ring/rte_eth_ring.c                          | 10 +++++-----\n drivers/net/szedata2/rte_eth_szedata2.c                  |  2 +-\n drivers/net/vhost/rte_eth_vhost.c                        |  6 +++---\n drivers/net/virtio/virtio_ethdev.c                       |  6 +++---\n drivers/net/vmxnet3/vmxnet3_ethdev.c                     |  2 +-\n drivers/net/xenvirt/rte_eth_xenvirt.c                    |  6 +++---\n examples/exception_path/main.c                           |  2 +-\n examples/ip_fragmentation/main.c                         |  2 +-\n examples/ip_pipeline/init.c                              |  2 +-\n examples/ip_reassembly/main.c                            |  2 +-\n examples/ipsec-secgw/ipsec-secgw.c                       |  2 +-\n examples/ipv4_multicast/main.c                           |  2 +-\n examples/kni/main.c                                      |  2 +-\n examples/l2fwd-crypto/main.c                             |  2 +-\n examples/l2fwd-ivshmem/host/host.c                       |  2 +-\n examples/l2fwd-jobstats/main.c                           |  2 +-\n examples/l2fwd-keepalive/main.c                          |  2 +-\n examples/l2fwd/main.c                                    |  2 +-\n examples/l3fwd-acl/main.c                                |  2 +-\n examples/l3fwd-power/main.c                              |  2 +-\n examples/l3fwd/main.c                                    |  2 +-\n examples/link_status_interrupt/main.c                    |  2 +-\n examples/load_balancer/init.c                            |  2 +-\n examples/multi_process/client_server_mp/mp_server/init.c |  2 +-\n examples/multi_process/l2fwd_fork/main.c                 |  2 +-\n examples/multi_process/symmetric_mp/main.c               |  2 +-\n examples/performance-thread/l3fwd-thread/main.c          |  2 +-\n lib/librte_ether/rte_ethdev.h                            |  5 ++++-\n 46 files changed, 83 insertions(+), 80 deletions(-)",
    "diff": "diff --git a/app/test-pipeline/init.c b/app/test-pipeline/init.c\nindex db2196b..aef082f 100644\n--- a/app/test-pipeline/init.c\n+++ b/app/test-pipeline/init.c\n@@ -205,7 +205,7 @@ app_ports_check_link(void)\n \t\t\tlink.link_speed / 1000,\n \t\t\tlink.link_status ? \"UP\" : \"DOWN\");\n \n-\t\tif (link.link_status == 0)\n+\t\tif (link.link_status == ETH_LINK_DOWN)\n \t\t\tall_ports_up = 0;\n \t}\n \ndiff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c\nindex 8605e62..1398c6c 100644\n--- a/app/test-pmd/testpmd.c\n+++ b/app/test-pmd/testpmd.c\n@@ -1641,7 +1641,7 @@ check_all_ports_link_status(uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c\nindex 48e16c9..59803f7 100644\n--- a/app/test/test_pmd_perf.c\n+++ b/app/test/test_pmd_perf.c\n@@ -192,7 +192,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/app/test/virtual_pmd.c b/app/test/virtual_pmd.c\nindex a538c8a..b1d40d7 100644\n--- a/app/test/virtual_pmd.c\n+++ b/app/test/virtual_pmd.c\n@@ -79,7 +79,7 @@ static void  virtual_ethdev_stop(struct rte_eth_dev *eth_dev __rte_unused)\n \tvoid *pkt = NULL;\n \tstruct virtual_ethdev_private *prv = eth_dev->data->dev_private;\n \n-\teth_dev->data->dev_link.link_status = 0;\n+\teth_dev->data->dev_link.link_status = ETH_LINK_DOWN;\n \teth_dev->data->dev_started = 0;\n \twhile (rte_ring_dequeue(prv->rx_queue, &pkt) != -ENOENT)\n \t\trte_pktmbuf_free(pkt);\n@@ -199,7 +199,7 @@ virtual_ethdev_link_update_success(struct rte_eth_dev *bonded_eth_dev,\n \t\tint wait_to_complete __rte_unused)\n {\n \tif (!bonded_eth_dev->data->dev_started)\n-\t\tbonded_eth_dev->data->dev_link.link_status = 0;\n+\t\tbonded_eth_dev->data->dev_link.link_status = ETH_LINK_DOWN;\n \n \treturn 0;\n }\n@@ -603,7 +603,7 @@ virtual_ethdev_create(const char *name, struct ether_addr *mac_addr,\n \n \tTAILQ_INIT(&(eth_dev->link_intr_cbs));\n \n-\teth_dev->data->dev_link.link_status = 0;\n+\teth_dev->data->dev_link.link_status = ETH_LINK_DOWN;\n \teth_dev->data->dev_link.link_speed = ETH_LINK_SPEED_10000;\n \teth_dev->data->dev_link.link_duplex = ETH_LINK_FULL_DUPLEX;\n \ndiff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c\nindex 5544528..dee7b59 100644\n--- a/drivers/net/af_packet/rte_eth_af_packet.c\n+++ b/drivers/net/af_packet/rte_eth_af_packet.c\n@@ -118,7 +118,7 @@ static const char *drivername = \"AF_PACKET PMD\";\n static struct rte_eth_link pmd_link = {\n \t.link_speed = 10000,\n \t.link_duplex = ETH_LINK_FULL_DUPLEX,\n-\t.link_status = 0\n+\t.link_status = ETH_LINK_DOWN,\n };\n \n static uint16_t\n@@ -234,7 +234,7 @@ eth_af_packet_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)\n static int\n eth_dev_start(struct rte_eth_dev *dev)\n {\n-\tdev->data->dev_link.link_status = 1;\n+\tdev->data->dev_link.link_status = ETH_LINK_UP;\n \treturn 0;\n }\n \n@@ -257,7 +257,7 @@ eth_dev_stop(struct rte_eth_dev *dev)\n \t\t\tclose(sockfd);\n \t}\n \n-\tdev->data->dev_link.link_status = 0;\n+\tdev->data->dev_link.link_status = ETH_LINK_DOWN;\n }\n \n static int\ndiff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c\nindex 7e5be08..a3c6c01 100644\n--- a/drivers/net/bnx2x/bnx2x_ethdev.c\n+++ b/drivers/net/bnx2x/bnx2x_ethdev.c\n@@ -266,7 +266,7 @@ bnx2xvf_dev_link_update(struct rte_eth_dev *dev, __rte_unused int wait_to_comple\n \tif (sc->old_bulletin.valid_bitmap & (1 << CHANNEL_DOWN)) {\n \t\tPMD_DRV_LOG(ERR, \"PF indicated channel is down.\"\n \t\t\t\t\"VF device is no longer operational\");\n-\t\tdev->data->dev_link.link_status = 0;\n+\t\tdev->data->dev_link.link_status = ETH_LINK_DOWN;\n \t}\n \n \treturn old_link_status == dev->data->dev_link.link_status ? -1 : 0;\ndiff --git a/drivers/net/bnx2x/elink.c b/drivers/net/bnx2x/elink.c\nindex da2366e..b9149b8 100644\n--- a/drivers/net/bnx2x/elink.c\n+++ b/drivers/net/bnx2x/elink.c\n@@ -6312,7 +6312,7 @@ elink_status_t elink_link_update(struct elink_params * params,\n \tfor (phy_index = ELINK_INT_PHY; phy_index < params->num_phys;\n \t     phy_index++) {\n \t\tphy_vars[phy_index].flow_ctrl = 0;\n-\t\tphy_vars[phy_index].link_status = 0;\n+\t\tphy_vars[phy_index].link_status = ETH_LINK_DOWN;\n \t\tphy_vars[phy_index].line_speed = 0;\n \t\tphy_vars[phy_index].duplex = DUPLEX_FULL;\n \t\tphy_vars[phy_index].phy_link_up = 0;\ndiff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c\nindex d473ac2..e9247b5 100644\n--- a/drivers/net/bonding/rte_eth_bond_api.c\n+++ b/drivers/net/bonding/rte_eth_bond_api.c\n@@ -205,7 +205,7 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id)\n \n \tTAILQ_INIT(&(eth_dev->link_intr_cbs));\n \n-\teth_dev->data->dev_link.link_status = 0;\n+\teth_dev->data->dev_link.link_status = ETH_LINK_DOWN;\n \n \teth_dev->data->mac_addrs = rte_zmalloc_socket(name, ETHER_ADDR_LEN, 0,\n \t\t\tsocket_id);\n@@ -420,7 +420,7 @@ __eth_bond_slave_add_lock_free(uint8_t bonded_port_id, uint8_t slave_port_id)\n \tif (bonded_eth_dev->data->dev_started) {\n \t\trte_eth_link_get_nowait(slave_port_id, &link_props);\n \n-\t\t if (link_props.link_status == 1) {\n+\t\t if (link_props.link_status == ETH_LINK_UP) {\n \t\t\tif (internals->active_slave_count == 0 &&\n \t\t\t    !internals->user_defined_primary_port)\n \t\t\t\tbond_ethdev_primary_set(internals,\ndiff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c\nindex fb26d35..684f285 100644\n--- a/drivers/net/bonding/rte_eth_bond_pmd.c\n+++ b/drivers/net/bonding/rte_eth_bond_pmd.c\n@@ -1506,7 +1506,7 @@ bond_ethdev_start(struct rte_eth_dev *eth_dev)\n \t\treturn -1;\n \t}\n \n-\teth_dev->data->dev_link.link_status = 0;\n+\teth_dev->data->dev_link.link_status = ETH_LINK_DOWN;\n \teth_dev->data->dev_started = 1;\n \n \tinternals = eth_dev->data->dev_private;\n@@ -1623,7 +1623,7 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)\n \tinternals->active_slave_count = 0;\n \tinternals->link_status_polling_enabled = 0;\n \n-\teth_dev->data->dev_link.link_status = 0;\n+\teth_dev->data->dev_link.link_status = ETH_LINK_DOWN;\n \teth_dev->data->dev_started = 0;\n }\n \n@@ -1789,7 +1789,7 @@ bond_ethdev_link_update(struct rte_eth_dev *bonded_eth_dev,\n \n \tif (!bonded_eth_dev->data->dev_started ||\n \t\tinternals->active_slave_count == 0) {\n-\t\tbonded_eth_dev->data->dev_link.link_status = 0;\n+\t\tbonded_eth_dev->data->dev_link.link_status = ETH_LINK_DOWN;\n \t\treturn 0;\n \t} else {\n \t\tstruct rte_eth_dev *slave_eth_dev;\n@@ -1800,7 +1800,7 @@ bond_ethdev_link_update(struct rte_eth_dev *bonded_eth_dev,\n \n \t\t\t(*slave_eth_dev->dev_ops->link_update)(slave_eth_dev,\n \t\t\t\t\twait_to_complete);\n-\t\t\tif (slave_eth_dev->data->dev_link.link_status == 1) {\n+\t\t\tif (slave_eth_dev->data->dev_link.link_status == ETH_LINK_UP) {\n \t\t\t\tlink_up = 1;\n \t\t\t\tbreak;\n \t\t\t}\n@@ -1969,7 +1969,7 @@ bond_ethdev_lsc_event_callback(uint8_t port_id, enum rte_eth_event_type type,\n \t\t/* if no active slave ports then set this port to be primary port */\n \t\tif (internals->active_slave_count < 1) {\n \t\t\t/* If first active slave, then change link status */\n-\t\t\tbonded_eth_dev->data->dev_link.link_status = 1;\n+\t\t\tbonded_eth_dev->data->dev_link.link_status = ETH_LINK_UP;\n \t\t\tinternals->current_primary_port = port_id;\n \t\t\tlsc_flag = 1;\n \n@@ -1997,7 +1997,7 @@ bond_ethdev_lsc_event_callback(uint8_t port_id, enum rte_eth_event_type type,\n \t\t * link properties */\n \t\tif (internals->active_slave_count < 1) {\n \t\t\tlsc_flag = 1;\n-\t\t\tbonded_eth_dev->data->dev_link.link_status = 0;\n+\t\t\tbonded_eth_dev->data->dev_link.link_status = ETH_LINK_DOWN;\n \n \t\t\tlink_properties_reset(bonded_eth_dev);\n \t\t}\ndiff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c\nindex 1f0a7f4..dc9ed38 100644\n--- a/drivers/net/e1000/em_ethdev.c\n+++ b/drivers/net/e1000/em_ethdev.c\n@@ -1101,14 +1101,14 @@ eth_em_link_update(struct rte_eth_dev *dev, int wait_to_complete)\n \told = link;\n \n \t/* Now we check if a transition has happened */\n-\tif (link_check && (link.link_status == 0)) {\n+\tif (link_check && (link.link_status == ETH_LINK_DOWN)) {\n \t\thw->mac.ops.get_link_up_info(hw, &link.link_speed,\n \t\t\t&link.link_duplex);\n-\t\tlink.link_status = 1;\n-\t} else if (!link_check && (link.link_status == 1)) {\n+\t\tlink.link_status = ETH_LINK_UP;\n+\t} else if (!link_check && (link.link_status == ETH_LINK_UP)) {\n \t\tlink.link_speed = 0;\n \t\tlink.link_duplex = 0;\n-\t\tlink.link_status = 0;\n+\t\tlink.link_status = ETH_LINK_DOWN;\n \t}\n \trte_em_dev_atomic_write_link_status(dev, &link);\n \ndiff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c\nindex bd0ae26..045fc63 100644\n--- a/drivers/net/e1000/igb_ethdev.c\n+++ b/drivers/net/e1000/igb_ethdev.c\n@@ -2059,11 +2059,11 @@ eth_igb_link_update(struct rte_eth_dev *dev, int wait_to_complete)\n \tif (link_check) {\n \t\thw->mac.ops.get_link_up_info(hw, &link.link_speed,\n \t\t\t\t\t  &link.link_duplex);\n-\t\tlink.link_status = 1;\n+\t\tlink.link_status = ETH_LINK_UP;\n \t} else if (!link_check) {\n \t\tlink.link_speed = 0;\n \t\tlink.link_duplex = 0;\n-\t\tlink.link_status = 0;\n+\t\tlink.link_status = ETH_LINK_DOWN;\n \t}\n \trte_igb_dev_atomic_write_link_status(dev, &link);\n \ndiff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c\nindex b510487..53aa1bb 100644\n--- a/drivers/net/fm10k/fm10k_ethdev.c\n+++ b/drivers/net/fm10k/fm10k_ethdev.c\n@@ -1249,7 +1249,7 @@ fm10k_link_update(struct rte_eth_dev *dev,\n \t * is no 50Gbps Ethernet. */\n \tdev->data->dev_link.link_speed  = 0;\n \tdev->data->dev_link.link_duplex = ETH_LINK_FULL_DUPLEX;\n-\tdev->data->dev_link.link_status = 1;\n+\tdev->data->dev_link.link_status = ETH_LINK_UP;\n \n \treturn 0;\n }\ndiff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c\nindex a13d9cc..91df13b 100644\n--- a/drivers/net/i40e/i40e_ethdev_vf.c\n+++ b/drivers/net/i40e/i40e_ethdev_vf.c\n@@ -2127,7 +2127,7 @@ i40evf_dev_link_update(struct rte_eth_dev *dev,\n \t\t/* Always assume it's up, for Linux driver PF host */\n \t\tnew_link.link_duplex = ETH_LINK_AUTONEG_DUPLEX;\n \t\tnew_link.link_speed  = ETH_LINK_SPEED_10000;\n-\t\tnew_link.link_status = 1;\n+\t\tnew_link.link_status = ETH_LINK_UP;\n \t}\n \ti40evf_dev_atomic_write_link_status(dev, &new_link);\n \ndiff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c\nindex 5812d10..129f36a 100644\n--- a/drivers/net/ixgbe/ixgbe_ethdev.c\n+++ b/drivers/net/ixgbe/ixgbe_ethdev.c\n@@ -3059,7 +3059,7 @@ ixgbe_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete)\n \tint link_up;\n \tint diag;\n \n-\tlink.link_status = 0;\n+\tlink.link_status = ETH_LINK_DOWN;\n \tlink.link_speed = 0;\n \tlink.link_duplex = 0;\n \tmemset(&old, 0, sizeof(old));\n@@ -3088,7 +3088,7 @@ ixgbe_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete)\n \t\t\treturn -1;\n \t\treturn 0;\n \t}\n-\tlink.link_status = 1;\n+\tlink.link_status = ETH_LINK_UP;\n \tlink.link_duplex = ETH_LINK_FULL_DUPLEX;\n \n \tswitch (link_speed) {\ndiff --git a/drivers/net/mpipe/mpipe_tilegx.c b/drivers/net/mpipe/mpipe_tilegx.c\nindex 7180e5a..d93ab7e 100644\n--- a/drivers/net/mpipe/mpipe_tilegx.c\n+++ b/drivers/net/mpipe/mpipe_tilegx.c\n@@ -397,11 +397,11 @@ mpipe_link_update(struct rte_eth_dev *dev, int wait_to_complete)\n \t\tif (speed == GXIO_MPIPE_LINK_1G) {\n \t\t\tnew.link_speed = ETH_LINK_SPEED_1000;\n \t\t\tnew.link_duplex = ETH_LINK_FULL_DUPLEX;\n-\t\t\tnew.link_status = 1;\n+\t\t\tnew.link_status = ETH_LINK_UP;\n \t\t} else if (speed == GXIO_MPIPE_LINK_10G) {\n \t\t\tnew.link_speed = ETH_LINK_SPEED_10000;\n \t\t\tnew.link_duplex = ETH_LINK_FULL_DUPLEX;\n-\t\t\tnew.link_status = 1;\n+\t\t\tnew.link_status = ETH_LINK_UP;\n \t\t}\n \n \t\trc = mpipe_link_compare(&old, &new);\n@@ -848,9 +848,9 @@ mpipe_start(struct rte_eth_dev *dev)\n \n \t/* Start xmit/recv on queues. */\n \tfor (queue = 0; queue < priv->nb_tx_queues; queue++)\n-\t\tmpipe_tx_queue(priv, queue)->q.link_status = 1;\n+\t\tmpipe_tx_queue(priv, queue)->q.link_status = ETH_LINK_UP;\n \tfor (queue = 0; queue < priv->nb_rx_queues; queue++)\n-\t\tmpipe_rx_queue(priv, queue)->q.link_status = 1;\n+\t\tmpipe_rx_queue(priv, queue)->q.link_status = ETH_LINK_UP;\n \tpriv->running = 1;\n \n \treturn 0;\n@@ -865,9 +865,9 @@ mpipe_stop(struct rte_eth_dev *dev)\n \tint rc;\n \n \tfor (queue = 0; queue < priv->nb_tx_queues; queue++)\n-\t\tmpipe_tx_queue(priv, queue)->q.link_status = 0;\n+\t\tmpipe_tx_queue(priv, queue)->q.link_status = ETH_LINK_DOWN;\n \tfor (queue = 0; queue < priv->nb_rx_queues; queue++)\n-\t\tmpipe_rx_queue(priv, queue)->q.link_status = 0;\n+\t\tmpipe_rx_queue(priv, queue)->q.link_status = ETH_LINK_DOWN;\n \n \t/* Make sure the link_status writes land. */\n \trte_wmb();\ndiff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c\nindex 92ae48a..80dda85 100644\n--- a/drivers/net/nfp/nfp_net.c\n+++ b/drivers/net/nfp/nfp_net.c\n@@ -817,7 +817,7 @@ nfp_net_link_update(struct rte_eth_dev *dev, __rte_unused int wait_to_complete)\n \tmemset(&link, 0, sizeof(struct rte_eth_link));\n \n \tif (nn_link_status & NFP_NET_CFG_STS_LINK)\n-\t\tlink.link_status = 1;\n+\t\tlink.link_status = ETH_LINK_UP;\n \n \tlink.link_duplex = ETH_LINK_FULL_DUPLEX;\n \t/* Other cards can limit the tx and rx rate per VF */\ndiff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c\nindex 1c354ad..6adea91 100644\n--- a/drivers/net/null/rte_eth_null.c\n+++ b/drivers/net/null/rte_eth_null.c\n@@ -91,7 +91,7 @@ static const char *drivername = \"Null PMD\";\n static struct rte_eth_link pmd_link = {\n \t.link_speed = 10000,\n \t.link_duplex = ETH_LINK_FULL_DUPLEX,\n-\t.link_status = 0\n+\t.link_status = ETH_LINK_DOWN,\n };\n \n static uint16_t\n@@ -199,7 +199,7 @@ eth_dev_start(struct rte_eth_dev *dev)\n \tif (dev == NULL)\n \t\treturn -EINVAL;\n \n-\tdev->data->dev_link.link_status = 1;\n+\tdev->data->dev_link.link_status = ETH_LINK_UP;\n \treturn 0;\n }\n \n@@ -209,7 +209,7 @@ eth_dev_stop(struct rte_eth_dev *dev)\n \tif (dev == NULL)\n \t\treturn;\n \n-\tdev->data->dev_link.link_status = 0;\n+\tdev->data->dev_link.link_status = ETH_LINK_DOWN;\n }\n \n static int\ndiff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c\nindex 5202086..b90c725 100644\n--- a/drivers/net/pcap/rte_eth_pcap.c\n+++ b/drivers/net/pcap/rte_eth_pcap.c\n@@ -125,7 +125,7 @@ static const char *drivername = \"Pcap PMD\";\n static struct rte_eth_link pmd_link = {\n \t\t.link_speed = 10000,\n \t\t.link_duplex = ETH_LINK_FULL_DUPLEX,\n-\t\t.link_status = 0\n+\t\t.link_status = ETH_LINK_DOWN,\n };\n \n static int\n@@ -428,7 +428,7 @@ eth_dev_start(struct rte_eth_dev *dev)\n \n status_up:\n \n-\tdev->data->dev_link.link_status = 1;\n+\tdev->data->dev_link.link_status = ETH_LINK_UP;\n \treturn 0;\n }\n \n@@ -479,7 +479,7 @@ eth_dev_stop(struct rte_eth_dev *dev)\n \t}\n \n status_down:\n-\tdev->data->dev_link.link_status = 0;\n+\tdev->data->dev_link.link_status = ETH_LINK_DOWN;\n }\n \n static int\ndiff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c\nindex ba19cd7..4335c6a 100644\n--- a/drivers/net/ring/rte_eth_ring.c\n+++ b/drivers/net/ring/rte_eth_ring.c\n@@ -79,7 +79,7 @@ static const char *drivername = \"Rings PMD\";\n static struct rte_eth_link pmd_link = {\n \t\t.link_speed = 10000,\n \t\t.link_duplex = ETH_LINK_FULL_DUPLEX,\n-\t\t.link_status = 0\n+\t\t.link_status = ETH_LINK_DOWN,\n };\n \n static uint16_t\n@@ -119,27 +119,27 @@ eth_dev_configure(struct rte_eth_dev *dev __rte_unused) { return 0; }\n static int\n eth_dev_start(struct rte_eth_dev *dev)\n {\n-\tdev->data->dev_link.link_status = 1;\n+\tdev->data->dev_link.link_status = ETH_LINK_UP;\n \treturn 0;\n }\n \n static void\n eth_dev_stop(struct rte_eth_dev *dev)\n {\n-\tdev->data->dev_link.link_status = 0;\n+\tdev->data->dev_link.link_status = ETH_LINK_DOWN;\n }\n \n static int\n eth_dev_set_link_down(struct rte_eth_dev *dev)\n {\n-\tdev->data->dev_link.link_status = 0;\n+\tdev->data->dev_link.link_status = ETH_LINK_DOWN;\n \treturn 0;\n }\n \n static int\n eth_dev_set_link_up(struct rte_eth_dev *dev)\n {\n-\tdev->data->dev_link.link_status = 1;\n+\tdev->data->dev_link.link_status = ETH_LINK_UP;\n \treturn 0;\n }\n \ndiff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c\nindex 1d6a600..47aa7e3 100644\n--- a/drivers/net/szedata2/rte_eth_szedata2.c\n+++ b/drivers/net/szedata2/rte_eth_szedata2.c\n@@ -1172,7 +1172,7 @@ eth_link_update(struct rte_eth_dev *dev,\n \tlink.link_duplex = ETH_LINK_FULL_DUPLEX;\n \n \tlink.link_status = (cgmii_ibuf_is_enabled(ibuf) &&\n-\t\t\tcgmii_ibuf_is_link_up(ibuf)) ? 1 : 0;\n+\t\t\tcgmii_ibuf_is_link_up(ibuf)) ? ETH_LINK_UP : ETH_LINK_DOWN;\n \n \trte_atomic64_cmpset((uint64_t *)dev_link, *(uint64_t *)dev_link,\n \t\t\t*(uint64_t *)link_ptr);\ndiff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c\nindex ec19c22..4cc6bec 100644\n--- a/drivers/net/vhost/rte_eth_vhost.c\n+++ b/drivers/net/vhost/rte_eth_vhost.c\n@@ -110,7 +110,7 @@ static pthread_t session_th;\n static struct rte_eth_link pmd_link = {\n \t\t.link_speed = 10000,\n \t\t.link_duplex = ETH_LINK_FULL_DUPLEX,\n-\t\t.link_status = 0\n+\t\t.link_status = ETH_LINK_DOWN\n };\n \n struct rte_vhost_vring_state {\n@@ -265,7 +265,7 @@ new_device(struct virtio_net *dev)\n \n \tdev->flags |= VIRTIO_DEV_RUNNING;\n \tdev->priv = eth_dev;\n-\teth_dev->data->dev_link.link_status = 1;\n+\teth_dev->data->dev_link.link_status = ETH_LINK_UP;\n \n \tfor (i = 0; i < eth_dev->data->nb_rx_queues; i++) {\n \t\tvq = eth_dev->data->rx_queues[i];\n@@ -323,7 +323,7 @@ destroy_device(volatile struct virtio_net *dev)\n \t\t\trte_pause();\n \t}\n \n-\teth_dev->data->dev_link.link_status = 0;\n+\teth_dev->data->dev_link.link_status = ETH_LINK_DOWN;\n \n \tdev->priv = NULL;\n \tdev->flags &= ~VIRTIO_DEV_RUNNING;\ndiff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c\nindex 86c96c9..3ebc221 100644\n--- a/drivers/net/virtio/virtio_ethdev.c\n+++ b/drivers/net/virtio/virtio_ethdev.c\n@@ -1410,16 +1410,16 @@ virtio_dev_link_update(struct rte_eth_dev *dev, __rte_unused int wait_to_complet\n \t\t\t\toffsetof(struct virtio_net_config, status),\n \t\t\t\t&status, sizeof(status));\n \t\tif ((status & VIRTIO_NET_S_LINK_UP) == 0) {\n-\t\t\tlink.link_status = 0;\n+\t\t\tlink.link_status = ETH_LINK_DOWN;\n \t\t\tPMD_INIT_LOG(DEBUG, \"Port %d is down\",\n \t\t\t\t     dev->data->port_id);\n \t\t} else {\n-\t\t\tlink.link_status = 1;\n+\t\t\tlink.link_status = ETH_LINK_UP;\n \t\t\tPMD_INIT_LOG(DEBUG, \"Port %d is up\",\n \t\t\t\t     dev->data->port_id);\n \t\t}\n \t} else {\n-\t\tlink.link_status = 1;   /* Link up */\n+\t\tlink.link_status = ETH_LINK_UP;\n \t}\n \tvirtio_dev_atomic_write_link_status(dev, &link);\n \ndiff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c\nindex f2b6b92..3f26217 100644\n--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c\n+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c\n@@ -777,7 +777,7 @@ vmxnet3_dev_link_update(struct rte_eth_dev *dev, __attribute__((unused)) int wai\n \tret = VMXNET3_READ_BAR1_REG(hw, VMXNET3_REG_CMD);\n \n \tif (ret & 0x1) {\n-\t\tlink.link_status = 1;\n+\t\tlink.link_status = ETH_LINK_UP;\n \t\tlink.link_duplex = ETH_LINK_FULL_DUPLEX;\n \t\tlink.link_speed = ETH_LINK_SPEED_10000;\n \t}\ndiff --git a/drivers/net/xenvirt/rte_eth_xenvirt.c b/drivers/net/xenvirt/rte_eth_xenvirt.c\nindex 3f31806..9453a06 100644\n--- a/drivers/net/xenvirt/rte_eth_xenvirt.c\n+++ b/drivers/net/xenvirt/rte_eth_xenvirt.c\n@@ -72,7 +72,7 @@ static const char *drivername = \"xen virtio PMD\";\n static struct rte_eth_link pmd_link = {\n \t\t.link_speed = 10000,\n \t\t.link_duplex = ETH_LINK_FULL_DUPLEX,\n-\t\t.link_status = 0\n+\t\t.link_status = ETH_LINK_DOWN,\n };\n \n static void\n@@ -290,7 +290,7 @@ eth_dev_start(struct rte_eth_dev *dev)\n \tstruct pmd_internals *pi = (struct pmd_internals *)dev->data->dev_private;\n \tint rv;\n \n-\tdev->data->dev_link.link_status = 1;\n+\tdev->data->dev_link.link_status = ETH_LINK_UP;\n \twhile (!virtqueue_full(rxvq)) {\n \t\tm = rte_rxmbuf_alloc(rxvq->mpool);\n \t\tif (m == NULL)\n@@ -318,7 +318,7 @@ eth_dev_stop(struct rte_eth_dev *dev)\n {\n \tstruct pmd_internals *pi = (struct pmd_internals *)dev->data->dev_private;\n \n-\tdev->data->dev_link.link_status = 0;\n+\tdev->data->dev_link.link_status = ETH_LINK_DOWN;\n \tdev_stop_notify(pi->virtio_idx);\n }\n \ndiff --git a/examples/exception_path/main.c b/examples/exception_path/main.c\nindex b3fe170..bec9804 100644\n--- a/examples/exception_path/main.c\n+++ b/examples/exception_path/main.c\n@@ -485,7 +485,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c\nindex 8021702..81a4918 100644\n--- a/examples/ip_fragmentation/main.c\n+++ b/examples/ip_fragmentation/main.c\n@@ -631,7 +631,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/ip_pipeline/init.c b/examples/ip_pipeline/init.c\nindex e59a6b4..83422e8 100644\n--- a/examples/ip_pipeline/init.c\n+++ b/examples/ip_pipeline/init.c\n@@ -856,7 +856,7 @@ app_check_link(struct app_params *app)\n \t\t\tlink_params.link_speed / 1000,\n \t\t\tlink_params.link_status ? \"UP\" : \"DOWN\");\n \n-\t\tif (link_params.link_status == 0)\n+\t\tif (link_params.link_status == ETH_LINK_DOWN)\n \t\t\tall_links_up = 0;\n \t}\n \ndiff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c\nindex 19ec46c..c27e735 100644\n--- a/examples/ip_reassembly/main.c\n+++ b/examples/ip_reassembly/main.c\n@@ -763,7 +763,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c\nindex d6c9a5d..393f9bd 100644\n--- a/examples/ipsec-secgw/ipsec-secgw.c\n+++ b/examples/ipsec-secgw/ipsec-secgw.c\n@@ -945,7 +945,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c\nindex 5dbea1a..96b4157 100644\n--- a/examples/ipv4_multicast/main.c\n+++ b/examples/ipv4_multicast/main.c\n@@ -642,7 +642,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/kni/main.c b/examples/kni/main.c\nindex 6d434ad..a5297f2 100644\n--- a/examples/kni/main.c\n+++ b/examples/kni/main.c\n@@ -670,7 +670,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c\nindex 5fd4ff1..1c3aaa0 100644\n--- a/examples/l2fwd-crypto/main.c\n+++ b/examples/l2fwd-crypto/main.c\n@@ -1277,7 +1277,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/l2fwd-ivshmem/host/host.c b/examples/l2fwd-ivshmem/host/host.c\nindex 6e6ed5e..4bd7c41 100644\n--- a/examples/l2fwd-ivshmem/host/host.c\n+++ b/examples/l2fwd-ivshmem/host/host.c\n@@ -371,7 +371,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c\nindex d1e9bf7..9f3a77d 100644\n--- a/examples/l2fwd-jobstats/main.c\n+++ b/examples/l2fwd-jobstats/main.c\n@@ -746,7 +746,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c\nindex 94b8677..8da89aa 100644\n--- a/examples/l2fwd-keepalive/main.c\n+++ b/examples/l2fwd-keepalive/main.c\n@@ -499,7 +499,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c\nindex e175681..1ad9488 100644\n--- a/examples/l2fwd/main.c\n+++ b/examples/l2fwd/main.c\n@@ -480,7 +480,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c\nindex 3a895b7..621872f 100644\n--- a/examples/l3fwd-acl/main.c\n+++ b/examples/l3fwd-acl/main.c\n@@ -1858,7 +1858,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c\nindex e7ebe30..5934efe 100644\n--- a/examples/l3fwd-power/main.c\n+++ b/examples/l3fwd-power/main.c\n@@ -1509,7 +1509,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c\nindex e10dab9..5c627e5 100644\n--- a/examples/l3fwd/main.c\n+++ b/examples/l3fwd/main.c\n@@ -769,7 +769,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c\nindex cbc29bc..9981598 100644\n--- a/examples/link_status_interrupt/main.c\n+++ b/examples/link_status_interrupt/main.c\n@@ -523,7 +523,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/load_balancer/init.c b/examples/load_balancer/init.c\nindex a96d778..e07850b 100644\n--- a/examples/load_balancer/init.c\n+++ b/examples/load_balancer/init.c\n@@ -395,7 +395,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/multi_process/client_server_mp/mp_server/init.c b/examples/multi_process/client_server_mp/mp_server/init.c\nindex 1078ffd..ecb61c6 100644\n--- a/examples/multi_process/client_server_mp/mp_server/init.c\n+++ b/examples/multi_process/client_server_mp/mp_server/init.c\n@@ -226,7 +226,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/multi_process/l2fwd_fork/main.c b/examples/multi_process/l2fwd_fork/main.c\nindex aebf531..2dc8b82 100644\n--- a/examples/multi_process/l2fwd_fork/main.c\n+++ b/examples/multi_process/l2fwd_fork/main.c\n@@ -900,7 +900,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c\nindex 72bad54..6bbff07 100644\n--- a/examples/multi_process/symmetric_mp/main.c\n+++ b/examples/multi_process/symmetric_mp/main.c\n@@ -388,7 +388,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/examples/performance-thread/l3fwd-thread/main.c b/examples/performance-thread/l3fwd-thread/main.c\nindex 61c023e..15c0a4d 100644\n--- a/examples/performance-thread/l3fwd-thread/main.c\n+++ b/examples/performance-thread/l3fwd-thread/main.c\n@@ -3408,7 +3408,7 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n-\t\t\tif (link.link_status == 0) {\n+\t\t\tif (link.link_status == ETH_LINK_DOWN) {\n \t\t\t\tall_ports_up = 0;\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h\nindex e7de34a..c5a215a 100644\n--- a/lib/librte_ether/rte_ethdev.h\n+++ b/lib/librte_ether/rte_ethdev.h\n@@ -247,7 +247,7 @@ struct rte_eth_stats {\n struct rte_eth_link {\n \tuint16_t link_speed;      /**< ETH_LINK_SPEED_[10, 100, 1000, 10000] */\n \tuint16_t link_duplex;     /**< ETH_LINK_[HALF_DUPLEX, FULL_DUPLEX] */\n-\tuint8_t  link_status : 1; /**< 1 -> link up, 0 -> link down */\n+\tuint8_t  link_status : 1; /**< ETH_LINK_[DOWN/UP] */\n }__attribute__((aligned(8)));     /**< aligned for atomic64 read/write */\n \n #define ETH_LINK_SPEED_AUTONEG  0       /**< Auto-negotiate link speed. */\n@@ -259,9 +259,12 @@ struct rte_eth_link {\n #define ETH_LINK_SPEED_20G      20000   /**< 20 gigabits/second. */\n #define ETH_LINK_SPEED_40G      40000   /**< 40 gigabits/second. */\n \n+/* Utility constants */\n #define ETH_LINK_AUTONEG_DUPLEX 0       /**< Auto-negotiate duplex. */\n #define ETH_LINK_HALF_DUPLEX    1       /**< Half-duplex connection. */\n #define ETH_LINK_FULL_DUPLEX    2       /**< Full-duplex connection. */\n+#define ETH_LINK_DOWN           0 /**< Link is down. */\n+#define ETH_LINK_UP             1 /**< Link is up. */\n \n /**\n  * A structure used to configure the ring threshold registers of an RX/TX\n",
    "prefixes": [
        "dpdk-dev",
        "v12",
        "1/8"
    ]
}