Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
a512807c
K
Kernel
项目概览
openeuler
/
Kernel
大约 2 年 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
a512807c
编写于
12月 30, 2022
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge tag 'mlx5-fixes-2022-12-28' of
git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
mlx5-fixes-2022-12-28
上级
d530ece7
4d1c1379
变更
16
显示空白变更内容
内联
并排
Showing
16 changed file
with
104 addition
and
28 deletion
+104
-28
drivers/net/ethernet/mellanox/mlx5/core/devlink.c
drivers/net/ethernet/mellanox/mlx5/core/devlink.c
+2
-2
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c
+5
-1
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c
+1
-6
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
+8
-1
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_geneve.c
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_geneve.c
+5
-0
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+1
-1
drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c
...ers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c
+6
-1
drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c
...rs/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c
+28
-5
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
+21
-9
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
+6
-0
drivers/net/ethernet/mellanox/mlx5/core/health.c
drivers/net/ethernet/mellanox/mlx5/core/health.c
+6
-0
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
+4
-0
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
+1
-0
drivers/net/ethernet/mellanox/mlx5/core/main.c
drivers/net/ethernet/mellanox/mlx5/core/main.c
+3
-1
include/linux/mlx5/device.h
include/linux/mlx5/device.h
+5
-0
include/linux/mlx5/mlx5_ifc.h
include/linux/mlx5/mlx5_ifc.h
+2
-1
未找到文件。
drivers/net/ethernet/mellanox/mlx5/core/devlink.c
浏览文件 @
a512807c
...
...
@@ -468,7 +468,7 @@ static int mlx5_devlink_enable_roce_validate(struct devlink *devlink, u32 id,
bool
new_state
=
val
.
vbool
;
if
(
new_state
&&
!
MLX5_CAP_GEN
(
dev
,
roce
)
&&
!
MLX5_CAP_GEN
(
dev
,
roce_rw_supported
))
{
!
(
MLX5_CAP_GEN
(
dev
,
roce_rw_supported
)
&&
MLX5_CAP_GEN_MAX
(
dev
,
roce
)
))
{
NL_SET_ERR_MSG_MOD
(
extack
,
"Device doesn't support RoCE"
);
return
-
EOPNOTSUPP
;
}
...
...
@@ -563,7 +563,7 @@ static int mlx5_devlink_eq_depth_validate(struct devlink *devlink, u32 id,
union
devlink_param_value
val
,
struct
netlink_ext_ack
*
extack
)
{
return
(
val
.
vu
16
>=
64
&&
val
.
vu16
<=
4096
)
?
0
:
-
EINVAL
;
return
(
val
.
vu
32
>=
64
&&
val
.
vu32
<=
4096
)
?
0
:
-
EINVAL
;
}
static
const
struct
devlink_param
mlx5_devlink_params
[]
=
{
...
...
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c
浏览文件 @
a512807c
...
...
@@ -459,7 +459,11 @@ static int mlx5e_rx_reporter_diagnose(struct devlink_health_reporter *reporter,
goto
unlock
;
for
(
i
=
0
;
i
<
priv
->
channels
.
num
;
i
++
)
{
struct
mlx5e_rq
*
rq
=
&
priv
->
channels
.
c
[
i
]
->
rq
;
struct
mlx5e_channel
*
c
=
priv
->
channels
.
c
[
i
];
struct
mlx5e_rq
*
rq
;
rq
=
test_bit
(
MLX5E_CHANNEL_STATE_XSK
,
c
->
state
)
?
&
c
->
xskrq
:
&
c
->
rq
;
err
=
mlx5e_rx_reporter_build_diagnose_output
(
rq
,
fmsg
);
if
(
err
)
...
...
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c
浏览文件 @
a512807c
...
...
@@ -2103,14 +2103,9 @@ mlx5_tc_ct_init_check_support(struct mlx5e_priv *priv,
static
void
mlx5_ct_tc_create_dbgfs
(
struct
mlx5_tc_ct_priv
*
ct_priv
)
{
bool
is_fdb
=
ct_priv
->
ns_type
==
MLX5_FLOW_NAMESPACE_FDB
;
struct
mlx5_tc_ct_debugfs
*
ct_dbgfs
=
&
ct_priv
->
debugfs
;
char
dirname
[
16
]
=
{};
if
(
sscanf
(
dirname
,
"ct_%s"
,
is_fdb
?
"fdb"
:
"nic"
)
<
0
)
return
;
ct_dbgfs
->
root
=
debugfs_create_dir
(
dirname
,
mlx5_debugfs_get_dev_root
(
ct_priv
->
dev
));
ct_dbgfs
->
root
=
debugfs_create_dir
(
"ct"
,
mlx5_debugfs_get_dev_root
(
ct_priv
->
dev
));
debugfs_create_atomic_t
(
"offloaded"
,
0400
,
ct_dbgfs
->
root
,
&
ct_dbgfs
->
stats
.
offloaded
);
debugfs_create_atomic_t
(
"rx_dropped"
,
0400
,
ct_dbgfs
->
root
,
...
...
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
浏览文件 @
a512807c
...
...
@@ -222,7 +222,7 @@ void mlx5e_tc_encap_flows_del(struct mlx5e_priv *priv,
int
err
;
list_for_each_entry
(
flow
,
flow_list
,
tmp_list
)
{
if
(
!
mlx5e_is_offloaded_flow
(
flow
)
||
flow_flag_test
(
flow
,
SLOW
)
)
if
(
!
mlx5e_is_offloaded_flow
(
flow
))
continue
;
attr
=
mlx5e_tc_get_encap_attr
(
flow
);
...
...
@@ -231,6 +231,13 @@ void mlx5e_tc_encap_flows_del(struct mlx5e_priv *priv,
esw_attr
->
dests
[
flow
->
tmp_entry_index
].
flags
&=
~
MLX5_ESW_DEST_ENCAP_VALID
;
esw_attr
->
dests
[
flow
->
tmp_entry_index
].
pkt_reformat
=
NULL
;
/* Clear pkt_reformat before checking slow path flag. Because
* in next iteration, the same flow is already set slow path
* flag, but still need to clear the pkt_reformat.
*/
if
(
flow_flag_test
(
flow
,
SLOW
))
continue
;
/* update from encap rule to slow path rule */
spec
=
&
flow
->
attr
->
parse_attr
->
spec
;
rule
=
mlx5e_tc_offload_to_slow_path
(
esw
,
flow
,
spec
);
...
...
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_geneve.c
浏览文件 @
a512807c
...
...
@@ -273,6 +273,11 @@ static int mlx5e_tc_tun_parse_geneve_options(struct mlx5e_priv *priv,
geneve_tlv_option_0_data
,
be32_to_cpu
(
opt_data_key
));
MLX5_SET
(
fte_match_set_misc3
,
misc_3_c
,
geneve_tlv_option_0_data
,
be32_to_cpu
(
opt_data_mask
));
if
(
MLX5_CAP_ESW_FLOWTABLE_FDB
(
priv
->
mdev
,
ft_field_support
.
geneve_tlv_option_0_exist
))
{
MLX5_SET_TO_ONES
(
fte_match_set_misc
,
misc_c
,
geneve_tlv_option_0_exist
);
MLX5_SET_TO_ONES
(
fte_match_set_misc
,
misc_v
,
geneve_tlv_option_0_exist
);
}
spec
->
match_criteria_enable
|=
MLX5_MATCH_MISC_PARAMETERS_3
;
...
...
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
浏览文件 @
a512807c
...
...
@@ -1305,7 +1305,7 @@ static int mlx5e_alloc_xdpsq(struct mlx5e_channel *c,
sq
->
channel
=
c
;
sq
->
uar_map
=
mdev
->
mlx5e_res
.
hw_objs
.
bfreg
.
map
;
sq
->
min_inline_mode
=
params
->
tx_min_inline_mode
;
sq
->
hw_mtu
=
MLX5E_SW2HW_MTU
(
params
,
params
->
sw_mtu
);
sq
->
hw_mtu
=
MLX5E_SW2HW_MTU
(
params
,
params
->
sw_mtu
)
-
ETH_FCS_LEN
;
sq
->
xsk_pool
=
xsk_pool
;
sq
->
stats
=
sq
->
xsk_pool
?
...
...
drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c
浏览文件 @
a512807c
...
...
@@ -67,6 +67,7 @@ static void esw_acl_egress_lgcy_groups_destroy(struct mlx5_vport *vport)
int
esw_acl_egress_lgcy_setup
(
struct
mlx5_eswitch
*
esw
,
struct
mlx5_vport
*
vport
)
{
bool
vst_mode_steering
=
esw_vst_mode_is_steering
(
esw
);
struct
mlx5_flow_destination
drop_ctr_dst
=
{};
struct
mlx5_flow_destination
*
dst
=
NULL
;
struct
mlx5_fc
*
drop_counter
=
NULL
;
...
...
@@ -77,6 +78,7 @@ int esw_acl_egress_lgcy_setup(struct mlx5_eswitch *esw,
*/
int
table_size
=
2
;
int
dest_num
=
0
;
int
actions_flag
;
int
err
=
0
;
if
(
vport
->
egress
.
legacy
.
drop_counter
)
{
...
...
@@ -119,8 +121,11 @@ int esw_acl_egress_lgcy_setup(struct mlx5_eswitch *esw,
vport
->
vport
,
vport
->
info
.
vlan
,
vport
->
info
.
qos
);
/* Allowed vlan rule */
actions_flag
=
MLX5_FLOW_CONTEXT_ACTION_ALLOW
;
if
(
vst_mode_steering
)
actions_flag
|=
MLX5_FLOW_CONTEXT_ACTION_VLAN_POP
;
err
=
esw_egress_acl_vlan_create
(
esw
,
vport
,
NULL
,
vport
->
info
.
vlan
,
MLX5_FLOW_CONTEXT_ACTION_ALLOW
);
actions_flag
);
if
(
err
)
goto
out
;
...
...
drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c
浏览文件 @
a512807c
...
...
@@ -139,11 +139,14 @@ static void esw_acl_ingress_lgcy_groups_destroy(struct mlx5_vport *vport)
int
esw_acl_ingress_lgcy_setup
(
struct
mlx5_eswitch
*
esw
,
struct
mlx5_vport
*
vport
)
{
bool
vst_mode_steering
=
esw_vst_mode_is_steering
(
esw
);
struct
mlx5_flow_destination
drop_ctr_dst
=
{};
struct
mlx5_flow_destination
*
dst
=
NULL
;
struct
mlx5_flow_act
flow_act
=
{};
struct
mlx5_flow_spec
*
spec
=
NULL
;
struct
mlx5_fc
*
counter
=
NULL
;
bool
vst_check_cvlan
=
false
;
bool
vst_push_cvlan
=
false
;
/* The ingress acl table contains 4 groups
* (2 active rules at the same time -
* 1 allow rule from one of the first 3 groups.
...
...
@@ -203,7 +206,26 @@ int esw_acl_ingress_lgcy_setup(struct mlx5_eswitch *esw,
goto
out
;
}
if
(
vport
->
info
.
vlan
||
vport
->
info
.
qos
)
if
((
vport
->
info
.
vlan
||
vport
->
info
.
qos
))
{
if
(
vst_mode_steering
)
vst_push_cvlan
=
true
;
else
if
(
!
MLX5_CAP_ESW
(
esw
->
dev
,
vport_cvlan_insert_always
))
vst_check_cvlan
=
true
;
}
if
(
vst_check_cvlan
||
vport
->
info
.
spoofchk
)
spec
->
match_criteria_enable
=
MLX5_MATCH_OUTER_HEADERS
;
/* Create ingress allow rule */
flow_act
.
action
=
MLX5_FLOW_CONTEXT_ACTION_ALLOW
;
if
(
vst_push_cvlan
)
{
flow_act
.
action
|=
MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH
;
flow_act
.
vlan
[
0
].
prio
=
vport
->
info
.
qos
;
flow_act
.
vlan
[
0
].
vid
=
vport
->
info
.
vlan
;
flow_act
.
vlan
[
0
].
ethtype
=
ETH_P_8021Q
;
}
if
(
vst_check_cvlan
)
MLX5_SET_TO_ONES
(
fte_match_param
,
spec
->
match_criteria
,
outer_headers
.
cvlan_tag
);
...
...
@@ -218,9 +240,6 @@ int esw_acl_ingress_lgcy_setup(struct mlx5_eswitch *esw,
ether_addr_copy
(
smac_v
,
vport
->
info
.
mac
);
}
/* Create ingress allow rule */
spec
->
match_criteria_enable
=
MLX5_MATCH_OUTER_HEADERS
;
flow_act
.
action
=
MLX5_FLOW_CONTEXT_ACTION_ALLOW
;
vport
->
ingress
.
allow_rule
=
mlx5_add_flow_rules
(
vport
->
ingress
.
acl
,
spec
,
&
flow_act
,
NULL
,
0
);
if
(
IS_ERR
(
vport
->
ingress
.
allow_rule
))
{
...
...
@@ -232,6 +251,9 @@ int esw_acl_ingress_lgcy_setup(struct mlx5_eswitch *esw,
goto
out
;
}
if
(
!
vst_check_cvlan
&&
!
vport
->
info
.
spoofchk
)
goto
out
;
memset
(
&
flow_act
,
0
,
sizeof
(
flow_act
));
flow_act
.
action
=
MLX5_FLOW_CONTEXT_ACTION_DROP
;
/* Attach drop flow counter */
...
...
@@ -257,6 +279,7 @@ int esw_acl_ingress_lgcy_setup(struct mlx5_eswitch *esw,
return
0
;
out:
if
(
err
)
esw_acl_ingress_lgcy_cleanup
(
esw
,
vport
);
kvfree
(
spec
);
return
err
;
...
...
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
浏览文件 @
a512807c
...
...
@@ -161,10 +161,17 @@ static int modify_esw_vport_cvlan(struct mlx5_core_dev *dev, u16 vport,
esw_vport_context
.
vport_cvlan_strip
,
1
);
if
(
set_flags
&
SET_VLAN_INSERT
)
{
if
(
MLX5_CAP_ESW
(
dev
,
vport_cvlan_insert_always
))
{
/* insert either if vlan exist in packet or not */
MLX5_SET
(
modify_esw_vport_context_in
,
in
,
esw_vport_context
.
vport_cvlan_insert
,
MLX5_VPORT_CVLAN_INSERT_ALWAYS
);
}
else
{
/* insert only if no vlan in packet */
MLX5_SET
(
modify_esw_vport_context_in
,
in
,
esw_vport_context
.
vport_cvlan_insert
,
1
);
esw_vport_context
.
vport_cvlan_insert
,
MLX5_VPORT_CVLAN_INSERT_WHEN_NO_CVLAN
);
}
MLX5_SET
(
modify_esw_vport_context_in
,
in
,
esw_vport_context
.
cvlan_pcp
,
qos
);
MLX5_SET
(
modify_esw_vport_context_in
,
in
,
...
...
@@ -809,6 +816,7 @@ static int mlx5_esw_vport_caps_get(struct mlx5_eswitch *esw, struct mlx5_vport *
static
int
esw_vport_setup
(
struct
mlx5_eswitch
*
esw
,
struct
mlx5_vport
*
vport
)
{
bool
vst_mode_steering
=
esw_vst_mode_is_steering
(
esw
);
u16
vport_num
=
vport
->
vport
;
int
flags
;
int
err
;
...
...
@@ -839,6 +847,7 @@ static int esw_vport_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport)
flags
=
(
vport
->
info
.
vlan
||
vport
->
info
.
qos
)
?
SET_VLAN_STRIP
|
SET_VLAN_INSERT
:
0
;
if
(
esw
->
mode
==
MLX5_ESWITCH_OFFLOADS
||
!
vst_mode_steering
)
modify_esw_vport_cvlan
(
esw
->
dev
,
vport_num
,
vport
->
info
.
vlan
,
vport
->
info
.
qos
,
flags
);
...
...
@@ -1848,6 +1857,7 @@ int __mlx5_eswitch_set_vport_vlan(struct mlx5_eswitch *esw,
u16
vport
,
u16
vlan
,
u8
qos
,
u8
set_flags
)
{
struct
mlx5_vport
*
evport
=
mlx5_eswitch_get_vport
(
esw
,
vport
);
bool
vst_mode_steering
=
esw_vst_mode_is_steering
(
esw
);
int
err
=
0
;
if
(
IS_ERR
(
evport
))
...
...
@@ -1855,9 +1865,11 @@ int __mlx5_eswitch_set_vport_vlan(struct mlx5_eswitch *esw,
if
(
vlan
>
4095
||
qos
>
7
)
return
-
EINVAL
;
if
(
esw
->
mode
==
MLX5_ESWITCH_OFFLOADS
||
!
vst_mode_steering
)
{
err
=
modify_esw_vport_cvlan
(
esw
->
dev
,
vport
,
vlan
,
qos
,
set_flags
);
if
(
err
)
return
err
;
}
evport
->
info
.
vlan
=
vlan
;
evport
->
info
.
qos
=
qos
;
...
...
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
浏览文件 @
a512807c
...
...
@@ -527,6 +527,12 @@ int mlx5_eswitch_del_vlan_action(struct mlx5_eswitch *esw,
int
__mlx5_eswitch_set_vport_vlan
(
struct
mlx5_eswitch
*
esw
,
u16
vport
,
u16
vlan
,
u8
qos
,
u8
set_flags
);
static
inline
bool
esw_vst_mode_is_steering
(
struct
mlx5_eswitch
*
esw
)
{
return
(
MLX5_CAP_ESW_EGRESS_ACL
(
esw
->
dev
,
pop_vlan
)
&&
MLX5_CAP_ESW_INGRESS_ACL
(
esw
->
dev
,
push_vlan
));
}
static
inline
bool
mlx5_eswitch_vlan_actions_supported
(
struct
mlx5_core_dev
*
dev
,
u8
vlan_depth
)
{
...
...
drivers/net/ethernet/mellanox/mlx5/core/health.c
浏览文件 @
a512807c
...
...
@@ -674,6 +674,12 @@ static void mlx5_fw_fatal_reporter_err_work(struct work_struct *work)
dev
=
container_of
(
priv
,
struct
mlx5_core_dev
,
priv
);
devlink
=
priv_to_devlink
(
dev
);
mutex_lock
(
&
dev
->
intf_state_mutex
);
if
(
test_bit
(
MLX5_DROP_NEW_HEALTH_WORK
,
&
health
->
flags
))
{
mlx5_core_err
(
dev
,
"health works are not permitted at this stage
\n
"
);
return
;
}
mutex_unlock
(
&
dev
->
intf_state_mutex
);
enter_error_state
(
dev
,
false
);
if
(
IS_ERR_OR_NULL
(
health
->
fw_fatal_reporter
))
{
devl_lock
(
devlink
);
...
...
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
浏览文件 @
a512807c
...
...
@@ -71,6 +71,10 @@ static void mlx5i_build_nic_params(struct mlx5_core_dev *mdev,
params
->
packet_merge
.
type
=
MLX5E_PACKET_MERGE_NONE
;
params
->
hard_mtu
=
MLX5_IB_GRH_BYTES
+
MLX5_IPOIB_HARD_LEN
;
params
->
tunneled_offload_en
=
false
;
/* CQE compression is not supported for IPoIB */
params
->
rx_cqe_compress_def
=
false
;
MLX5E_SET_PFLAG
(
params
,
MLX5E_PFLAG_RX_CQE_COMPRESS
,
params
->
rx_cqe_compress_def
);
}
/* Called directly after IPoIB netdevice was created to initialize SW structs */
...
...
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
浏览文件 @
a512807c
...
...
@@ -228,6 +228,7 @@ static void mlx5_ldev_free(struct kref *ref)
if
(
ldev
->
nb
.
notifier_call
)
unregister_netdevice_notifier_net
(
&
init_net
,
&
ldev
->
nb
);
mlx5_lag_mp_cleanup
(
ldev
);
cancel_delayed_work_sync
(
&
ldev
->
bond_work
);
destroy_workqueue
(
ldev
->
wq
);
mlx5_lag_mpesw_cleanup
(
ldev
);
mutex_destroy
(
&
ldev
->
lock
);
...
...
drivers/net/ethernet/mellanox/mlx5/core/main.c
浏览文件 @
a512807c
...
...
@@ -613,7 +613,7 @@ static int handle_hca_cap(struct mlx5_core_dev *dev, void *set_ctx)
MLX5_SET
(
cmd_hca_cap
,
set_hca_cap
,
num_total_dynamic_vf_msix
,
MLX5_CAP_GEN_MAX
(
dev
,
num_total_dynamic_vf_msix
));
if
(
MLX5_CAP_GEN
(
dev
,
roce_rw_supported
))
if
(
MLX5_CAP_GEN
(
dev
,
roce_rw_supported
)
&&
MLX5_CAP_GEN_MAX
(
dev
,
roce
)
)
MLX5_SET
(
cmd_hca_cap
,
set_hca_cap
,
roce
,
mlx5_is_roce_on
(
dev
));
...
...
@@ -1050,6 +1050,8 @@ static int mlx5_init_once(struct mlx5_core_dev *dev)
err_tables_cleanup:
mlx5_geneve_destroy
(
dev
->
geneve
);
mlx5_vxlan_destroy
(
dev
->
vxlan
);
mlx5_cleanup_clock
(
dev
);
mlx5_cleanup_reserved_gids
(
dev
);
mlx5_cq_debugfs_cleanup
(
dev
);
mlx5_fw_reset_cleanup
(
dev
);
err_events_cleanup:
...
...
include/linux/mlx5/device.h
浏览文件 @
a512807c
...
...
@@ -1090,6 +1090,11 @@ enum {
MLX5_VPORT_ADMIN_STATE_AUTO
=
0x2
,
};
enum
{
MLX5_VPORT_CVLAN_INSERT_WHEN_NO_CVLAN
=
0x1
,
MLX5_VPORT_CVLAN_INSERT_ALWAYS
=
0x3
,
};
enum
{
MLX5_L3_PROT_TYPE_IPV4
=
0
,
MLX5_L3_PROT_TYPE_IPV6
=
1
,
...
...
include/linux/mlx5/mlx5_ifc.h
浏览文件 @
a512807c
...
...
@@ -913,7 +913,8 @@ struct mlx5_ifc_e_switch_cap_bits {
u8
vport_svlan_insert
[
0x1
];
u8
vport_cvlan_insert_if_not_exist
[
0x1
];
u8
vport_cvlan_insert_overwrite
[
0x1
];
u8
reserved_at_5
[
0x2
];
u8
reserved_at_5
[
0x1
];
u8
vport_cvlan_insert_always
[
0x1
];
u8
esw_shared_ingress_acl
[
0x1
];
u8
esw_uplink_ingress_acl
[
0x1
];
u8
root_ft_on_other_esw
[
0x1
];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录