Skip to content

Commit f36221e

Browse files
committed
Merge branch 'mlxsw-Various-trap-changes-part-1'
Ido Schimmel says: ==================== mlxsw: Various trap changes - part 1 This patch set contains various changes in mlxsw trap configuration. Another set will perform similar changes before exposing control traps (e.g., IGMP query, ARP request) via devlink-trap. Tested with existing devlink-trap selftests. Please see individual patches for a detailed changelog. ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 13209a8 + 154388e commit f36221e

File tree

5 files changed

+40
-44
lines changed

5 files changed

+40
-44
lines changed

drivers/net/ethernet/mellanox/mlxsw/reg.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5531,23 +5531,23 @@ enum mlxsw_reg_htgt_trap_group {
55315531
MLXSW_REG_HTGT_TRAP_GROUP_SP_STP,
55325532
MLXSW_REG_HTGT_TRAP_GROUP_SP_LACP,
55335533
MLXSW_REG_HTGT_TRAP_GROUP_SP_LLDP,
5534-
MLXSW_REG_HTGT_TRAP_GROUP_SP_IGMP,
5534+
MLXSW_REG_HTGT_TRAP_GROUP_SP_MC_SNOOPING,
55355535
MLXSW_REG_HTGT_TRAP_GROUP_SP_BGP,
55365536
MLXSW_REG_HTGT_TRAP_GROUP_SP_OSPF,
55375537
MLXSW_REG_HTGT_TRAP_GROUP_SP_PIM,
55385538
MLXSW_REG_HTGT_TRAP_GROUP_SP_MULTICAST,
5539-
MLXSW_REG_HTGT_TRAP_GROUP_SP_ARP,
5539+
MLXSW_REG_HTGT_TRAP_GROUP_SP_NEIGH_DISCOVERY,
55405540
MLXSW_REG_HTGT_TRAP_GROUP_SP_ROUTER_EXP,
55415541
MLXSW_REG_HTGT_TRAP_GROUP_SP_REMOTE_ROUTE,
55425542
MLXSW_REG_HTGT_TRAP_GROUP_SP_IP2ME,
55435543
MLXSW_REG_HTGT_TRAP_GROUP_SP_DHCP,
55445544
MLXSW_REG_HTGT_TRAP_GROUP_SP_EVENT,
5545-
MLXSW_REG_HTGT_TRAP_GROUP_SP_IPV6_MLD,
55465545
MLXSW_REG_HTGT_TRAP_GROUP_SP_IPV6_ND,
55475546
MLXSW_REG_HTGT_TRAP_GROUP_SP_LBERROR,
55485547
MLXSW_REG_HTGT_TRAP_GROUP_SP_PTP0,
55495548
MLXSW_REG_HTGT_TRAP_GROUP_SP_PTP1,
55505549
MLXSW_REG_HTGT_TRAP_GROUP_SP_VRRP,
5550+
MLXSW_REG_HTGT_TRAP_GROUP_SP_PKT_SAMPLE,
55515551

55525552
__MLXSW_REG_HTGT_TRAP_GROUP_MAX,
55535553
MLXSW_REG_HTGT_TRAP_GROUP_MAX = __MLXSW_REG_HTGT_TRAP_GROUP_MAX - 1

drivers/net/ethernet/mellanox/mlxsw/spectrum.c

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4045,23 +4045,22 @@ static const struct mlxsw_listener mlxsw_sp_listener[] = {
40454045
MLXSW_SP_RXL_NO_MARK(LACP, TRAP_TO_CPU, LACP, true),
40464046
MLXSW_RXL(mlxsw_sp_rx_listener_ptp, LLDP, TRAP_TO_CPU,
40474047
false, SP_LLDP, DISCARD),
4048-
MLXSW_SP_RXL_MARK(DHCP, MIRROR_TO_CPU, DHCP, false),
4049-
MLXSW_SP_RXL_MARK(IGMP_QUERY, MIRROR_TO_CPU, IGMP, false),
4050-
MLXSW_SP_RXL_NO_MARK(IGMP_V1_REPORT, TRAP_TO_CPU, IGMP, false),
4051-
MLXSW_SP_RXL_NO_MARK(IGMP_V2_REPORT, TRAP_TO_CPU, IGMP, false),
4052-
MLXSW_SP_RXL_NO_MARK(IGMP_V2_LEAVE, TRAP_TO_CPU, IGMP, false),
4053-
MLXSW_SP_RXL_NO_MARK(IGMP_V3_REPORT, TRAP_TO_CPU, IGMP, false),
4054-
MLXSW_SP_RXL_MARK(ARPBC, MIRROR_TO_CPU, ARP, false),
4055-
MLXSW_SP_RXL_MARK(ARPUC, MIRROR_TO_CPU, ARP, false),
4048+
MLXSW_SP_RXL_MARK(IGMP_QUERY, MIRROR_TO_CPU, MC_SNOOPING, false),
4049+
MLXSW_SP_RXL_NO_MARK(IGMP_V1_REPORT, TRAP_TO_CPU, MC_SNOOPING, false),
4050+
MLXSW_SP_RXL_NO_MARK(IGMP_V2_REPORT, TRAP_TO_CPU, MC_SNOOPING, false),
4051+
MLXSW_SP_RXL_NO_MARK(IGMP_V2_LEAVE, TRAP_TO_CPU, MC_SNOOPING, false),
4052+
MLXSW_SP_RXL_NO_MARK(IGMP_V3_REPORT, TRAP_TO_CPU, MC_SNOOPING, false),
4053+
MLXSW_SP_RXL_MARK(ARPBC, MIRROR_TO_CPU, NEIGH_DISCOVERY, false),
4054+
MLXSW_SP_RXL_MARK(ARPUC, MIRROR_TO_CPU, NEIGH_DISCOVERY, false),
40564055
MLXSW_SP_RXL_NO_MARK(FID_MISS, TRAP_TO_CPU, IP2ME, false),
4057-
MLXSW_SP_RXL_MARK(IPV6_MLDV12_LISTENER_QUERY, MIRROR_TO_CPU, IPV6_MLD,
4058-
false),
4059-
MLXSW_SP_RXL_NO_MARK(IPV6_MLDV1_LISTENER_REPORT, TRAP_TO_CPU, IPV6_MLD,
4060-
false),
4061-
MLXSW_SP_RXL_NO_MARK(IPV6_MLDV1_LISTENER_DONE, TRAP_TO_CPU, IPV6_MLD,
4062-
false),
4063-
MLXSW_SP_RXL_NO_MARK(IPV6_MLDV2_LISTENER_REPORT, TRAP_TO_CPU, IPV6_MLD,
4056+
MLXSW_SP_RXL_MARK(IPV6_MLDV12_LISTENER_QUERY, MIRROR_TO_CPU,
4057+
MC_SNOOPING, false),
4058+
MLXSW_SP_RXL_NO_MARK(IPV6_MLDV1_LISTENER_REPORT, TRAP_TO_CPU,
4059+
MC_SNOOPING, false),
4060+
MLXSW_SP_RXL_NO_MARK(IPV6_MLDV1_LISTENER_DONE, TRAP_TO_CPU, MC_SNOOPING,
40644061
false),
4062+
MLXSW_SP_RXL_NO_MARK(IPV6_MLDV2_LISTENER_REPORT, TRAP_TO_CPU,
4063+
MC_SNOOPING, false),
40654064
/* L3 traps */
40664065
MLXSW_SP_RXL_L3_MARK(LBERROR, MIRROR_TO_CPU, LBERROR, false),
40674066
MLXSW_SP_RXL_MARK(IP2ME, TRAP_TO_CPU, IP2ME, false),
@@ -4074,18 +4073,19 @@ static const struct mlxsw_listener mlxsw_sp_listener[] = {
40744073
false),
40754074
MLXSW_SP_RXL_MARK(IPV4_OSPF, TRAP_TO_CPU, OSPF, false),
40764075
MLXSW_SP_RXL_MARK(IPV6_OSPF, TRAP_TO_CPU, OSPF, false),
4076+
MLXSW_SP_RXL_MARK(IPV4_DHCP, TRAP_TO_CPU, DHCP, false),
40774077
MLXSW_SP_RXL_MARK(IPV6_DHCP, TRAP_TO_CPU, DHCP, false),
40784078
MLXSW_SP_RXL_MARK(RTR_INGRESS0, TRAP_TO_CPU, REMOTE_ROUTE, false),
40794079
MLXSW_SP_RXL_MARK(IPV4_BGP, TRAP_TO_CPU, BGP, false),
40804080
MLXSW_SP_RXL_MARK(IPV6_BGP, TRAP_TO_CPU, BGP, false),
40814081
MLXSW_SP_RXL_MARK(L3_IPV6_ROUTER_SOLICITATION, TRAP_TO_CPU, IPV6_ND,
40824082
false),
4083-
MLXSW_SP_RXL_MARK(L3_IPV6_ROUTER_ADVERTISMENT, TRAP_TO_CPU, IPV6_ND,
4084-
false),
4085-
MLXSW_SP_RXL_MARK(L3_IPV6_NEIGHBOR_SOLICITATION, TRAP_TO_CPU, IPV6_ND,
4086-
false),
4087-
MLXSW_SP_RXL_MARK(L3_IPV6_NEIGHBOR_ADVERTISMENT, TRAP_TO_CPU, IPV6_ND,
4083+
MLXSW_SP_RXL_MARK(L3_IPV6_ROUTER_ADVERTISEMENT, TRAP_TO_CPU, IPV6_ND,
40884084
false),
4085+
MLXSW_SP_RXL_MARK(L3_IPV6_NEIGHBOR_SOLICITATION, TRAP_TO_CPU,
4086+
NEIGH_DISCOVERY, false),
4087+
MLXSW_SP_RXL_MARK(L3_IPV6_NEIGHBOR_ADVERTISEMENT, TRAP_TO_CPU,
4088+
NEIGH_DISCOVERY, false),
40894089
MLXSW_SP_RXL_MARK(L3_IPV6_REDIRECTION, TRAP_TO_CPU, IPV6_ND, false),
40904090
MLXSW_SP_RXL_MARK(IPV6_MC_LINK_LOCAL_DEST, TRAP_TO_CPU, ROUTER_EXP,
40914091
false),
@@ -4103,7 +4103,7 @@ static const struct mlxsw_listener mlxsw_sp_listener[] = {
41034103
ROUTER_EXP, false),
41044104
/* PKT Sample trap */
41054105
MLXSW_RXL(mlxsw_sp_rx_listener_sample_func, PKT_SAMPLE, MIRROR_TO_CPU,
4106-
false, SP_IP2ME, DISCARD),
4106+
false, SP_PKT_SAMPLE, DISCARD),
41074107
/* ACL trap */
41084108
MLXSW_SP_RXL_NO_MARK(ACL0, TRAP_TO_CPU, IP2ME, false),
41094109
/* Multicast Router Traps */
@@ -4112,8 +4112,9 @@ static const struct mlxsw_listener mlxsw_sp_listener[] = {
41124112
MLXSW_SP_RXL_MARK(ACL1, TRAP_TO_CPU, MULTICAST, false),
41134113
MLXSW_SP_RXL_L3_MARK(ACL2, TRAP_TO_CPU, MULTICAST, false),
41144114
/* NVE traps */
4115-
MLXSW_SP_RXL_MARK(NVE_ENCAP_ARP, TRAP_TO_CPU, ARP, false),
4116-
MLXSW_SP_RXL_NO_MARK(NVE_DECAP_ARP, TRAP_TO_CPU, ARP, false),
4115+
MLXSW_SP_RXL_MARK(NVE_ENCAP_ARP, TRAP_TO_CPU, NEIGH_DISCOVERY, false),
4116+
MLXSW_SP_RXL_NO_MARK(NVE_DECAP_ARP, TRAP_TO_CPU, NEIGH_DISCOVERY,
4117+
false),
41174118
/* PTP traps */
41184119
MLXSW_RXL(mlxsw_sp_rx_listener_ptp, PTP0, TRAP_TO_CPU,
41194120
false, SP_PTP0, DISCARD),
@@ -4152,17 +4153,16 @@ static int mlxsw_sp_cpu_policers_set(struct mlxsw_core *mlxsw_core)
41524153
case MLXSW_REG_HTGT_TRAP_GROUP_SP_OSPF:
41534154
case MLXSW_REG_HTGT_TRAP_GROUP_SP_PIM:
41544155
case MLXSW_REG_HTGT_TRAP_GROUP_SP_LBERROR:
4156+
case MLXSW_REG_HTGT_TRAP_GROUP_SP_DHCP:
41554157
rate = 128;
41564158
burst_size = 7;
41574159
break;
4158-
case MLXSW_REG_HTGT_TRAP_GROUP_SP_IGMP:
4159-
case MLXSW_REG_HTGT_TRAP_GROUP_SP_IPV6_MLD:
4160+
case MLXSW_REG_HTGT_TRAP_GROUP_SP_MC_SNOOPING:
41604161
rate = 16 * 1024;
41614162
burst_size = 10;
41624163
break;
41634164
case MLXSW_REG_HTGT_TRAP_GROUP_SP_BGP:
4164-
case MLXSW_REG_HTGT_TRAP_GROUP_SP_ARP:
4165-
case MLXSW_REG_HTGT_TRAP_GROUP_SP_DHCP:
4165+
case MLXSW_REG_HTGT_TRAP_GROUP_SP_NEIGH_DISCOVERY:
41664166
case MLXSW_REG_HTGT_TRAP_GROUP_SP_ROUTER_EXP:
41674167
case MLXSW_REG_HTGT_TRAP_GROUP_SP_REMOTE_ROUTE:
41684168
case MLXSW_REG_HTGT_TRAP_GROUP_SP_IPV6_ND:
@@ -4231,19 +4231,18 @@ static int mlxsw_sp_trap_groups_set(struct mlxsw_core *mlxsw_core)
42314231
tc = 5;
42324232
break;
42334233
case MLXSW_REG_HTGT_TRAP_GROUP_SP_BGP:
4234-
case MLXSW_REG_HTGT_TRAP_GROUP_SP_DHCP:
42354234
priority = 4;
42364235
tc = 4;
42374236
break;
4238-
case MLXSW_REG_HTGT_TRAP_GROUP_SP_IGMP:
4237+
case MLXSW_REG_HTGT_TRAP_GROUP_SP_MC_SNOOPING:
42394238
case MLXSW_REG_HTGT_TRAP_GROUP_SP_IP2ME:
4240-
case MLXSW_REG_HTGT_TRAP_GROUP_SP_IPV6_MLD:
42414239
priority = 3;
42424240
tc = 3;
42434241
break;
4244-
case MLXSW_REG_HTGT_TRAP_GROUP_SP_ARP:
4242+
case MLXSW_REG_HTGT_TRAP_GROUP_SP_NEIGH_DISCOVERY:
42454243
case MLXSW_REG_HTGT_TRAP_GROUP_SP_IPV6_ND:
42464244
case MLXSW_REG_HTGT_TRAP_GROUP_SP_PTP1:
4245+
case MLXSW_REG_HTGT_TRAP_GROUP_SP_DHCP:
42474246
priority = 2;
42484247
tc = 2;
42494248
break;
@@ -4253,9 +4252,10 @@ static int mlxsw_sp_trap_groups_set(struct mlxsw_core *mlxsw_core)
42534252
priority = 1;
42544253
tc = 1;
42554254
break;
4255+
case MLXSW_REG_HTGT_TRAP_GROUP_SP_PKT_SAMPLE:
42564256
case MLXSW_REG_HTGT_TRAP_GROUP_SP_LBERROR:
42574257
priority = 0;
4258-
tc = 1;
4258+
tc = 0;
42594259
break;
42604260
case MLXSW_REG_HTGT_TRAP_GROUP_SP_EVENT:
42614261
priority = MLXSW_REG_HTGT_DEFAULT_PRIORITY;

drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,7 @@ static const struct mlxsw_sp_sb_cm mlxsw_sp2_sb_cms_egress[] = {
614614
#define MLXSW_SP_CPU_PORT_SB_CM MLXSW_SP_SB_CM(0, 0, MLXSW_SP_SB_POOL_EGR_CPU)
615615

616616
static const struct mlxsw_sp_sb_cm mlxsw_sp_cpu_port_sb_cms[] = {
617-
MLXSW_SP_CPU_PORT_SB_CM,
617+
MLXSW_SP_SB_CM(1000, 8, MLXSW_SP_SB_POOL_EGR_CPU),
618618
MLXSW_SP_SB_CM(1000, 8, MLXSW_SP_SB_POOL_EGR_CPU),
619619
MLXSW_SP_SB_CM(1000, 8, MLXSW_SP_SB_POOL_EGR_CPU),
620620
MLXSW_SP_SB_CM(1000, 8, MLXSW_SP_SB_POOL_EGR_CPU),

drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ struct mlxsw_sp_trap_group_item {
2121
struct devlink_trap_group group;
2222
u16 hw_group_id;
2323
u8 priority;
24-
u8 tc;
2524
};
2625

2726
#define MLXSW_SP_TRAP_LISTENERS_MAX 3
@@ -207,25 +206,21 @@ static const struct mlxsw_sp_trap_group_item mlxsw_sp_trap_group_items_arr[] = {
207206
.group = DEVLINK_TRAP_GROUP_GENERIC(L2_DROPS, 1),
208207
.hw_group_id = MLXSW_REG_HTGT_TRAP_GROUP_SP_L2_DISCARDS,
209208
.priority = 0,
210-
.tc = 1,
211209
},
212210
{
213211
.group = DEVLINK_TRAP_GROUP_GENERIC(L3_DROPS, 1),
214212
.hw_group_id = MLXSW_REG_HTGT_TRAP_GROUP_SP_L3_DISCARDS,
215213
.priority = 0,
216-
.tc = 1,
217214
},
218215
{
219216
.group = DEVLINK_TRAP_GROUP_GENERIC(TUNNEL_DROPS, 1),
220217
.hw_group_id = MLXSW_REG_HTGT_TRAP_GROUP_SP_TUNNEL_DISCARDS,
221218
.priority = 0,
222-
.tc = 1,
223219
},
224220
{
225221
.group = DEVLINK_TRAP_GROUP_GENERIC(ACL_DROPS, 1),
226222
.hw_group_id = MLXSW_REG_HTGT_TRAP_GROUP_SP_ACL_DISCARDS,
227223
.priority = 0,
228-
.tc = 1,
229224
},
230225
};
231226

@@ -865,7 +860,7 @@ __mlxsw_sp_trap_group_init(struct mlxsw_core *mlxsw_core,
865860
}
866861

867862
mlxsw_reg_htgt_pack(htgt_pl, group_item->hw_group_id, hw_policer_id,
868-
group_item->priority, group_item->tc);
863+
group_item->priority, group_item->priority);
869864
return mlxsw_reg_write(mlxsw_core, MLXSW_REG(htgt), htgt_pl);
870865
}
871866

drivers/net/ethernet/mellanox/mlxsw/trap.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,11 @@ enum {
5555
MLXSW_TRAP_ID_IPV4_BGP = 0x88,
5656
MLXSW_TRAP_ID_IPV6_BGP = 0x89,
5757
MLXSW_TRAP_ID_L3_IPV6_ROUTER_SOLICITATION = 0x8A,
58-
MLXSW_TRAP_ID_L3_IPV6_ROUTER_ADVERTISMENT = 0x8B,
58+
MLXSW_TRAP_ID_L3_IPV6_ROUTER_ADVERTISEMENT = 0x8B,
5959
MLXSW_TRAP_ID_L3_IPV6_NEIGHBOR_SOLICITATION = 0x8C,
60-
MLXSW_TRAP_ID_L3_IPV6_NEIGHBOR_ADVERTISMENT = 0x8D,
60+
MLXSW_TRAP_ID_L3_IPV6_NEIGHBOR_ADVERTISEMENT = 0x8D,
6161
MLXSW_TRAP_ID_L3_IPV6_REDIRECTION = 0x8E,
62+
MLXSW_TRAP_ID_IPV4_DHCP = 0x8F,
6263
MLXSW_TRAP_ID_HOST_MISS_IPV4 = 0x90,
6364
MLXSW_TRAP_ID_IPV6_MC_LINK_LOCAL_DEST = 0x91,
6465
MLXSW_TRAP_ID_HOST_MISS_IPV6 = 0x92,

0 commit comments

Comments
 (0)