diff options
author | hselasky <hselasky@FreeBSD.org> | 2016-09-23 08:17:51 +0000 |
---|---|---|
committer | hselasky <hselasky@FreeBSD.org> | 2016-09-23 08:17:51 +0000 |
commit | c09479e02ec36fee071c973614c3aff982640196 (patch) | |
tree | 20197bbaf460d7bed237ae57b4adac1a04996cac /sys/dev/mlx5/mlx5_en | |
parent | 2db9387ac81b5c39996bd69f4d8e7d8d8ffcc4f5 (diff) | |
download | FreeBSD-src-c09479e02ec36fee071c973614c3aff982640196.zip FreeBSD-src-c09479e02ec36fee071c973614c3aff982640196.tar.gz |
MFC r305867:
Update the MLX5 core module:
- Add new firmware commands and update existing ones.
- Add more firmware related structures and update existing ones.
- Some minor fixes, like adding missing \n to some prints.
Sponsored by: Mellanox Technologies
Diffstat (limited to 'sys/dev/mlx5/mlx5_en')
-rw-r--r-- | sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c | 10 | ||||
-rw-r--r-- | sys/dev/mlx5/mlx5_en/mlx5_en_main.c | 15 |
2 files changed, 16 insertions, 9 deletions
diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c b/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c index a0dcd2d..88bd3fd 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c @@ -472,7 +472,7 @@ mlx5e_add_vlan_rule(struct mlx5e_priv *priv, match_criteria_enable = MLX5_MATCH_OUTER_HEADERS; MLX5_SET_TO_ONES(fte_match_param, match_criteria, - outer_headers.vlan_tag); + outer_headers.cvlan_tag); switch (rule_type) { case MLX5E_VLAN_RULE_TYPE_UNTAGGED: @@ -480,12 +480,12 @@ mlx5e_add_vlan_rule(struct mlx5e_priv *priv, break; case MLX5E_VLAN_RULE_TYPE_ANY_VID: ft_ix = &priv->vlan.any_vlan_rule_ft_ix; - MLX5_SET(fte_match_param, match_value, outer_headers.vlan_tag, + MLX5_SET(fte_match_param, match_value, outer_headers.cvlan_tag, 1); break; default: /* MLX5E_VLAN_RULE_TYPE_MATCH_VID */ ft_ix = &priv->vlan.active_vlans_ft_ix[vid]; - MLX5_SET(fte_match_param, match_value, outer_headers.vlan_tag, + MLX5_SET(fte_match_param, match_value, outer_headers.cvlan_tag, 1); MLX5_SET_TO_ONES(fte_match_param, match_criteria, outer_headers.first_vid); @@ -945,7 +945,7 @@ mlx5e_create_vlan_flow_table(struct mlx5e_priv *priv) g[0].log_sz = 12; g[0].match_criteria_enable = MLX5_MATCH_OUTER_HEADERS; MLX5_SET_TO_ONES(fte_match_param, g[0].match_criteria, - outer_headers.vlan_tag); + outer_headers.cvlan_tag); MLX5_SET_TO_ONES(fte_match_param, g[0].match_criteria, outer_headers.first_vid); @@ -953,7 +953,7 @@ mlx5e_create_vlan_flow_table(struct mlx5e_priv *priv) g[1].log_sz = 1; g[1].match_criteria_enable = MLX5_MATCH_OUTER_HEADERS; MLX5_SET_TO_ONES(fte_match_param, g[1].match_criteria, - outer_headers.vlan_tag); + outer_headers.cvlan_tag); priv->ft.vlan = mlx5_create_flow_table(priv->mdev, 0, MLX5_FLOW_TABLE_TYPE_NIC_RCV, diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c index 2136567..0a73b95 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c @@ -181,7 +181,7 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) u8 i; port_state = mlx5_query_vport_state(mdev, - MLX5_QUERY_VPORT_STATE_IN_OP_MOD_VNIC_VPORT); + MLX5_QUERY_VPORT_STATE_IN_OP_MOD_VNIC_VPORT, 0); if (port_state == VPORT_STATE_UP) { priv->media_status_last |= IFM_ACTIVE; @@ -2235,6 +2235,7 @@ mlx5e_open_locked(struct ifnet *ifp) { struct mlx5e_priv *priv = ifp->if_softc; int err; + u16 set_id; /* check if already opened */ if (test_bit(MLX5E_STATE_OPENED, &priv->state) != 0) @@ -2253,13 +2254,17 @@ mlx5e_open_locked(struct ifnet *ifp) __func__, err); return (err); } - err = mlx5_vport_alloc_q_counter(priv->mdev, &priv->counter_set_id); + err = mlx5_vport_alloc_q_counter(priv->mdev, + MLX5_INTERFACE_PROTOCOL_ETH, &set_id); if (err) { if_printf(priv->ifp, "%s: mlx5_vport_alloc_q_counter failed: %d\n", __func__, err); goto err_close_tises; } + /* store counter set ID */ + priv->counter_set_id = set_id; + err = mlx5e_open_channels(priv); if (err) { if_printf(ifp, "%s: mlx5e_open_channels failed, %d\n", @@ -2310,7 +2315,8 @@ err_close_channels: mlx5e_close_channels(priv); err_dalloc_q_counter: - mlx5_vport_dealloc_q_counter(priv->mdev, priv->counter_set_id); + mlx5_vport_dealloc_q_counter(priv->mdev, + MLX5_INTERFACE_PROTOCOL_ETH, priv->counter_set_id); err_close_tises: mlx5e_close_tises(priv); @@ -2352,7 +2358,8 @@ mlx5e_close_locked(struct ifnet *ifp) mlx5e_close_tirs(priv); mlx5e_close_rqt(priv); mlx5e_close_channels(priv); - mlx5_vport_dealloc_q_counter(priv->mdev, priv->counter_set_id); + mlx5_vport_dealloc_q_counter(priv->mdev, + MLX5_INTERFACE_PROTOCOL_ETH, priv->counter_set_id); mlx5e_close_tises(priv); return (0); |