1/* 2 * Copyright (c) 2013, 2015, The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17#ifndef _SHELL_IO_H 18#define _SHELL_IO_H 19 20#include "sw.h" 21#include "sw_api.h" 22#include "fal.h" 23 24#define SW_TYPE_DEF(type, parser, show) {type, parser, show} 25typedef struct 26{ 27 sw_data_type_e data_type; 28 sw_error_t(*param_check) (); 29 void (*show_func) (); 30} sw_data_type_t; 31 32void set_talk_mode(int mode); 33int get_talk_mode(void); 34void set_full_cmdstrp(char **cmdstrp); 35sw_data_type_t * cmd_data_type_find(sw_data_type_e type); 36void cmd_strtol(char *str, a_uint32_t * arg_val); 37 38sw_error_t cmd_data_check_portmap(char *cmdstr, fal_pbmp_t * val, a_uint32_t size); 39sw_error_t cmd_data_check_confirm(char *cmdstr, a_bool_t def, a_bool_t * val, a_uint32_t size); 40 41sw_error_t cmd_data_check_uint32(char *cmd_str, a_uint32_t * arg_val, 42 a_uint32_t size); 43sw_error_t cmd_data_check_uint16(char *cmd_str, a_uint32_t * arg_val, 44 a_uint32_t size); 45sw_error_t cmd_data_check_uint8(char *cmd_str, a_uint32_t * arg_val, 46 a_uint32_t size); 47sw_error_t cmd_data_check_enable(char *cmd_str, a_uint32_t * arg_val, 48 a_uint32_t size); 49sw_error_t cmd_data_check_pbmp(char *cmd_str, a_uint32_t * arg_val, 50 a_uint32_t size); 51sw_error_t cmd_data_check_duplex(char *cmd_str, a_uint32_t * arg_val, 52 a_uint32_t size); 53sw_error_t cmd_data_check_speed(char *cmd_str, a_uint32_t * arg_val, 54 a_uint32_t size); 55sw_error_t cmd_data_check_1qmode(char *cmd_str, a_uint32_t * arg_val, 56 a_uint32_t size); 57sw_error_t cmd_data_check_egmode(char *cmd_str, a_uint32_t * arg_val, 58 a_uint32_t size); 59sw_error_t cmd_data_check_capable(char *cmd_str, a_uint32_t * arg_val, 60 a_uint32_t size); 61sw_error_t cmd_data_check_fdbentry(char *cmdstr, void *val, a_uint32_t size); 62sw_error_t cmd_data_check_macaddr(char *cmdstr, void *val, a_uint32_t size); 63 64sw_error_t cmd_data_check_vlan(char *cmdstr, fal_vlan_t * val, a_uint32_t size); 65sw_error_t cmd_data_check_qos_sch(char *cmdstr, fal_sch_mode_t * val, 66 a_uint32_t size); 67sw_error_t cmd_data_check_qos_pt(char *cmdstr, fal_qos_mode_t * val, 68 a_uint32_t size); 69sw_error_t cmd_data_check_storm(char *cmdstr, fal_storm_type_t * val, 70 a_uint32_t size); 71sw_error_t cmd_data_check_stp_state(char *cmdstr, fal_stp_state_t * val, 72 a_uint32_t size); 73sw_error_t cmd_data_check_leaky(char *cmdstr, fal_leaky_ctrl_mode_t * val, 74 a_uint32_t size); 75sw_error_t cmd_data_check_uinta(char *cmdstr, a_uint32_t * val, 76 a_uint32_t size); 77sw_error_t cmd_data_check_maccmd(char *cmdstr, fal_fwd_cmd_t * val, 78 a_uint32_t size); 79sw_error_t cmd_data_check_flowcmd(char *cmdstr, fal_default_flow_cmd_t * val, 80 a_uint32_t size); 81sw_error_t cmd_data_check_flowtype(char *cmdstr, fal_flow_type_t * val, 82 a_uint32_t size); 83sw_error_t cmd_data_check_ledpattern(char *info, void * val, a_uint32_t size); 84 85 86sw_error_t 87cmd_data_check_invlan_mode(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 88sw_error_t 89cmd_data_check_vlan_propagation(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 90sw_error_t 91cmd_data_check_vlan_translation(char *info, fal_vlan_trans_entry_t *val, a_uint32_t size); 92sw_error_t 93cmd_data_check_qinq_mode(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 94sw_error_t 95cmd_data_check_qinq_role(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 96 97sw_error_t 98cmd_data_check_hdrmode(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 99 100sw_error_t 101cmd_data_check_fdboperation(char *cmd_str, void * val, a_uint32_t size); 102 103sw_error_t 104cmd_data_check_pppoe(char *cmd_str, void * val, a_uint32_t size); 105 106 107sw_error_t 108cmd_data_check_host_entry(char *cmd_str, void * val, a_uint32_t size); 109sw_error_t 110cmd_data_check_arp_learn_mode(char *cmd_str, fal_arp_learn_mode_t * arg_val, 111 a_uint32_t size); 112 113sw_error_t 114cmd_data_check_ip_guard_mode(char *cmd_str, fal_source_guard_mode_t * arg_val, a_uint32_t size); 115 116 117sw_error_t 118cmd_data_check_nat_entry(char *cmd_str, void * val, a_uint32_t size); 119 120 121sw_error_t 122cmd_data_check_napt_entry(char *cmd_str, void * val, a_uint32_t size); 123 124sw_error_t 125cmd_data_check_flow_entry(char *cmd_str, void * val, a_uint32_t size); 126 127sw_error_t 128cmd_data_check_napt_mode(char *cmd_str, fal_napt_mode_t * arg_val, a_uint32_t size); 129 130 131sw_error_t 132cmd_data_check_intf_mac_entry(char *cmd_str, void * val, a_uint32_t size); 133 134 135sw_error_t 136cmd_data_check_ip4addr(char *cmdstr, void * val, a_uint32_t size); 137 138sw_error_t 139cmd_data_check_ip6addr(char *cmdstr, void * val, a_uint32_t size); 140 141 142sw_error_t 143cmd_data_check_pub_addr_entry(char *cmd_str, void * val, a_uint32_t size); 144 145 146 147sw_error_t 148cmd_data_check_egress_shaper(char *cmd_str, void * val, a_uint32_t size); 149 150 151sw_error_t 152cmd_data_check_port_policer(char *cmd_str, void * val, a_uint32_t size); 153 154sw_error_t 155cmd_data_check_policer_timesslot(char *cmd_str, a_uint32_t * val, a_uint32_t size); 156 157sw_error_t 158cmd_data_check_acl_policer(char *cmd_str, void * val, a_uint32_t size); 159 160 161sw_error_t 162cmd_data_check_fdb_smode(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 163 164 165sw_error_t 166cmd_data_check_multi(char *info, void *val, a_uint32_t size); 167 168sw_error_t 169cmd_data_check_sec_mac(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 170 171sw_error_t 172cmd_data_check_sec_ip(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 173 174sw_error_t 175cmd_data_check_sec_ip4(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 176 177sw_error_t 178cmd_data_check_sec_ip6(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 179 180sw_error_t 181cmd_data_check_sec_tcp(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 182 183sw_error_t 184cmd_data_check_sec_udp(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 185 186sw_error_t 187cmd_data_check_sec_icmp4(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 188 189sw_error_t 190cmd_data_check_sec_icmp6(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 191 192sw_error_t 193cmd_data_check_remark_entry(char *info, void *val, a_uint32_t size); 194 195sw_error_t 196cmd_data_check_default_route_entry(char *cmd_str, void * val, a_uint32_t size); 197 198sw_error_t 199cmd_data_check_host_route_entry(char *cmd_str, void * val, a_uint32_t size); 200 201sw_error_t 202cmd_data_check_ip4_rfs_entry(char *cmd_str, void * val, a_uint32_t size); 203sw_error_t 204cmd_data_check_ip6_rfs_entry(char *cmd_str, void * val, a_uint32_t size); 205sw_error_t 206cmd_data_check_flow_cookie(char *cmd_str, void * val, a_uint32_t size); 207 208sw_error_t 209cmd_data_check_fdb_rfs(char *cmd_str, void * val, a_uint32_t size); 210sw_error_t 211cmd_data_check_flow_rfs(char *cmd_str, void * val, a_uint32_t size); 212 213sw_error_t 214cmd_data_check_crossover_mode(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 215 216sw_error_t 217cmd_data_check_crossover_status(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 218 219sw_error_t 220cmd_data_check_prefer_medium(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 221 222sw_error_t 223cmd_data_check_fiber_mode(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 224 225sw_error_t 226cmd_data_check_interface_mode(char *cmd_str, a_uint32_t * arg_val, a_uint32_t size); 227#endif 228 229