mirror of https://github.com/F-Stack/f-stack.git
54 lines
1.4 KiB
C
54 lines
1.4 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(c) 2001-2021 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _ICE_PARSER_RT_H_
|
|
#define _ICE_PARSER_RT_H_
|
|
|
|
struct ice_parser_ctx;
|
|
|
|
#define ICE_PARSER_MAX_PKT_LEN 504
|
|
#define ICE_PARSER_GPR_NUM 128
|
|
#define ICE_PARSER_HDR_BUF_LEN 32
|
|
#define ICE_PARSER_BST_KEY_LEN 20
|
|
#define ICE_PARSER_MARKER_NUM_IN_BYTES 9 /* 72 bits */
|
|
#define ICE_PARSER_PROTO_NUM 256
|
|
|
|
struct ice_gpr_pu {
|
|
/* flag to indicate if GRP needs to be updated */
|
|
bool gpr_val_upd[ICE_PARSER_GPR_NUM];
|
|
u16 gpr_val[ICE_PARSER_GPR_NUM];
|
|
u64 flg_msk;
|
|
u64 flg_val;
|
|
u16 err_msk;
|
|
u16 err_val;
|
|
};
|
|
|
|
struct ice_parser_rt {
|
|
struct ice_parser *psr;
|
|
u16 gpr[ICE_PARSER_GPR_NUM];
|
|
u8 pkt_buf[ICE_PARSER_MAX_PKT_LEN + ICE_PARSER_HDR_BUF_LEN];
|
|
u16 pkt_len;
|
|
u16 po;
|
|
u8 bst_key[ICE_PARSER_BST_KEY_LEN];
|
|
struct ice_pg_cam_key pg_key;
|
|
struct ice_alu *alu0;
|
|
struct ice_alu *alu1;
|
|
struct ice_alu *alu2;
|
|
struct ice_pg_cam_action *action;
|
|
u8 pg;
|
|
struct ice_gpr_pu pu;
|
|
u8 markers[ICE_PARSER_MARKER_NUM_IN_BYTES];
|
|
bool protocols[ICE_PARSER_PROTO_NUM];
|
|
u16 offsets[ICE_PARSER_PROTO_NUM];
|
|
};
|
|
|
|
void ice_parser_rt_reset(struct ice_parser_rt *rt);
|
|
void ice_parser_rt_pktbuf_set(struct ice_parser_rt *rt, const u8 *pkt_buf,
|
|
int pkt_len);
|
|
|
|
struct ice_parser_result;
|
|
enum ice_status ice_parser_rt_execute(struct ice_parser_rt *rt,
|
|
struct ice_parser_result *rslt);
|
|
#endif /* _ICE_PARSER_RT_H_ */
|