mlxsw: reg: Add support for counters on RATR
In order to add the ability for setting counters on nexthops the RATR register should be extended. Signed-off-by: Arkadi Sharshevsky <arkadis@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c538adb3c6
commit
f4de25fb53
|
@ -4549,6 +4549,27 @@ MLXSW_ITEM32(reg, ratr, ipip_ipv4_udip, 0x18, 0, 32);
|
|||
*/
|
||||
MLXSW_ITEM32(reg, ratr, ipip_ipv6_ptr, 0x1C, 0, 24);
|
||||
|
||||
enum mlxsw_reg_flow_counter_set_type {
|
||||
/* No count */
|
||||
MLXSW_REG_FLOW_COUNTER_SET_TYPE_NO_COUNT = 0x00,
|
||||
/* Count packets and bytes */
|
||||
MLXSW_REG_FLOW_COUNTER_SET_TYPE_PACKETS_BYTES = 0x03,
|
||||
/* Count only packets */
|
||||
MLXSW_REG_FLOW_COUNTER_SET_TYPE_PACKETS = 0x05,
|
||||
};
|
||||
|
||||
/* reg_ratr_counter_set_type
|
||||
* Counter set type for flow counters
|
||||
* Access: RW
|
||||
*/
|
||||
MLXSW_ITEM32(reg, ratr, counter_set_type, 0x28, 24, 8);
|
||||
|
||||
/* reg_ratr_counter_index
|
||||
* Counter index for flow counters
|
||||
* Access: RW
|
||||
*/
|
||||
MLXSW_ITEM32(reg, ratr, counter_index, 0x28, 0, 24);
|
||||
|
||||
static inline void
|
||||
mlxsw_reg_ratr_pack(char *payload,
|
||||
enum mlxsw_reg_ratr_op op, bool valid,
|
||||
|
@ -4576,6 +4597,20 @@ static inline void mlxsw_reg_ratr_ipip4_entry_pack(char *payload, u32 ipv4_udip)
|
|||
mlxsw_reg_ratr_ipip_ipv4_udip_set(payload, ipv4_udip);
|
||||
}
|
||||
|
||||
static inline void mlxsw_reg_ratr_counter_pack(char *payload, u64 counter_index,
|
||||
bool counter_enable)
|
||||
{
|
||||
enum mlxsw_reg_flow_counter_set_type set_type;
|
||||
|
||||
if (counter_enable)
|
||||
set_type = MLXSW_REG_FLOW_COUNTER_SET_TYPE_PACKETS_BYTES;
|
||||
else
|
||||
set_type = MLXSW_REG_FLOW_COUNTER_SET_TYPE_NO_COUNT;
|
||||
|
||||
mlxsw_reg_ratr_counter_index_set(payload, counter_index);
|
||||
mlxsw_reg_ratr_counter_set_type_set(payload, set_type);
|
||||
}
|
||||
|
||||
/* RICNT - Router Interface Counter Register
|
||||
* -----------------------------------------
|
||||
* The RICNT register retrieves per port performance counters
|
||||
|
@ -5297,15 +5332,6 @@ enum mlxsw_reg_rauht_trap_id {
|
|||
*/
|
||||
MLXSW_ITEM32(reg, rauht, trap_id, 0x60, 0, 9);
|
||||
|
||||
enum mlxsw_reg_flow_counter_set_type {
|
||||
/* No count */
|
||||
MLXSW_REG_FLOW_COUNTER_SET_TYPE_NO_COUNT = 0x00,
|
||||
/* Count packets and bytes */
|
||||
MLXSW_REG_FLOW_COUNTER_SET_TYPE_PACKETS_BYTES = 0x03,
|
||||
/* Count only packets */
|
||||
MLXSW_REG_FLOW_COUNTER_SET_TYPE_PACKETS = 0x05,
|
||||
};
|
||||
|
||||
/* reg_rauht_counter_set_type
|
||||
* Counter set type for flow counters
|
||||
* Access: RW
|
||||
|
|
Loading…
Reference in New Issue