openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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_ */