| .. | .. |
|---|
| 6 | 6 | |
|---|
| 7 | 7 | #include <linux/types.h> |
|---|
| 8 | 8 | #include <linux/netdevice.h> |
|---|
| 9 | +#include <net/flow_offload.h> |
|---|
| 9 | 10 | |
|---|
| 10 | 11 | struct mlxsw_afa; |
|---|
| 11 | 12 | struct mlxsw_afa_block; |
|---|
| .. | .. |
|---|
| 25 | 26 | bool ingress, int *p_span_id); |
|---|
| 26 | 27 | void (*mirror_del)(void *priv, u8 local_in_port, int span_id, |
|---|
| 27 | 28 | bool ingress); |
|---|
| 29 | + int (*policer_add)(void *priv, u64 rate_bytes_ps, u32 burst, |
|---|
| 30 | + u16 *p_policer_index, |
|---|
| 31 | + struct netlink_ext_ack *extack); |
|---|
| 32 | + void (*policer_del)(void *priv, u16 policer_index); |
|---|
| 28 | 33 | bool dummy_first_set; |
|---|
| 29 | 34 | }; |
|---|
| 30 | 35 | |
|---|
| .. | .. |
|---|
| 42 | 47 | int mlxsw_afa_block_continue(struct mlxsw_afa_block *block); |
|---|
| 43 | 48 | int mlxsw_afa_block_jump(struct mlxsw_afa_block *block, u16 group_id); |
|---|
| 44 | 49 | int mlxsw_afa_block_terminate(struct mlxsw_afa_block *block); |
|---|
| 45 | | -int mlxsw_afa_block_append_drop(struct mlxsw_afa_block *block); |
|---|
| 50 | +const struct flow_action_cookie * |
|---|
| 51 | +mlxsw_afa_cookie_lookup(struct mlxsw_afa *mlxsw_afa, u32 cookie_index); |
|---|
| 52 | +int mlxsw_afa_block_append_drop(struct mlxsw_afa_block *block, bool ingress, |
|---|
| 53 | + const struct flow_action_cookie *fa_cookie, |
|---|
| 54 | + struct netlink_ext_ack *extack); |
|---|
| 46 | 55 | int mlxsw_afa_block_append_trap(struct mlxsw_afa_block *block, u16 trap_id); |
|---|
| 47 | 56 | int mlxsw_afa_block_append_trap_and_forward(struct mlxsw_afa_block *block, |
|---|
| 48 | 57 | u16 trap_id); |
|---|
| .. | .. |
|---|
| 57 | 66 | int mlxsw_afa_block_append_vlan_modify(struct mlxsw_afa_block *block, |
|---|
| 58 | 67 | u16 vid, u8 pcp, u8 et, |
|---|
| 59 | 68 | struct netlink_ext_ack *extack); |
|---|
| 69 | +int mlxsw_afa_block_append_qos_switch_prio(struct mlxsw_afa_block *block, |
|---|
| 70 | + u8 prio, |
|---|
| 71 | + struct netlink_ext_ack *extack); |
|---|
| 72 | +int mlxsw_afa_block_append_qos_dsfield(struct mlxsw_afa_block *block, |
|---|
| 73 | + u8 dsfield, |
|---|
| 74 | + struct netlink_ext_ack *extack); |
|---|
| 75 | +int mlxsw_afa_block_append_qos_dscp(struct mlxsw_afa_block *block, |
|---|
| 76 | + u8 dscp, struct netlink_ext_ack *extack); |
|---|
| 77 | +int mlxsw_afa_block_append_qos_ecn(struct mlxsw_afa_block *block, |
|---|
| 78 | + u8 ecn, struct netlink_ext_ack *extack); |
|---|
| 60 | 79 | int mlxsw_afa_block_append_allocated_counter(struct mlxsw_afa_block *block, |
|---|
| 61 | 80 | u32 counter_index); |
|---|
| 62 | 81 | int mlxsw_afa_block_append_counter(struct mlxsw_afa_block *block, |
|---|
| .. | .. |
|---|
| 67 | 86 | int mlxsw_afa_block_append_mcrouter(struct mlxsw_afa_block *block, |
|---|
| 68 | 87 | u16 expected_irif, u16 min_mtu, |
|---|
| 69 | 88 | bool rmid_valid, u32 kvdl_index); |
|---|
| 89 | +int mlxsw_afa_block_append_l4port(struct mlxsw_afa_block *block, bool is_dport, u16 l4_port, |
|---|
| 90 | + struct netlink_ext_ack *extack); |
|---|
| 91 | +int mlxsw_afa_block_append_police(struct mlxsw_afa_block *block, |
|---|
| 92 | + u32 fa_index, u64 rate_bytes_ps, u32 burst, |
|---|
| 93 | + u16 *p_policer_index, |
|---|
| 94 | + struct netlink_ext_ack *extack); |
|---|
| 70 | 95 | |
|---|
| 71 | 96 | #endif |
|---|