#endif
/** Flow Tunnel (FT) SW entry ID */
-typedef uint8_t sfc_ft_id_t;
+typedef uint8_t sfc_ft_ctx_id_t;
-#define SFC_FT_TUNNEL_MARK_BITS \
- (sizeof(sfc_ft_id_t) * CHAR_BIT)
+#define SFC_FT_CTX_MARK_BITS \
+ (sizeof(sfc_ft_ctx_id_t) * CHAR_BIT)
#define SFC_FT_USER_MARK_BITS \
- (sizeof(uint32_t) * CHAR_BIT - SFC_FT_TUNNEL_MARK_BITS)
+ (sizeof(uint32_t) * CHAR_BIT - SFC_FT_CTX_MARK_BITS)
#define SFC_FT_USER_MARK_MASK \
RTE_LEN2MASK(SFC_FT_USER_MARK_BITS, uint32_t)
-#define SFC_FT_GET_TUNNEL_MARK(_mark) \
- ((_mark) >> SFC_FT_USER_MARK_BITS)
+#define SFC_FT_FLOW_MARK_TO_CTX_MARK(_flow_mark) \
+ ((_flow_mark) >> SFC_FT_USER_MARK_BITS)
-#define SFC_FT_TUNNEL_MARK_INVALID (0)
+#define SFC_FT_CTX_MARK_INVALID (0)
-#define SFC_FT_TUNNEL_MARK_TO_ID(_tunnel_mark) \
- ((_tunnel_mark) - 1)
+#define SFC_FT_CTX_MARK_TO_CTX_ID(_ctx_mark) \
+ ((_ctx_mark) - 1)
-#define SFC_FT_ID_TO_TUNNEL_MARK(_id) \
- ((_id) + 1)
+#define SFC_FT_CTX_ID_TO_CTX_MARK(_ctx_id) \
+ ((_ctx_id) + 1)
-#define SFC_FT_ID_TO_MARK(_id) \
- (SFC_FT_ID_TO_TUNNEL_MARK(_id) << SFC_FT_USER_MARK_BITS)
+#define SFC_FT_CTX_ID_TO_FLOW_MARK(_ctx_id) \
+ (SFC_FT_CTX_ID_TO_CTX_MARK(_ctx_id) << SFC_FT_USER_MARK_BITS)
-#define SFC_FT_GET_USER_MARK(_mark) \
- ((_mark) & SFC_FT_USER_MARK_MASK)
+#define SFC_FT_FLOW_MARK_TO_USER_MARK(_flow_mark) \
+ ((_flow_mark) & SFC_FT_USER_MARK_MASK)
#define SFC_FT_MAX_NTUNNELS \
- (RTE_LEN2MASK(SFC_FT_TUNNEL_MARK_BITS, uint8_t) - 1)
+ (RTE_LEN2MASK(SFC_FT_CTX_MARK_BITS, uint8_t) - 1)
-struct sfc_flow_tunnel {
- bool jump_rule_is_set;
+struct sfc_ft_ctx {
+ bool tunnel_rule_is_set;
efx_tunnel_protocol_t encap_type;
- struct rte_flow_tunnel rte_tunnel;
+ struct rte_flow_tunnel tunnel;
unsigned int refcnt;
- sfc_ft_id_t id;
+ sfc_ft_ctx_id_t id;
struct rte_flow_action_mark action_mark;
struct rte_flow_action action;
struct rte_flow_item_mark item_mark_m;
struct rte_flow_item item;
- uint64_t reset_jump_hit_counter;
- uint64_t group_hit_counter;
+ uint64_t reset_tunnel_hit_counter;
+ uint64_t switch_hit_counter;
};
struct sfc_adapter;
-bool sfc_flow_tunnel_is_supported(struct sfc_adapter *sa);
+bool sfc_ft_is_supported(struct sfc_adapter *sa);
-bool sfc_flow_tunnel_is_active(struct sfc_adapter *sa);
+bool sfc_ft_is_active(struct sfc_adapter *sa);
-struct sfc_flow_tunnel *sfc_flow_tunnel_pick(struct sfc_adapter *sa,
- uint32_t ft_mark);
+struct sfc_ft_ctx *sfc_ft_ctx_pick(struct sfc_adapter *sa, uint32_t flow_mark);
-int sfc_flow_tunnel_detect_jump_rule(struct sfc_adapter *sa,
- const struct rte_flow_action *actions,
- struct sfc_flow_spec_mae *spec,
- struct rte_flow_error *error);
+int sfc_ft_tunnel_rule_detect(struct sfc_adapter *sa,
+ const struct rte_flow_action *actions,
+ struct sfc_flow_spec_mae *spec,
+ struct rte_flow_error *error);
-int sfc_flow_tunnel_decap_set(struct rte_eth_dev *dev,
- struct rte_flow_tunnel *tunnel,
- struct rte_flow_action **pmd_actions,
- uint32_t *num_of_actions,
- struct rte_flow_error *err);
+int sfc_ft_decap_set(struct rte_eth_dev *dev, struct rte_flow_tunnel *tunnel,
+ struct rte_flow_action **pmd_actions,
+ uint32_t *num_of_actions, struct rte_flow_error *err);
-int sfc_flow_tunnel_match(struct rte_eth_dev *dev,
- struct rte_flow_tunnel *tunnel,
- struct rte_flow_item **pmd_items,
- uint32_t *num_of_items,
- struct rte_flow_error *err);
+int sfc_ft_match(struct rte_eth_dev *dev, struct rte_flow_tunnel *tunnel,
+ struct rte_flow_item **pmd_items, uint32_t *num_of_items,
+ struct rte_flow_error *err);
-int sfc_flow_tunnel_item_release(struct rte_eth_dev *dev,
- struct rte_flow_item *pmd_items,
- uint32_t num_items,
- struct rte_flow_error *err);
+int sfc_ft_item_release(struct rte_eth_dev *dev,
+ struct rte_flow_item *pmd_items, uint32_t num_items,
+ struct rte_flow_error *err);
-int sfc_flow_tunnel_action_decap_release(struct rte_eth_dev *dev,
- struct rte_flow_action *pmd_actions,
- uint32_t num_actions,
- struct rte_flow_error *err);
+int sfc_ft_action_decap_release(struct rte_eth_dev *dev,
+ struct rte_flow_action *pmd_actions,
+ uint32_t num_actions,
+ struct rte_flow_error *err);
-int sfc_flow_tunnel_get_restore_info(struct rte_eth_dev *dev,
- struct rte_mbuf *m,
- struct rte_flow_restore_info *info,
- struct rte_flow_error *err);
+int sfc_ft_get_restore_info(struct rte_eth_dev *dev, struct rte_mbuf *m,
+ struct rte_flow_restore_info *info,
+ struct rte_flow_error *err);
-void sfc_flow_tunnel_reset_hit_counters(struct sfc_adapter *sa);
+void sfc_ft_counters_reset(struct sfc_adapter *sa);
#ifdef __cplusplus
}