1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2023 Marvell. 3 */ 4 5 #ifndef APP_GRAPH_ETHDEV_H 6 #define APP_GRAPH_ETHDEV_H 7 8 #include <cmdline_parse.h> 9 10 #define ETHDEV_IPV6_ADDR_LEN 16 11 12 extern cmdline_parse_inst_t ethdev_show_cmd_ctx; 13 extern cmdline_parse_inst_t ethdev_stats_cmd_ctx; 14 extern cmdline_parse_inst_t ethdev_mtu_cmd_ctx; 15 extern cmdline_parse_inst_t ethdev_prom_mode_cmd_ctx; 16 extern cmdline_parse_inst_t ethdev_ip4_cmd_ctx; 17 extern cmdline_parse_inst_t ethdev_ip6_cmd_ctx; 18 extern cmdline_parse_inst_t ethdev_forward_cmd_ctx; 19 extern cmdline_parse_inst_t ethdev_cmd_ctx; 20 extern cmdline_parse_inst_t ethdev_help_cmd_ctx; 21 22 struct ipv4_addr_config { 23 uint32_t ip; 24 uint32_t mask; 25 }; 26 27 struct ipv6_addr_config { 28 uint8_t ip[ETHDEV_IPV6_ADDR_LEN]; 29 uint8_t mask[ETHDEV_IPV6_ADDR_LEN]; 30 }; 31 32 extern uint32_t enabled_port_mask; 33 34 void ethdev_start(void); 35 void ethdev_stop(void); 36 void *ethdev_mempool_list_by_portid(uint16_t portid); 37 int16_t ethdev_portid_by_ip4(uint32_t ip, uint32_t mask); 38 int16_t ethdev_portid_by_ip6(uint8_t *ip, uint8_t *mask); 39 int16_t ethdev_txport_by_rxport_get(uint16_t portid_rx); 40 void ethdev_list_clean(void); 41 42 #endif 43