bcmx.h (4824B)
1 /* 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 6 * 7 * File: bcmx.h 8 * Purpose: 9 */ 10 11 #ifndef _DIAG_BCMX_H_ 12 #define _DIAG_BCMX_H_ 13 14 #include <bcmx/lport.h> 15 #include <bcmx/l2.h> 16 17 #include <bcmx/lplist.h> 18 #include <bcmx/bcmx.h> 19 #include <appl/diag/diag.h> 20 21 #define BCMX_UNIT_ITER(unit, i) \ 22 for (i = 0, unit = bcmx_unit_list[0]; \ 23 i < bcmx_unit_count; \ 24 unit = bcmx_unit_list[++i]) 25 26 extern int bcmx_cmd_cnt; 27 extern cmd_t bcmx_cmd_list[]; 28 extern int bcmx_unit_list[]; 29 30 /* 31 * Uport 32 */ 33 #define BCMX_UPORT_STR_LENGTH_MIN 12 34 #define BCMX_UPORT_STR_LENGTH_DEFAULT BCMX_UPORT_STR_LENGTH_MIN 35 36 extern char * bcmx_lport_to_uport_str(bcmx_lport_t lport); 37 38 typedef void (*bcmx_uport_to_str_f)(bcmx_uport_t uport, char *buf, int len); 39 extern bcmx_uport_to_str_f bcmx_uport_to_str; 40 41 typedef bcmx_uport_t (*bcmx_uport_parse_f)(char *buf, char **end); 42 extern bcmx_uport_parse_f bcmx_uport_parse; 43 44 45 /* In bcmxdiag/util.c */ 46 extern int bcmx_lplist_parse(bcmx_lplist_t *list, char *buf); 47 48 #if defined(INCLUDE_ACL) 49 extern cmd_result_t bcmx_cmd_acl(int unit, args_t *args); 50 extern char bcmx_cmd_acl_usage[]; 51 #endif /* INCLUDE_ACL */ 52 53 #ifdef BCM_FIELD_SUPPORT 54 extern cmd_result_t bcmx_cmd_field(int unit, args_t *args); 55 extern char bcmx_cmd_field_usage[]; 56 #endif 57 58 extern cmd_result_t bcmx_cmd_ipmc(int unit, args_t *args); 59 extern char bcmx_cmd_ipmc_usage[]; 60 61 extern cmd_result_t bcmx_cmd_l2(int unit, args_t *args); 62 extern char bcmx_cmd_l2_usage[]; 63 64 extern void bcmx_dump_l2_addr(char *pfx, bcmx_l2_addr_t *l2addr, 65 bcmx_lplist_t *port_block); 66 67 extern void bcmx_dump_l2_cache_addr(char *pfx, bcmx_l2_cache_addr_t *l2addr); 68 69 extern cmd_result_t bcmx_cmd_l3(int unit, args_t *args); 70 extern char bcmx_cmd_l3_usage[]; 71 72 extern cmd_result_t bcmx_cmd_mcast(int unit, args_t *args); 73 extern char bcmx_cmd_mcast_usage[]; 74 75 extern cmd_result_t bcmx_cmd_mirror(int unit, args_t *args); 76 extern char bcmx_cmd_mirror_usage[]; 77 78 extern cmd_result_t bcmx_cmd_port(int unit, args_t *args); 79 extern char bcmx_cmd_port_usage[]; 80 81 extern cmd_result_t bcmx_cmd_stat(int unit, args_t *args); 82 extern char bcmx_cmd_stat_usage[]; 83 84 extern cmd_result_t bcmx_cmd_trunk(int unit, args_t *args); 85 extern char bcmx_cmd_trunk_usage[]; 86 87 extern cmd_result_t bcmx_cmd_vlan(int unit, args_t *args); 88 extern char bcmx_cmd_vlan_usage[]; 89 90 extern cmd_result_t bcmx_cmd_stg(int unit, args_t *args); 91 extern char bcmx_cmd_stg_usage[]; 92 93 extern cmd_result_t bcmx_cmd_rate(int unit, args_t *args); 94 extern char bcmx_cmd_rate_usage[]; 95 96 extern cmd_result_t bcmx_cmd_link(int unit, args_t *args); 97 extern char bcmx_cmd_link_usage[]; 98 99 extern char bcmx_cmd_tx_usage[]; 100 extern cmd_result_t bcmx_cmd_tx(int unit, args_t *args); 101 102 extern char bcmx_cmd_rx_usage[]; 103 extern cmd_result_t bcmx_cmd_rx(int unit, args_t *args); 104 105 #if 0 106 107 typedef int user_port_t; 108 109 /* For now, we support this many boards in sample configurations */ 110 #define BCMX_BOARDS_MAX 4 111 112 typedef struct bcmx_config_desc_s { 113 int num_entries; 114 int stk_mode; /* How should boards be added? */ 115 bcmx_cfg_params_t *params; 116 bcmx_system_trx_t *trx_funs; /* Translation functions (see above) */ 117 bcmx_dest_route_get_f dest_route_get; 118 char *name; 119 bcmx_cpu_info_t cpu_info[BCMX_BOARDS_MAX]; 120 int exit_units[BCMX_BOARDS_MAX]; /* How to get off board */ 121 int exit_ports[BCMX_BOARDS_MAX]; 122 } bcmx_config_desc_t; 123 124 extern bcmx_config_desc_t bcmx_configs[]; 125 extern int CFG_COUNT; 126 127 extern bcmx_lport_t general_uport_str_to_lport(char *uport_str, char **end); 128 extern bcmx_lport_t general_lport_next(bcmx_lport_t lport); 129 130 /* Commands */ 131 132 extern cmd_result_t bcmx_cmd_mcpu_setup(int unit, args_t *args); 133 extern char bcmx_cmd_mcpu_setup_usage[]; 134 extern cmd_result_t bcmx_cmd_mcpu_start(int unit, args_t *args); 135 extern char bcmx_cmd_mcpu_start_usage[]; 136 137 /* RDP related functions */ 138 extern int bcmx_rdp_client_tx(int cpuid, char *buf, int buf_len); 139 extern void bcmx_rdp_client_rx(uint32 cid, void *data, int length, int s_cpu); 140 extern int bcmx_rdp_server_tx(int cpu, char *buf, int buf_len); 141 extern void bcmx_rdp_server_rx(uint32 clientid, void *data, int length, 142 int s_cpu); 143 extern int bcmx_rdp_send(int cpuid, char *buf, int buf_len, int data_len); 144 145 /* BCMX in a stack */ 146 extern void stack_simplex_bcmx_init(void); 147 extern void stack_duplex_bcmx_init(void); 148 #endif 149 150 #endif /* _DIAG_BCMX_H_ */