CNDP  22.08.0
ip4_rewrite_priv.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright (c) 2020 Marvell International Ltd.
3  */
4 #ifndef __INCLUDE_IP4_REWRITE_PRIV_H__
5 #define __INCLUDE_IP4_REWRITE_PRIV_H__
6 
7 #include <net/ethernet.h>
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 #include <cne_common.h>
14 
15 #define CNE_GRAPH_IP4_REWRITE_MAX_NH 64
16 #define CNE_GRAPH_IP4_REWRITE_MAX_LEN 56
17 
24 struct ip4_rewrite_nh_header {
25  uint16_t rewrite_len;
26  uint16_t tx_node;
27  uint16_t enabled;
28  uint16_t rsvd;
29  union {
30  struct {
31  struct ether_addr dst;
33  struct ether_addr src;
35  };
36  uint8_t rewrite_data[CNE_GRAPH_IP4_REWRITE_MAX_LEN];
38  };
39 };
40 
46 struct ip4_rewrite_node_main {
47  struct ip4_rewrite_nh_header nh[CNE_GRAPH_IP4_REWRITE_MAX_NH];
49  uint16_t next_index[CNE_MAX_ETHPORTS];
51 };
52 
61 struct cne_node_register *ip4_rewrite_node_get(void);
62 
73 int ip4_rewrite_set_next(uint16_t port_id, uint16_t next_index);
74 
75 #ifdef __cplusplus
76 }
77 #endif
78 
79 #endif /* __INCLUDE_IP4_REWRITE_PRIV_H__ */