diff options
author | Alok Mishra <almishra@marvell.com> | 2024-06-24 15:56:16 +0500 |
---|---|---|
committer | Damjan Marion <dmarion@0xa5.net> | 2024-07-15 17:13:57 +0000 |
commit | 9bff049b84c15813dcd70c03895bc627444778bf (patch) | |
tree | f6920cffe69d87f03efe01aa64c7c43d3aa4dd9e /src | |
parent | 34fa0ce8f70a341df432b0baa3deaa1e87c71b95 (diff) |
octeon: fix link down issue
An issue is noticed when the link state of the ethernet interface is
toggled to down and again brought up. The link status shows "up" in the
"show interface", but shows "down" in "show hardware-interface".
This issue does not occur when the link is brought up for the first
time, but only manifests when the interface is brought down and up again.
This happens because the device status and VNET_HW_INTERFACE_FLAG_LINK_UP
aren't correctly updated during the port stop, preventing them from
being updated during the port start.
This patch fixes this issue in the port stop function.
Type: fix
Fixes: 01fe7ab88e
Signed-off-by: Alok Mishra <almishra@marvell.com>
Change-Id: Idbc5a6c31409a3d1c5b19e14a3c9509291175677
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/dev_octeon/port.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/plugins/dev_octeon/port.c b/src/plugins/dev_octeon/port.c index 8ba9041f858..e2402fb9399 100644 --- a/src/plugins/dev_octeon/port.c +++ b/src/plugins/dev_octeon/port.c @@ -393,6 +393,18 @@ oct_port_stop (vlib_main_t *vm, vnet_dev_port_t *port) foreach_vnet_dev_port_tx_queue (q, port) oct_txq_stop (vm, q); + + vnet_dev_port_state_change (vm, port, + (vnet_dev_port_state_changes_t){ + .change.link_state = 1, + .change.link_speed = 1, + .link_speed = 0, + .link_state = 0, + }); + + /* Update the device status */ + cd->status = 0; + cd->speed = 0; } vnet_dev_rv_t |