.. | .. |
---|
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 |
---|