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_cmd_ctx; 19 extern cmdline_parse_inst_t ethdev_help_cmd_ctx; 20 21 struct ipv4_addr_config { 22 uint32_t ip; 23 uint32_t mask; 24 }; 25 26 struct ipv6_addr_config { 27 uint8_t ip[ETHDEV_IPV6_ADDR_LEN]; 28 uint8_t mask[ETHDEV_IPV6_ADDR_LEN]; 29 }; 30 31 extern uint32_t enabled_port_mask; 32 33 void ethdev_start(void); 34 void ethdev_stop(void); 35 void *ethdev_mempool_list_by_portid(uint16_t portid); 36 int16_t ethdev_portid_by_ip4(uint32_t ip, uint32_t mask); 37 int16_t ethdev_portid_by_ip6(uint8_t *ip, uint8_t *mask); 38 void ethdev_list_clean(void); 39 40 #endif 41