async_run.c (220153B)
1 /* 2 * DO NOT EDIT THIS FILE! 3 * This file is auto-generated. 4 * Edits to this file will be lost when it is regenerated. 5 * 6 * 7 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 8 * 9 * Copyright 2007-2020 Broadcom Inc. All rights reserved. 10 * 11 * File: xasync_run.c 12 * Purpose: Async BCMX - execute a request 13 * Generator: mkdispatch 1.54 14 */ 15 16 #include <bcm/types.h> 17 #include <bcmx/async.h> 18 #include <bcmx/auth.h> 19 #include <bcmx/bcmx.h> 20 #include <bcmx/cosq.h> 21 #include <bcmx/custom.h> 22 #include <bcmx/failover.h> 23 #include <bcmx/field.h> 24 #include <bcmx/ipfix.h> 25 #include <bcmx/ipmc.h> 26 #include <bcmx/l2.h> 27 #include <bcmx/l3.h> 28 #include <bcmx/link.h> 29 #include <bcmx/mcast.h> 30 #include <bcmx/mim.h> 31 #include <bcmx/mirror.h> 32 #include <bcmx/mpls.h> 33 #include <bcmx/multicast.h> 34 #include <bcmx/niv.h> 35 #include <bcmx/oam.h> 36 #include <bcmx/policer.h> 37 #include <bcmx/port.h> 38 #include <bcmx/proxy.h> 39 #include <bcmx/qos.h> 40 #include <bcmx/rate.h> 41 #include <bcmx/rx.h> 42 #include <bcmx/stat.h> 43 #include <bcmx/stg.h> 44 #include <bcmx/subport.h> 45 #include <bcmx/switch.h> 46 #include <bcmx/trill.h> 47 #include <bcmx/trunk.h> 48 #include <bcmx/tunnel.h> 49 #include <bcmx/tx.h> 50 #include <bcmx/vlan.h> 51 #include <bcmx/wlan.h> 52 53 #include <bcm_int/xasync_req.h> 54 #include <bcm_int/async_server.h> 55 56 #include <shared/alloc.h> 57 58 #ifdef BCM_ASYNC_SUPPORT 59 60 void 61 bcmx_async_run(bcmx_async_req_t *req) 62 { 63 int rv; 64 65 switch (req->type) { 66 case BCMX_ASYNC_ENTRY_AUTH_EGRESS_GET: 67 rv = bcmx_auth_egress_get( 68 req->args.auth_egress_get.port, 69 req->args.auth_egress_get.enable); 70 break; 71 case BCMX_ASYNC_ENTRY_AUTH_EGRESS_SET: 72 rv = bcmx_auth_egress_set( 73 req->args.auth_egress_set.port, 74 req->args.auth_egress_set.enable); 75 break; 76 case BCMX_ASYNC_ENTRY_AUTH_MAC_ADD: 77 rv = bcmx_auth_mac_add( 78 req->args.auth_mac_add.port, 79 req->args.auth_mac_add.mac); 80 break; 81 case BCMX_ASYNC_ENTRY_AUTH_MAC_DELETE: 82 rv = bcmx_auth_mac_delete( 83 req->args.auth_mac_delete.port, 84 req->args.auth_mac_delete.mac); 85 break; 86 case BCMX_ASYNC_ENTRY_AUTH_MAC_DELETE_ALL: 87 rv = bcmx_auth_mac_delete_all( 88 req->args.auth_mac_delete_all.port); 89 break; 90 case BCMX_ASYNC_ENTRY_AUTH_MODE_GET: 91 rv = bcmx_auth_mode_get( 92 req->args.auth_mode_get.port, 93 req->args.auth_mode_get.modep); 94 break; 95 case BCMX_ASYNC_ENTRY_AUTH_MODE_SET: 96 rv = bcmx_auth_mode_set( 97 req->args.auth_mode_set.port, 98 req->args.auth_mode_set.mode); 99 break; 100 case BCMX_ASYNC_ENTRY_AUTH_UNAUTH_CALLBACK: 101 rv = bcmx_auth_unauth_callback( 102 req->args.auth_unauth_callback.func, 103 req->args.auth_unauth_callback.cookie); 104 break; 105 case BCMX_ASYNC_ENTRY_COSQ_CONFIG_GET: 106 rv = bcmx_cosq_config_get( 107 req->args.cosq_config_get.numq); 108 break; 109 case BCMX_ASYNC_ENTRY_COSQ_CONFIG_SET: 110 rv = bcmx_cosq_config_set( 111 req->args.cosq_config_set.numq); 112 break; 113 case BCMX_ASYNC_ENTRY_COSQ_CONTROL_GET: 114 rv = bcmx_cosq_control_get( 115 req->args.cosq_control_get.port, 116 req->args.cosq_control_get.cosq, 117 req->args.cosq_control_get.type, 118 req->args.cosq_control_get.arg); 119 break; 120 case BCMX_ASYNC_ENTRY_COSQ_CONTROL_SET: 121 rv = bcmx_cosq_control_set( 122 req->args.cosq_control_set.port, 123 req->args.cosq_control_set.cosq, 124 req->args.cosq_control_set.type, 125 req->args.cosq_control_set.arg); 126 break; 127 case BCMX_ASYNC_ENTRY_COSQ_DETACH: 128 rv = bcmx_cosq_detach( 129 ); 130 break; 131 case BCMX_ASYNC_ENTRY_COSQ_DISCARD_GET: 132 rv = bcmx_cosq_discard_get( 133 req->args.cosq_discard_get.flags); 134 break; 135 case BCMX_ASYNC_ENTRY_COSQ_DISCARD_PORT_GET: 136 rv = bcmx_cosq_discard_port_get( 137 req->args.cosq_discard_port_get.port, 138 req->args.cosq_discard_port_get.cosq, 139 req->args.cosq_discard_port_get.color, 140 req->args.cosq_discard_port_get.drop_start, 141 req->args.cosq_discard_port_get.drop_slope, 142 req->args.cosq_discard_port_get.average_time); 143 break; 144 case BCMX_ASYNC_ENTRY_COSQ_DISCARD_PORT_SET: 145 rv = bcmx_cosq_discard_port_set( 146 req->args.cosq_discard_port_set.port, 147 req->args.cosq_discard_port_set.cosq, 148 req->args.cosq_discard_port_set.color, 149 req->args.cosq_discard_port_set.drop_start, 150 req->args.cosq_discard_port_set.drop_slope, 151 req->args.cosq_discard_port_set.average_time); 152 break; 153 case BCMX_ASYNC_ENTRY_COSQ_DISCARD_SET: 154 rv = bcmx_cosq_discard_set( 155 req->args.cosq_discard_set.flags); 156 break; 157 case BCMX_ASYNC_ENTRY_COSQ_GPORT_ADD: 158 rv = bcmx_cosq_gport_add( 159 req->args.cosq_gport_add.port, 160 req->args.cosq_gport_add.numq, 161 req->args.cosq_gport_add.flags, 162 req->args.cosq_gport_add.gport); 163 break; 164 case BCMX_ASYNC_ENTRY_COSQ_GPORT_ATTACH: 165 rv = bcmx_cosq_gport_attach( 166 req->args.cosq_gport_attach.sched_port, 167 req->args.cosq_gport_attach.input_port, 168 req->args.cosq_gport_attach.cosq); 169 break; 170 case BCMX_ASYNC_ENTRY_COSQ_GPORT_ATTACH_GET: 171 rv = bcmx_cosq_gport_attach_get( 172 req->args.cosq_gport_attach_get.sched_port, 173 req->args.cosq_gport_attach_get.input_port, 174 req->args.cosq_gport_attach_get.cosq); 175 break; 176 case BCMX_ASYNC_ENTRY_COSQ_GPORT_BANDWIDTH_GET: 177 rv = bcmx_cosq_gport_bandwidth_get( 178 req->args.cosq_gport_bandwidth_get.gport, 179 req->args.cosq_gport_bandwidth_get.cosq, 180 req->args.cosq_gport_bandwidth_get.kbits_sec_min, 181 req->args.cosq_gport_bandwidth_get.kbits_sec_max, 182 req->args.cosq_gport_bandwidth_get.flags); 183 break; 184 case BCMX_ASYNC_ENTRY_COSQ_GPORT_BANDWIDTH_SET: 185 rv = bcmx_cosq_gport_bandwidth_set( 186 req->args.cosq_gport_bandwidth_set.gport, 187 req->args.cosq_gport_bandwidth_set.cosq, 188 req->args.cosq_gport_bandwidth_set.kbits_sec_min, 189 req->args.cosq_gport_bandwidth_set.kbits_sec_max, 190 req->args.cosq_gport_bandwidth_set.flags); 191 break; 192 case BCMX_ASYNC_ENTRY_COSQ_GPORT_DELETE: 193 rv = bcmx_cosq_gport_delete( 194 req->args.cosq_gport_delete.gport); 195 break; 196 case BCMX_ASYNC_ENTRY_COSQ_GPORT_DESTMOD_ATTACH: 197 rv = bcmx_cosq_gport_destmod_attach( 198 req->args.cosq_gport_destmod_attach.gport, 199 req->args.cosq_gport_destmod_attach.ingress_port, 200 req->args.cosq_gport_destmod_attach.dest_modid, 201 req->args.cosq_gport_destmod_attach.fabric_egress_port); 202 break; 203 case BCMX_ASYNC_ENTRY_COSQ_GPORT_DESTMOD_DETACH: 204 rv = bcmx_cosq_gport_destmod_detach( 205 req->args.cosq_gport_destmod_detach.gport, 206 req->args.cosq_gport_destmod_detach.ingress_port, 207 req->args.cosq_gport_destmod_detach.dest_modid, 208 req->args.cosq_gport_destmod_detach.fabric_egress_port); 209 break; 210 case BCMX_ASYNC_ENTRY_COSQ_GPORT_DETACH: 211 rv = bcmx_cosq_gport_detach( 212 req->args.cosq_gport_detach.sched_port, 213 req->args.cosq_gport_detach.input_port, 214 req->args.cosq_gport_detach.cosq); 215 break; 216 case BCMX_ASYNC_ENTRY_COSQ_GPORT_DISCARD_GET: 217 rv = bcmx_cosq_gport_discard_get( 218 req->args.cosq_gport_discard_get.gport, 219 req->args.cosq_gport_discard_get.cosq, 220 req->args.cosq_gport_discard_get.discard); 221 break; 222 case BCMX_ASYNC_ENTRY_COSQ_GPORT_DISCARD_SET: 223 rv = bcmx_cosq_gport_discard_set( 224 req->args.cosq_gport_discard_set.gport, 225 req->args.cosq_gport_discard_set.cosq, 226 req->args.cosq_gport_discard_set.discard); 227 break; 228 case BCMX_ASYNC_ENTRY_COSQ_GPORT_SCHED_GET: 229 rv = bcmx_cosq_gport_sched_get( 230 req->args.cosq_gport_sched_get.gport, 231 req->args.cosq_gport_sched_get.cosq, 232 req->args.cosq_gport_sched_get.mode, 233 req->args.cosq_gport_sched_get.weight); 234 break; 235 case BCMX_ASYNC_ENTRY_COSQ_GPORT_SCHED_SET: 236 rv = bcmx_cosq_gport_sched_set( 237 req->args.cosq_gport_sched_set.gport, 238 req->args.cosq_gport_sched_set.cosq, 239 req->args.cosq_gport_sched_set.mode, 240 req->args.cosq_gport_sched_set.weight); 241 break; 242 case BCMX_ASYNC_ENTRY_COSQ_INIT: 243 rv = bcmx_cosq_init( 244 ); 245 break; 246 case BCMX_ASYNC_ENTRY_COSQ_MAPPING_GET: 247 rv = bcmx_cosq_mapping_get( 248 req->args.cosq_mapping_get.priority, 249 req->args.cosq_mapping_get.cosq); 250 break; 251 case BCMX_ASYNC_ENTRY_COSQ_MAPPING_SET: 252 rv = bcmx_cosq_mapping_set( 253 req->args.cosq_mapping_set.priority, 254 req->args.cosq_mapping_set.cosq); 255 break; 256 case BCMX_ASYNC_ENTRY_COSQ_PORT_BANDWIDTH_GET: 257 rv = bcmx_cosq_port_bandwidth_get( 258 req->args.cosq_port_bandwidth_get.port, 259 req->args.cosq_port_bandwidth_get.cosq, 260 req->args.cosq_port_bandwidth_get.kbits_sec_min, 261 req->args.cosq_port_bandwidth_get.kbits_sec_max, 262 req->args.cosq_port_bandwidth_get.flags); 263 break; 264 case BCMX_ASYNC_ENTRY_COSQ_PORT_BANDWIDTH_SET: 265 rv = bcmx_cosq_port_bandwidth_set( 266 req->args.cosq_port_bandwidth_set.port, 267 req->args.cosq_port_bandwidth_set.cosq, 268 req->args.cosq_port_bandwidth_set.kbits_sec_min, 269 req->args.cosq_port_bandwidth_set.kbits_sec_max, 270 req->args.cosq_port_bandwidth_set.flags); 271 break; 272 case BCMX_ASYNC_ENTRY_COSQ_PORT_MAPPING_GET: 273 rv = bcmx_cosq_port_mapping_get( 274 req->args.cosq_port_mapping_get.port, 275 req->args.cosq_port_mapping_get.priority, 276 req->args.cosq_port_mapping_get.cosq); 277 break; 278 case BCMX_ASYNC_ENTRY_COSQ_PORT_MAPPING_SET: 279 rv = bcmx_cosq_port_mapping_set( 280 req->args.cosq_port_mapping_set.port, 281 req->args.cosq_port_mapping_set.priority, 282 req->args.cosq_port_mapping_set.cosq); 283 break; 284 case BCMX_ASYNC_ENTRY_COSQ_PORT_SCHED_GET: 285 rv = bcmx_cosq_port_sched_get( 286 req->args.cosq_port_sched_get.lplist, 287 req->args.cosq_port_sched_get.mode, 288 req->args.cosq_port_sched_get.weights, 289 req->args.cosq_port_sched_get.delay); 290 break; 291 case BCMX_ASYNC_ENTRY_COSQ_PORT_SCHED_SET: 292 rv = bcmx_cosq_port_sched_set( 293 req->args.cosq_port_sched_set.lplist, 294 req->args.cosq_port_sched_set.mode, 295 req->args.cosq_port_sched_set.weights, 296 req->args.cosq_port_sched_set.delay); 297 break; 298 case BCMX_ASYNC_ENTRY_COSQ_SCHED_GET: 299 rv = bcmx_cosq_sched_get( 300 req->args.cosq_sched_get.mode, 301 req->args.cosq_sched_get.weights, 302 req->args.cosq_sched_get.delay); 303 break; 304 case BCMX_ASYNC_ENTRY_COSQ_SCHED_SET: 305 rv = bcmx_cosq_sched_set( 306 req->args.cosq_sched_set.mode, 307 req->args.cosq_sched_set.weights, 308 req->args.cosq_sched_set.delay); 309 break; 310 case BCMX_ASYNC_ENTRY_COSQ_SCHED_WEIGHT_MAX_GET: 311 rv = bcmx_cosq_sched_weight_max_get( 312 req->args.cosq_sched_weight_max_get.mode, 313 req->args.cosq_sched_weight_max_get.weight_max); 314 break; 315 case BCMX_ASYNC_ENTRY_COSQ_STAT_GET: 316 rv = bcmx_cosq_stat_get( 317 req->args.cosq_stat_get.gport, 318 req->args.cosq_stat_get.cosq, 319 req->args.cosq_stat_get.stat, 320 req->args.cosq_stat_get.value); 321 break; 322 case BCMX_ASYNC_ENTRY_COSQ_STAT_GET32: 323 rv = bcmx_cosq_stat_get32( 324 req->args.cosq_stat_get32.gport, 325 req->args.cosq_stat_get32.cosq, 326 req->args.cosq_stat_get32.stat, 327 req->args.cosq_stat_get32.value); 328 break; 329 case BCMX_ASYNC_ENTRY_COSQ_STAT_SET: 330 rv = bcmx_cosq_stat_set( 331 req->args.cosq_stat_set.gport, 332 req->args.cosq_stat_set.cosq, 333 req->args.cosq_stat_set.stat, 334 req->args.cosq_stat_set.value); 335 break; 336 case BCMX_ASYNC_ENTRY_COSQ_STAT_SET32: 337 rv = bcmx_cosq_stat_set32( 338 req->args.cosq_stat_set32.gport, 339 req->args.cosq_stat_set32.cosq, 340 req->args.cosq_stat_set32.stat, 341 req->args.cosq_stat_set32.value); 342 break; 343 case BCMX_ASYNC_ENTRY_CUSTOM_PORT_GET: 344 rv = bcmx_custom_port_get( 345 req->args.custom_port_get.port, 346 req->args.custom_port_get.type, 347 req->args.custom_port_get.max_len, 348 req->args.custom_port_get.args, 349 req->args.custom_port_get.actual_len); 350 break; 351 case BCMX_ASYNC_ENTRY_CUSTOM_PORT_SET: 352 rv = bcmx_custom_port_set( 353 req->args.custom_port_set.port, 354 req->args.custom_port_set.type, 355 req->args.custom_port_set.len, 356 req->args.custom_port_set.args); 357 break; 358 case BCMX_ASYNC_ENTRY_CUSTOM_UNIT_GET: 359 rv = bcmx_custom_unit_get( 360 req->args.custom_unit_get.type, 361 req->args.custom_unit_get.max_len, 362 req->args.custom_unit_get.args, 363 req->args.custom_unit_get.actual_len); 364 break; 365 case BCMX_ASYNC_ENTRY_CUSTOM_UNIT_SET: 366 rv = bcmx_custom_unit_set( 367 req->args.custom_unit_set.type, 368 req->args.custom_unit_set.len, 369 req->args.custom_unit_set.args); 370 break; 371 case BCMX_ASYNC_ENTRY_DEVICE_ATTACH: 372 rv = bcmx_device_attach( 373 req->args.device_attach.unit); 374 break; 375 case BCMX_ASYNC_ENTRY_DEVICE_DETACH: 376 rv = bcmx_device_detach( 377 req->args.device_detach.unit); 378 break; 379 case BCMX_ASYNC_ENTRY_FAILOVER_CLEANUP: 380 rv = bcmx_failover_cleanup( 381 ); 382 break; 383 case BCMX_ASYNC_ENTRY_FAILOVER_CREATE: 384 rv = bcmx_failover_create( 385 req->args.failover_create.flags, 386 req->args.failover_create.failover_id); 387 break; 388 case BCMX_ASYNC_ENTRY_FAILOVER_DESTROY: 389 rv = bcmx_failover_destroy( 390 req->args.failover_destroy.failover_id); 391 break; 392 case BCMX_ASYNC_ENTRY_FAILOVER_GET: 393 rv = bcmx_failover_get( 394 req->args.failover_get.failover_id, 395 req->args.failover_get.enable); 396 break; 397 case BCMX_ASYNC_ENTRY_FAILOVER_INIT: 398 rv = bcmx_failover_init( 399 ); 400 break; 401 case BCMX_ASYNC_ENTRY_FAILOVER_SET: 402 rv = bcmx_failover_set( 403 req->args.failover_set.failover_id, 404 req->args.failover_set.enable); 405 break; 406 case BCMX_ASYNC_ENTRY_FIELD_ACTION_ADD: 407 rv = bcmx_field_action_add( 408 req->args.field_action_add.entry, 409 req->args.field_action_add.action, 410 req->args.field_action_add.param0, 411 req->args.field_action_add.param1); 412 break; 413 case BCMX_ASYNC_ENTRY_FIELD_ACTION_DELETE: 414 rv = bcmx_field_action_delete( 415 req->args.field_action_delete.entry, 416 req->args.field_action_delete.action, 417 req->args.field_action_delete.param0, 418 req->args.field_action_delete.param1); 419 break; 420 case BCMX_ASYNC_ENTRY_FIELD_ACTION_GET: 421 rv = bcmx_field_action_get( 422 req->args.field_action_get.entry, 423 req->args.field_action_get.action, 424 req->args.field_action_get.param0, 425 req->args.field_action_get.param1); 426 break; 427 case BCMX_ASYNC_ENTRY_FIELD_ACTION_MAC_ADD: 428 rv = bcmx_field_action_mac_add( 429 req->args.field_action_mac_add.entry, 430 req->args.field_action_mac_add.action, 431 req->args.field_action_mac_add.mac); 432 break; 433 case BCMX_ASYNC_ENTRY_FIELD_ACTION_MAC_GET: 434 rv = bcmx_field_action_mac_get( 435 req->args.field_action_mac_get.entry, 436 req->args.field_action_mac_get.action, 437 req->args.field_action_mac_get.mac); 438 break; 439 case BCMX_ASYNC_ENTRY_FIELD_ACTION_PORTS_ADD: 440 rv = bcmx_field_action_ports_add( 441 req->args.field_action_ports_add.entry, 442 req->args.field_action_ports_add.action, 443 req->args.field_action_ports_add.lplist); 444 break; 445 case BCMX_ASYNC_ENTRY_FIELD_ACTION_PORTS_GET: 446 rv = bcmx_field_action_ports_get( 447 req->args.field_action_ports_get.entry, 448 req->args.field_action_ports_get.action, 449 req->args.field_action_ports_get.lplist); 450 break; 451 case BCMX_ASYNC_ENTRY_FIELD_ACTION_REMOVE: 452 rv = bcmx_field_action_remove( 453 req->args.field_action_remove.entry, 454 req->args.field_action_remove.action); 455 break; 456 case BCMX_ASYNC_ENTRY_FIELD_ACTION_REMOVE_ALL: 457 rv = bcmx_field_action_remove_all( 458 req->args.field_action_remove_all.entry); 459 break; 460 case BCMX_ASYNC_ENTRY_FIELD_CONTROL_GET: 461 rv = bcmx_field_control_get( 462 req->args.field_control_get.control, 463 req->args.field_control_get.state); 464 break; 465 case BCMX_ASYNC_ENTRY_FIELD_CONTROL_SET: 466 rv = bcmx_field_control_set( 467 req->args.field_control_set.control, 468 req->args.field_control_set.state); 469 break; 470 case BCMX_ASYNC_ENTRY_FIELD_DATA_QUALIFIER_CREATE: 471 rv = bcmx_field_data_qualifier_create( 472 req->args.field_data_qualifier_create.data_qualifier); 473 break; 474 case BCMX_ASYNC_ENTRY_FIELD_DATA_QUALIFIER_DESTROY: 475 rv = bcmx_field_data_qualifier_destroy( 476 req->args.field_data_qualifier_destroy.qual_id); 477 break; 478 case BCMX_ASYNC_ENTRY_FIELD_DATA_QUALIFIER_DESTROY_ALL: 479 rv = bcmx_field_data_qualifier_destroy_all( 480 ); 481 break; 482 case BCMX_ASYNC_ENTRY_FIELD_DATA_QUALIFIER_ETHERTYPE_ADD: 483 rv = bcmx_field_data_qualifier_ethertype_add( 484 req->args.field_data_qualifier_ethertype_add.qual_id, 485 req->args.field_data_qualifier_ethertype_add.etype); 486 break; 487 case BCMX_ASYNC_ENTRY_FIELD_DATA_QUALIFIER_ETHERTYPE_DELETE: 488 rv = bcmx_field_data_qualifier_ethertype_delete( 489 req->args.field_data_qualifier_ethertype_delete.qual_id, 490 req->args.field_data_qualifier_ethertype_delete.etype); 491 break; 492 case BCMX_ASYNC_ENTRY_FIELD_DATA_QUALIFIER_GET: 493 rv = bcmx_field_data_qualifier_get( 494 req->args.field_data_qualifier_get.qual_id, 495 req->args.field_data_qualifier_get.qual); 496 break; 497 case BCMX_ASYNC_ENTRY_FIELD_DATA_QUALIFIER_IP_PROTOCOL_ADD: 498 rv = bcmx_field_data_qualifier_ip_protocol_add( 499 req->args.field_data_qualifier_ip_protocol_add.qual_id, 500 req->args.field_data_qualifier_ip_protocol_add.ip_protocol); 501 break; 502 case BCMX_ASYNC_ENTRY_FIELD_DATA_QUALIFIER_IP_PROTOCOL_DELETE: 503 rv = bcmx_field_data_qualifier_ip_protocol_delete( 504 req->args.field_data_qualifier_ip_protocol_delete.qual_id, 505 req->args.field_data_qualifier_ip_protocol_delete.ip_protocol); 506 break; 507 case BCMX_ASYNC_ENTRY_FIELD_DATA_QUALIFIER_MULTI_GET: 508 rv = bcmx_field_data_qualifier_multi_get( 509 req->args.field_data_qualifier_multi_get.qual_size, 510 req->args.field_data_qualifier_multi_get.qual_array, 511 req->args.field_data_qualifier_multi_get.qual_count); 512 break; 513 case BCMX_ASYNC_ENTRY_FIELD_DATA_QUALIFIER_PACKET_FORMAT_ADD: 514 rv = bcmx_field_data_qualifier_packet_format_add( 515 req->args.field_data_qualifier_packet_format_add.qual_id, 516 req->args.field_data_qualifier_packet_format_add.packet_format); 517 break; 518 case BCMX_ASYNC_ENTRY_FIELD_DATA_QUALIFIER_PACKET_FORMAT_DELETE: 519 rv = bcmx_field_data_qualifier_packet_format_delete( 520 req->args.field_data_qualifier_packet_format_delete.qual_id, 521 req->args.field_data_qualifier_packet_format_delete.packet_format); 522 break; 523 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_COPY: 524 rv = bcmx_field_entry_copy( 525 req->args.field_entry_copy.src_entry, 526 req->args.field_entry_copy.dst_entry); 527 break; 528 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_CREATE: 529 rv = bcmx_field_entry_create( 530 req->args.field_entry_create.group, 531 req->args.field_entry_create.entry); 532 break; 533 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_CREATE_ID: 534 rv = bcmx_field_entry_create_id( 535 req->args.field_entry_create_id.group, 536 req->args.field_entry_create_id.entry); 537 break; 538 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_DESTROY: 539 rv = bcmx_field_entry_destroy( 540 req->args.field_entry_destroy.entry); 541 break; 542 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_DESTROY_ALL: 543 rv = bcmx_field_entry_destroy_all( 544 ); 545 break; 546 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_INSTALL: 547 rv = bcmx_field_entry_install( 548 req->args.field_entry_install.entry); 549 break; 550 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_MULTI_GET: 551 rv = bcmx_field_entry_multi_get( 552 req->args.field_entry_multi_get.group, 553 req->args.field_entry_multi_get.entry_size, 554 req->args.field_entry_multi_get.entry_array, 555 req->args.field_entry_multi_get.entry_count); 556 break; 557 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_POLICER_ATTACH: 558 rv = bcmx_field_entry_policer_attach( 559 req->args.field_entry_policer_attach.entry_id, 560 req->args.field_entry_policer_attach.level, 561 req->args.field_entry_policer_attach.policer_id); 562 break; 563 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_POLICER_DETACH: 564 rv = bcmx_field_entry_policer_detach( 565 req->args.field_entry_policer_detach.entry_id, 566 req->args.field_entry_policer_detach.level); 567 break; 568 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_POLICER_DETACH_ALL: 569 rv = bcmx_field_entry_policer_detach_all( 570 req->args.field_entry_policer_detach_all.entry_id); 571 break; 572 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_POLICER_GET: 573 rv = bcmx_field_entry_policer_get( 574 req->args.field_entry_policer_get.entry_id, 575 req->args.field_entry_policer_get.level, 576 req->args.field_entry_policer_get.policer_id); 577 break; 578 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_PRIO_GET: 579 rv = bcmx_field_entry_prio_get( 580 req->args.field_entry_prio_get.entry, 581 req->args.field_entry_prio_get.prio); 582 break; 583 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_PRIO_SET: 584 rv = bcmx_field_entry_prio_set( 585 req->args.field_entry_prio_set.entry, 586 req->args.field_entry_prio_set.prio); 587 break; 588 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_REINSTALL: 589 rv = bcmx_field_entry_reinstall( 590 req->args.field_entry_reinstall.entry); 591 break; 592 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_REMOVE: 593 rv = bcmx_field_entry_remove( 594 req->args.field_entry_remove.entry); 595 break; 596 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_STAT_ATTACH: 597 rv = bcmx_field_entry_stat_attach( 598 req->args.field_entry_stat_attach.entry, 599 req->args.field_entry_stat_attach.stat_id); 600 break; 601 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_STAT_DETACH: 602 rv = bcmx_field_entry_stat_detach( 603 req->args.field_entry_stat_detach.entry, 604 req->args.field_entry_stat_detach.stat_id); 605 break; 606 case BCMX_ASYNC_ENTRY_FIELD_ENTRY_STAT_GET: 607 rv = bcmx_field_entry_stat_get( 608 req->args.field_entry_stat_get.entry, 609 req->args.field_entry_stat_get.stat_id); 610 break; 611 case BCMX_ASYNC_ENTRY_FIELD_GROUP_COMPRESS: 612 rv = bcmx_field_group_compress( 613 req->args.field_group_compress.group); 614 break; 615 case BCMX_ASYNC_ENTRY_FIELD_GROUP_CREATE: 616 rv = bcmx_field_group_create( 617 req->args.field_group_create.qset, 618 req->args.field_group_create.pri, 619 req->args.field_group_create.group); 620 break; 621 case BCMX_ASYNC_ENTRY_FIELD_GROUP_CREATE_ID: 622 rv = bcmx_field_group_create_id( 623 req->args.field_group_create_id.qset, 624 req->args.field_group_create_id.pri, 625 req->args.field_group_create_id.group); 626 break; 627 case BCMX_ASYNC_ENTRY_FIELD_GROUP_CREATE_MODE: 628 rv = bcmx_field_group_create_mode( 629 req->args.field_group_create_mode.qset, 630 req->args.field_group_create_mode.pri, 631 req->args.field_group_create_mode.mode, 632 req->args.field_group_create_mode.group); 633 break; 634 case BCMX_ASYNC_ENTRY_FIELD_GROUP_CREATE_MODE_ID: 635 rv = bcmx_field_group_create_mode_id( 636 req->args.field_group_create_mode_id.qset, 637 req->args.field_group_create_mode_id.pri, 638 req->args.field_group_create_mode_id.mode, 639 req->args.field_group_create_mode_id.group); 640 break; 641 case BCMX_ASYNC_ENTRY_FIELD_GROUP_DESTROY: 642 rv = bcmx_field_group_destroy( 643 req->args.field_group_destroy.group); 644 break; 645 case BCMX_ASYNC_ENTRY_FIELD_GROUP_ENABLE_GET: 646 rv = bcmx_field_group_enable_get( 647 req->args.field_group_enable_get.group, 648 req->args.field_group_enable_get.enable); 649 break; 650 case BCMX_ASYNC_ENTRY_FIELD_GROUP_ENABLE_SET: 651 rv = bcmx_field_group_enable_set( 652 req->args.field_group_enable_set.group, 653 req->args.field_group_enable_set.enable); 654 break; 655 case BCMX_ASYNC_ENTRY_FIELD_GROUP_GET: 656 rv = bcmx_field_group_get( 657 req->args.field_group_get.group, 658 req->args.field_group_get.qset); 659 break; 660 case BCMX_ASYNC_ENTRY_FIELD_GROUP_INSTALL: 661 rv = bcmx_field_group_install( 662 req->args.field_group_install.group); 663 break; 664 case BCMX_ASYNC_ENTRY_FIELD_GROUP_MODE_GET: 665 rv = bcmx_field_group_mode_get( 666 req->args.field_group_mode_get.group, 667 req->args.field_group_mode_get.mode); 668 break; 669 case BCMX_ASYNC_ENTRY_FIELD_GROUP_PORT_CREATE_MODE: 670 rv = bcmx_field_group_port_create_mode( 671 req->args.field_group_port_create_mode.port, 672 req->args.field_group_port_create_mode.qset, 673 req->args.field_group_port_create_mode.pri, 674 req->args.field_group_port_create_mode.mode, 675 req->args.field_group_port_create_mode.group); 676 break; 677 case BCMX_ASYNC_ENTRY_FIELD_GROUP_PORT_CREATE_MODE_ID: 678 rv = bcmx_field_group_port_create_mode_id( 679 req->args.field_group_port_create_mode_id.port, 680 req->args.field_group_port_create_mode_id.qset, 681 req->args.field_group_port_create_mode_id.pri, 682 req->args.field_group_port_create_mode_id.mode, 683 req->args.field_group_port_create_mode_id.group); 684 break; 685 case BCMX_ASYNC_ENTRY_FIELD_GROUP_PORTS_CREATE_MODE: 686 rv = bcmx_field_group_ports_create_mode( 687 req->args.field_group_ports_create_mode.lplist, 688 req->args.field_group_ports_create_mode.qset, 689 req->args.field_group_ports_create_mode.pri, 690 req->args.field_group_ports_create_mode.mode, 691 req->args.field_group_ports_create_mode.group); 692 break; 693 case BCMX_ASYNC_ENTRY_FIELD_GROUP_PORTS_CREATE_MODE_ID: 694 rv = bcmx_field_group_ports_create_mode_id( 695 req->args.field_group_ports_create_mode_id.lplist, 696 req->args.field_group_ports_create_mode_id.qset, 697 req->args.field_group_ports_create_mode_id.pri, 698 req->args.field_group_ports_create_mode_id.mode, 699 req->args.field_group_ports_create_mode_id.group); 700 break; 701 case BCMX_ASYNC_ENTRY_FIELD_GROUP_PRIORITY_GET: 702 rv = bcmx_field_group_priority_get( 703 req->args.field_group_priority_get.group, 704 req->args.field_group_priority_get.priority); 705 break; 706 case BCMX_ASYNC_ENTRY_FIELD_GROUP_PRIORITY_SET: 707 rv = bcmx_field_group_priority_set( 708 req->args.field_group_priority_set.group, 709 req->args.field_group_priority_set.priority); 710 break; 711 case BCMX_ASYNC_ENTRY_FIELD_GROUP_REMOVE: 712 rv = bcmx_field_group_remove( 713 req->args.field_group_remove.group); 714 break; 715 case BCMX_ASYNC_ENTRY_FIELD_GROUP_SET: 716 rv = bcmx_field_group_set( 717 req->args.field_group_set.group, 718 req->args.field_group_set.qset); 719 break; 720 case BCMX_ASYNC_ENTRY_FIELD_GROUP_TRAVERSE: 721 rv = bcmx_field_group_traverse( 722 req->args.field_group_traverse.callback, 723 req->args.field_group_traverse.user_data); 724 break; 725 case BCMX_ASYNC_ENTRY_FIELD_GROUP_WLAN_CREATE_MODE: 726 rv = bcmx_field_group_wlan_create_mode( 727 req->args.field_group_wlan_create_mode.qset, 728 req->args.field_group_wlan_create_mode.pri, 729 req->args.field_group_wlan_create_mode.mode, 730 req->args.field_group_wlan_create_mode.group); 731 break; 732 case BCMX_ASYNC_ENTRY_FIELD_GROUP_WLAN_CREATE_MODE_ID: 733 rv = bcmx_field_group_wlan_create_mode_id( 734 req->args.field_group_wlan_create_mode_id.qset, 735 req->args.field_group_wlan_create_mode_id.pri, 736 req->args.field_group_wlan_create_mode_id.mode, 737 req->args.field_group_wlan_create_mode_id.group); 738 break; 739 case BCMX_ASYNC_ENTRY_FIELD_INIT: 740 rv = bcmx_field_init( 741 ); 742 break; 743 case BCMX_ASYNC_ENTRY_FIELD_QSET_DATA_QUALIFIER_ADD: 744 rv = bcmx_field_qset_data_qualifier_add( 745 req->args.field_qset_data_qualifier_add.qset, 746 req->args.field_qset_data_qualifier_add.qual_id); 747 break; 748 case BCMX_ASYNC_ENTRY_FIELD_QSET_DATA_QUALIFIER_GET: 749 rv = bcmx_field_qset_data_qualifier_get( 750 req->args.field_qset_data_qualifier_get.qset, 751 req->args.field_qset_data_qualifier_get.qual_max, 752 req->args.field_qset_data_qualifier_get.qual_arr, 753 req->args.field_qset_data_qualifier_get.qual_count); 754 break; 755 case BCMX_ASYNC_ENTRY_FIELD_QUALIFIER_DELETE: 756 rv = bcmx_field_qualifier_delete( 757 req->args.field_qualifier_delete.entry, 758 req->args.field_qualifier_delete.qual_id); 759 break; 760 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_CNTAG: 761 rv = bcmx_field_qualify_CnTag( 762 req->args.field_qualify_CnTag.entry, 763 req->args.field_qualify_CnTag.data, 764 req->args.field_qualify_CnTag.mask); 765 break; 766 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_CNTAG_GET: 767 rv = bcmx_field_qualify_CnTag_get( 768 req->args.field_qualify_CnTag_get.entry, 769 req->args.field_qualify_CnTag_get.data, 770 req->args.field_qualify_CnTag_get.mask); 771 break; 772 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_COLOR: 773 rv = bcmx_field_qualify_Color( 774 req->args.field_qualify_Color.entry, 775 req->args.field_qualify_Color.color); 776 break; 777 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_COLOR_GET: 778 rv = bcmx_field_qualify_Color_get( 779 req->args.field_qualify_Color_get.entry, 780 req->args.field_qualify_Color_get.color); 781 break; 782 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSCP: 783 rv = bcmx_field_qualify_DSCP( 784 req->args.field_qualify_DSCP.entry, 785 req->args.field_qualify_DSCP.data, 786 req->args.field_qualify_DSCP.mask); 787 break; 788 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSCP_GET: 789 rv = bcmx_field_qualify_DSCP_get( 790 req->args.field_qualify_DSCP_get.entry, 791 req->args.field_qualify_DSCP_get.data, 792 req->args.field_qualify_DSCP_get.mask); 793 break; 794 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DECAP: 795 rv = bcmx_field_qualify_Decap( 796 req->args.field_qualify_Decap.entry, 797 req->args.field_qualify_Decap.decap); 798 break; 799 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DOSATTACK: 800 rv = bcmx_field_qualify_DosAttack( 801 req->args.field_qualify_DosAttack.entry, 802 req->args.field_qualify_DosAttack.data, 803 req->args.field_qualify_DosAttack.mask); 804 break; 805 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DOSATTACK_GET: 806 rv = bcmx_field_qualify_DosAttack_get( 807 req->args.field_qualify_DosAttack_get.entry, 808 req->args.field_qualify_DosAttack_get.data, 809 req->args.field_qualify_DosAttack_get.mask); 810 break; 811 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DROP: 812 rv = bcmx_field_qualify_Drop( 813 req->args.field_qualify_Drop.entry, 814 req->args.field_qualify_Drop.data, 815 req->args.field_qualify_Drop.mask); 816 break; 817 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DROP_GET: 818 rv = bcmx_field_qualify_Drop_get( 819 req->args.field_qualify_Drop_get.entry, 820 req->args.field_qualify_Drop_get.data, 821 req->args.field_qualify_Drop_get.mask); 822 break; 823 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTCLASSFIELD: 824 rv = bcmx_field_qualify_DstClassField( 825 req->args.field_qualify_DstClassField.entry, 826 req->args.field_qualify_DstClassField.data, 827 req->args.field_qualify_DstClassField.mask); 828 break; 829 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTCLASSFIELD_GET: 830 rv = bcmx_field_qualify_DstClassField_get( 831 req->args.field_qualify_DstClassField_get.entry, 832 req->args.field_qualify_DstClassField_get.data, 833 req->args.field_qualify_DstClassField_get.mask); 834 break; 835 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTCLASSL2: 836 rv = bcmx_field_qualify_DstClassL2( 837 req->args.field_qualify_DstClassL2.entry, 838 req->args.field_qualify_DstClassL2.data, 839 req->args.field_qualify_DstClassL2.mask); 840 break; 841 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTCLASSL2_GET: 842 rv = bcmx_field_qualify_DstClassL2_get( 843 req->args.field_qualify_DstClassL2_get.entry, 844 req->args.field_qualify_DstClassL2_get.data, 845 req->args.field_qualify_DstClassL2_get.mask); 846 break; 847 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTCLASSL3: 848 rv = bcmx_field_qualify_DstClassL3( 849 req->args.field_qualify_DstClassL3.entry, 850 req->args.field_qualify_DstClassL3.data, 851 req->args.field_qualify_DstClassL3.mask); 852 break; 853 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTCLASSL3_GET: 854 rv = bcmx_field_qualify_DstClassL3_get( 855 req->args.field_qualify_DstClassL3_get.entry, 856 req->args.field_qualify_DstClassL3_get.data, 857 req->args.field_qualify_DstClassL3_get.mask); 858 break; 859 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTHIGIG: 860 rv = bcmx_field_qualify_DstHiGig( 861 req->args.field_qualify_DstHiGig.entry, 862 req->args.field_qualify_DstHiGig.data, 863 req->args.field_qualify_DstHiGig.mask); 864 break; 865 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTHIGIG_GET: 866 rv = bcmx_field_qualify_DstHiGig_get( 867 req->args.field_qualify_DstHiGig_get.entry, 868 req->args.field_qualify_DstHiGig_get.data, 869 req->args.field_qualify_DstHiGig_get.mask); 870 break; 871 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTIP: 872 rv = bcmx_field_qualify_DstIp( 873 req->args.field_qualify_DstIp.entry, 874 req->args.field_qualify_DstIp.data, 875 req->args.field_qualify_DstIp.mask); 876 break; 877 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTIP6: 878 rv = bcmx_field_qualify_DstIp6( 879 req->args.field_qualify_DstIp6.entry, 880 req->args.field_qualify_DstIp6.data, 881 req->args.field_qualify_DstIp6.mask); 882 break; 883 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTIP6HIGH: 884 rv = bcmx_field_qualify_DstIp6High( 885 req->args.field_qualify_DstIp6High.entry, 886 req->args.field_qualify_DstIp6High.data, 887 req->args.field_qualify_DstIp6High.mask); 888 break; 889 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTIP6HIGH_GET: 890 rv = bcmx_field_qualify_DstIp6High_get( 891 req->args.field_qualify_DstIp6High_get.entry, 892 req->args.field_qualify_DstIp6High_get.data, 893 req->args.field_qualify_DstIp6High_get.mask); 894 break; 895 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTIP6LOW: 896 rv = bcmx_field_qualify_DstIp6Low( 897 req->args.field_qualify_DstIp6Low.entry, 898 req->args.field_qualify_DstIp6Low.data, 899 req->args.field_qualify_DstIp6Low.mask); 900 break; 901 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTIP6LOW_GET: 902 rv = bcmx_field_qualify_DstIp6Low_get( 903 req->args.field_qualify_DstIp6Low_get.entry, 904 req->args.field_qualify_DstIp6Low_get.data, 905 req->args.field_qualify_DstIp6Low_get.mask); 906 break; 907 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTIP6_GET: 908 rv = bcmx_field_qualify_DstIp6_get( 909 req->args.field_qualify_DstIp6_get.entry, 910 req->args.field_qualify_DstIp6_get.data, 911 req->args.field_qualify_DstIp6_get.mask); 912 break; 913 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTIP_GET: 914 rv = bcmx_field_qualify_DstIp_get( 915 req->args.field_qualify_DstIp_get.entry, 916 req->args.field_qualify_DstIp_get.data, 917 req->args.field_qualify_DstIp_get.mask); 918 break; 919 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTL3EGRESS: 920 rv = bcmx_field_qualify_DstL3Egress( 921 req->args.field_qualify_DstL3Egress.entry, 922 req->args.field_qualify_DstL3Egress.if_id); 923 break; 924 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTL3EGRESS_GET: 925 rv = bcmx_field_qualify_DstL3Egress_get( 926 req->args.field_qualify_DstL3Egress_get.entry, 927 req->args.field_qualify_DstL3Egress_get.if_id); 928 break; 929 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTMAC: 930 rv = bcmx_field_qualify_DstMac( 931 req->args.field_qualify_DstMac.entry, 932 req->args.field_qualify_DstMac.data, 933 req->args.field_qualify_DstMac.mask); 934 break; 935 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTMAC_GET: 936 rv = bcmx_field_qualify_DstMac_get( 937 req->args.field_qualify_DstMac_get.entry, 938 req->args.field_qualify_DstMac_get.data, 939 req->args.field_qualify_DstMac_get.mask); 940 break; 941 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTMIMGPORT: 942 rv = bcmx_field_qualify_DstMimGport( 943 req->args.field_qualify_DstMimGport.entry, 944 req->args.field_qualify_DstMimGport.mim_port_id); 945 break; 946 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTMIMGPORT_GET: 947 rv = bcmx_field_qualify_DstMimGport_get( 948 req->args.field_qualify_DstMimGport_get.entry, 949 req->args.field_qualify_DstMimGport_get.mim_port_id); 950 break; 951 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTMPLSGPORT: 952 rv = bcmx_field_qualify_DstMplsGport( 953 req->args.field_qualify_DstMplsGport.entry, 954 req->args.field_qualify_DstMplsGport.mpls_port_id); 955 break; 956 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTMPLSGPORT_GET: 957 rv = bcmx_field_qualify_DstMplsGport_get( 958 req->args.field_qualify_DstMplsGport_get.entry, 959 req->args.field_qualify_DstMplsGport_get.mpls_port_id); 960 break; 961 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTMULTICASTGROUP: 962 rv = bcmx_field_qualify_DstMulticastGroup( 963 req->args.field_qualify_DstMulticastGroup.entry, 964 req->args.field_qualify_DstMulticastGroup.group); 965 break; 966 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTMULTICASTGROUP_GET: 967 rv = bcmx_field_qualify_DstMulticastGroup_get( 968 req->args.field_qualify_DstMulticastGroup_get.entry, 969 req->args.field_qualify_DstMulticastGroup_get.group); 970 break; 971 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTMULTIPATH: 972 rv = bcmx_field_qualify_DstMultipath( 973 req->args.field_qualify_DstMultipath.entry, 974 req->args.field_qualify_DstMultipath.mpintf); 975 break; 976 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTMULTIPATH_GET: 977 rv = bcmx_field_qualify_DstMultipath_get( 978 req->args.field_qualify_DstMultipath_get.entry, 979 req->args.field_qualify_DstMultipath_get.mpintf); 980 break; 981 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTPORT: 982 rv = bcmx_field_qualify_DstPort( 983 req->args.field_qualify_DstPort.entry, 984 req->args.field_qualify_DstPort.port); 985 break; 986 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTPORT_GET: 987 rv = bcmx_field_qualify_DstPort_get( 988 req->args.field_qualify_DstPort_get.entry, 989 req->args.field_qualify_DstPort_get.data_modid, 990 req->args.field_qualify_DstPort_get.mask_modid, 991 req->args.field_qualify_DstPort_get.data_port, 992 req->args.field_qualify_DstPort_get.mask_port); 993 break; 994 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTTRUNK: 995 rv = bcmx_field_qualify_DstTrunk( 996 req->args.field_qualify_DstTrunk.entry, 997 req->args.field_qualify_DstTrunk.tid); 998 break; 999 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTTRUNK_GET: 1000 rv = bcmx_field_qualify_DstTrunk_get( 1001 req->args.field_qualify_DstTrunk_get.entry, 1002 req->args.field_qualify_DstTrunk_get.data, 1003 req->args.field_qualify_DstTrunk_get.mask); 1004 break; 1005 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTWLANGPORT: 1006 rv = bcmx_field_qualify_DstWlanGport( 1007 req->args.field_qualify_DstWlanGport.entry, 1008 req->args.field_qualify_DstWlanGport.wlan_port_id); 1009 break; 1010 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DSTWLANGPORT_GET: 1011 rv = bcmx_field_qualify_DstWlanGport_get( 1012 req->args.field_qualify_DstWlanGport_get.entry, 1013 req->args.field_qualify_DstWlanGport_get.wlan_port_id); 1014 break; 1015 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_ETHERTYPE: 1016 rv = bcmx_field_qualify_EtherType( 1017 req->args.field_qualify_EtherType.entry, 1018 req->args.field_qualify_EtherType.data, 1019 req->args.field_qualify_EtherType.mask); 1020 break; 1021 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_ETHERTYPE_GET: 1022 rv = bcmx_field_qualify_EtherType_get( 1023 req->args.field_qualify_EtherType_get.entry, 1024 req->args.field_qualify_EtherType_get.data, 1025 req->args.field_qualify_EtherType_get.mask); 1026 break; 1027 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_EXTENSIONHEADER2TYPE: 1028 rv = bcmx_field_qualify_ExtensionHeader2Type( 1029 req->args.field_qualify_ExtensionHeader2Type.entry, 1030 req->args.field_qualify_ExtensionHeader2Type.data, 1031 req->args.field_qualify_ExtensionHeader2Type.mask); 1032 break; 1033 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_EXTENSIONHEADER2TYPE_GET: 1034 rv = bcmx_field_qualify_ExtensionHeader2Type_get( 1035 req->args.field_qualify_ExtensionHeader2Type_get.entry, 1036 req->args.field_qualify_ExtensionHeader2Type_get.data, 1037 req->args.field_qualify_ExtensionHeader2Type_get.mask); 1038 break; 1039 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_EXTENSIONHEADERSUBCODE: 1040 rv = bcmx_field_qualify_ExtensionHeaderSubCode( 1041 req->args.field_qualify_ExtensionHeaderSubCode.entry, 1042 req->args.field_qualify_ExtensionHeaderSubCode.data, 1043 req->args.field_qualify_ExtensionHeaderSubCode.mask); 1044 break; 1045 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_EXTENSIONHEADERSUBCODE_GET: 1046 rv = bcmx_field_qualify_ExtensionHeaderSubCode_get( 1047 req->args.field_qualify_ExtensionHeaderSubCode_get.entry, 1048 req->args.field_qualify_ExtensionHeaderSubCode_get.data, 1049 req->args.field_qualify_ExtensionHeaderSubCode_get.mask); 1050 break; 1051 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_EXTENSIONHEADERTYPE: 1052 rv = bcmx_field_qualify_ExtensionHeaderType( 1053 req->args.field_qualify_ExtensionHeaderType.entry, 1054 req->args.field_qualify_ExtensionHeaderType.data, 1055 req->args.field_qualify_ExtensionHeaderType.mask); 1056 break; 1057 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_EXTENSIONHEADERTYPE_GET: 1058 rv = bcmx_field_qualify_ExtensionHeaderType_get( 1059 req->args.field_qualify_ExtensionHeaderType_get.entry, 1060 req->args.field_qualify_ExtensionHeaderType_get.data, 1061 req->args.field_qualify_ExtensionHeaderType_get.mask); 1062 break; 1063 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_FABRICQUEUETAG: 1064 rv = bcmx_field_qualify_FabricQueueTag( 1065 req->args.field_qualify_FabricQueueTag.entry, 1066 req->args.field_qualify_FabricQueueTag.data, 1067 req->args.field_qualify_FabricQueueTag.mask); 1068 break; 1069 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_FABRICQUEUETAG_GET: 1070 rv = bcmx_field_qualify_FabricQueueTag_get( 1071 req->args.field_qualify_FabricQueueTag_get.entry, 1072 req->args.field_qualify_FabricQueueTag_get.data, 1073 req->args.field_qualify_FabricQueueTag_get.mask); 1074 break; 1075 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_FIBRECHANINNER: 1076 rv = bcmx_field_qualify_FibreChanInner( 1077 req->args.field_qualify_FibreChanInner.entry, 1078 req->args.field_qualify_FibreChanInner.fibre_chan_type); 1079 break; 1080 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_FIBRECHANINNER_GET: 1081 rv = bcmx_field_qualify_FibreChanInner_get( 1082 req->args.field_qualify_FibreChanInner_get.entry, 1083 req->args.field_qualify_FibreChanInner_get.fibre_chan_type); 1084 break; 1085 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_FIBRECHANOUTER: 1086 rv = bcmx_field_qualify_FibreChanOuter( 1087 req->args.field_qualify_FibreChanOuter.entry, 1088 req->args.field_qualify_FibreChanOuter.fibre_chan_type); 1089 break; 1090 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_FIBRECHANOUTER_GET: 1091 rv = bcmx_field_qualify_FibreChanOuter_get( 1092 req->args.field_qualify_FibreChanOuter_get.entry, 1093 req->args.field_qualify_FibreChanOuter_get.fibre_chan_type); 1094 break; 1095 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_FORWARDINGTYPE: 1096 rv = bcmx_field_qualify_ForwardingType( 1097 req->args.field_qualify_ForwardingType.entry, 1098 req->args.field_qualify_ForwardingType.type); 1099 break; 1100 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_FORWARDINGTYPE_GET: 1101 rv = bcmx_field_qualify_ForwardingType_get( 1102 req->args.field_qualify_ForwardingType_get.entry, 1103 req->args.field_qualify_ForwardingType_get.type); 1104 break; 1105 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_FORWARDINGVLANID: 1106 rv = bcmx_field_qualify_ForwardingVlanId( 1107 req->args.field_qualify_ForwardingVlanId.entry, 1108 req->args.field_qualify_ForwardingVlanId.data, 1109 req->args.field_qualify_ForwardingVlanId.mask); 1110 break; 1111 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_FORWARDINGVLANID_GET: 1112 rv = bcmx_field_qualify_ForwardingVlanId_get( 1113 req->args.field_qualify_ForwardingVlanId_get.entry, 1114 req->args.field_qualify_ForwardingVlanId_get.data, 1115 req->args.field_qualify_ForwardingVlanId_get.mask); 1116 break; 1117 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_FORWARDINGVLANVALID: 1118 rv = bcmx_field_qualify_ForwardingVlanValid( 1119 req->args.field_qualify_ForwardingVlanValid.entry, 1120 req->args.field_qualify_ForwardingVlanValid.data, 1121 req->args.field_qualify_ForwardingVlanValid.mask); 1122 break; 1123 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_FORWARDINGVLANVALID_GET: 1124 rv = bcmx_field_qualify_ForwardingVlanValid_get( 1125 req->args.field_qualify_ForwardingVlanValid_get.entry, 1126 req->args.field_qualify_ForwardingVlanValid_get.data, 1127 req->args.field_qualify_ForwardingVlanValid_get.mask); 1128 break; 1129 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_HIGIG: 1130 rv = bcmx_field_qualify_HiGig( 1131 req->args.field_qualify_HiGig.entry, 1132 req->args.field_qualify_HiGig.data, 1133 req->args.field_qualify_HiGig.mask); 1134 break; 1135 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_HIGIG_GET: 1136 rv = bcmx_field_qualify_HiGig_get( 1137 req->args.field_qualify_HiGig_get.entry, 1138 req->args.field_qualify_HiGig_get.data, 1139 req->args.field_qualify_HiGig_get.mask); 1140 break; 1141 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_ICMPTYPECODE_GET: 1142 rv = bcmx_field_qualify_IcmpTypeCode_get( 1143 req->args.field_qualify_IcmpTypeCode_get.entry, 1144 req->args.field_qualify_IcmpTypeCode_get.data, 1145 req->args.field_qualify_IcmpTypeCode_get.mask); 1146 break; 1147 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INPORT: 1148 rv = bcmx_field_qualify_InPort( 1149 req->args.field_qualify_InPort.entry, 1150 req->args.field_qualify_InPort.port); 1151 break; 1152 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INPORT_GET: 1153 rv = bcmx_field_qualify_InPort_get( 1154 req->args.field_qualify_InPort_get.entry, 1155 req->args.field_qualify_InPort_get.data, 1156 req->args.field_qualify_InPort_get.mask); 1157 break; 1158 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INPORTS: 1159 rv = bcmx_field_qualify_InPorts( 1160 req->args.field_qualify_InPorts.entry, 1161 req->args.field_qualify_InPorts.lplist); 1162 break; 1163 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INPORTS_GET: 1164 rv = bcmx_field_qualify_InPorts_get( 1165 req->args.field_qualify_InPorts_get.entry, 1166 req->args.field_qualify_InPorts_get.data, 1167 req->args.field_qualify_InPorts_get.mask); 1168 break; 1169 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INGRESSSTPSTATE: 1170 rv = bcmx_field_qualify_IngressStpState( 1171 req->args.field_qualify_IngressStpState.entry, 1172 req->args.field_qualify_IngressStpState.data, 1173 req->args.field_qualify_IngressStpState.mask); 1174 break; 1175 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INGRESSSTPSTATE_GET: 1176 rv = bcmx_field_qualify_IngressStpState_get( 1177 req->args.field_qualify_IngressStpState_get.entry, 1178 req->args.field_qualify_IngressStpState_get.data, 1179 req->args.field_qualify_IngressStpState_get.mask); 1180 break; 1181 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERDSCP: 1182 rv = bcmx_field_qualify_InnerDSCP( 1183 req->args.field_qualify_InnerDSCP.entry, 1184 req->args.field_qualify_InnerDSCP.data, 1185 req->args.field_qualify_InnerDSCP.mask); 1186 break; 1187 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERDSCP_GET: 1188 rv = bcmx_field_qualify_InnerDSCP_get( 1189 req->args.field_qualify_InnerDSCP_get.entry, 1190 req->args.field_qualify_InnerDSCP_get.data, 1191 req->args.field_qualify_InnerDSCP_get.mask); 1192 break; 1193 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERDSTIP: 1194 rv = bcmx_field_qualify_InnerDstIp( 1195 req->args.field_qualify_InnerDstIp.entry, 1196 req->args.field_qualify_InnerDstIp.data, 1197 req->args.field_qualify_InnerDstIp.mask); 1198 break; 1199 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERDSTIP6: 1200 rv = bcmx_field_qualify_InnerDstIp6( 1201 req->args.field_qualify_InnerDstIp6.entry, 1202 req->args.field_qualify_InnerDstIp6.data, 1203 req->args.field_qualify_InnerDstIp6.mask); 1204 break; 1205 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERDSTIP6HIGH: 1206 rv = bcmx_field_qualify_InnerDstIp6High( 1207 req->args.field_qualify_InnerDstIp6High.entry, 1208 req->args.field_qualify_InnerDstIp6High.data, 1209 req->args.field_qualify_InnerDstIp6High.mask); 1210 break; 1211 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERDSTIP6HIGH_GET: 1212 rv = bcmx_field_qualify_InnerDstIp6High_get( 1213 req->args.field_qualify_InnerDstIp6High_get.entry, 1214 req->args.field_qualify_InnerDstIp6High_get.data, 1215 req->args.field_qualify_InnerDstIp6High_get.mask); 1216 break; 1217 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERDSTIP6_GET: 1218 rv = bcmx_field_qualify_InnerDstIp6_get( 1219 req->args.field_qualify_InnerDstIp6_get.entry, 1220 req->args.field_qualify_InnerDstIp6_get.data, 1221 req->args.field_qualify_InnerDstIp6_get.mask); 1222 break; 1223 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERDSTIP_GET: 1224 rv = bcmx_field_qualify_InnerDstIp_get( 1225 req->args.field_qualify_InnerDstIp_get.entry, 1226 req->args.field_qualify_InnerDstIp_get.data, 1227 req->args.field_qualify_InnerDstIp_get.mask); 1228 break; 1229 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERIP6FLOWLABEL: 1230 rv = bcmx_field_qualify_InnerIp6FlowLabel( 1231 req->args.field_qualify_InnerIp6FlowLabel.entry, 1232 req->args.field_qualify_InnerIp6FlowLabel.data, 1233 req->args.field_qualify_InnerIp6FlowLabel.mask); 1234 break; 1235 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERIP6FLOWLABEL_GET: 1236 rv = bcmx_field_qualify_InnerIp6FlowLabel_get( 1237 req->args.field_qualify_InnerIp6FlowLabel_get.entry, 1238 req->args.field_qualify_InnerIp6FlowLabel_get.data, 1239 req->args.field_qualify_InnerIp6FlowLabel_get.mask); 1240 break; 1241 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERIPFRAG: 1242 rv = bcmx_field_qualify_InnerIpFrag( 1243 req->args.field_qualify_InnerIpFrag.entry, 1244 req->args.field_qualify_InnerIpFrag.frag_info); 1245 break; 1246 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERIPFRAG_GET: 1247 rv = bcmx_field_qualify_InnerIpFrag_get( 1248 req->args.field_qualify_InnerIpFrag_get.entry, 1249 req->args.field_qualify_InnerIpFrag_get.frag_info); 1250 break; 1251 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERIPPROTOCOL: 1252 rv = bcmx_field_qualify_InnerIpProtocol( 1253 req->args.field_qualify_InnerIpProtocol.entry, 1254 req->args.field_qualify_InnerIpProtocol.data, 1255 req->args.field_qualify_InnerIpProtocol.mask); 1256 break; 1257 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERIPPROTOCOLCOMMON: 1258 rv = bcmx_field_qualify_InnerIpProtocolCommon( 1259 req->args.field_qualify_InnerIpProtocolCommon.entry, 1260 req->args.field_qualify_InnerIpProtocolCommon.protocol); 1261 break; 1262 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERIPPROTOCOLCOMMON_GET: 1263 rv = bcmx_field_qualify_InnerIpProtocolCommon_get( 1264 req->args.field_qualify_InnerIpProtocolCommon_get.entry, 1265 req->args.field_qualify_InnerIpProtocolCommon_get.protocol); 1266 break; 1267 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERIPPROTOCOL_GET: 1268 rv = bcmx_field_qualify_InnerIpProtocol_get( 1269 req->args.field_qualify_InnerIpProtocol_get.entry, 1270 req->args.field_qualify_InnerIpProtocol_get.data, 1271 req->args.field_qualify_InnerIpProtocol_get.mask); 1272 break; 1273 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERIPTYPE: 1274 rv = bcmx_field_qualify_InnerIpType( 1275 req->args.field_qualify_InnerIpType.entry, 1276 req->args.field_qualify_InnerIpType.type); 1277 break; 1278 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERIPTYPE_GET: 1279 rv = bcmx_field_qualify_InnerIpType_get( 1280 req->args.field_qualify_InnerIpType_get.entry, 1281 req->args.field_qualify_InnerIpType_get.type); 1282 break; 1283 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERL4DSTPORT: 1284 rv = bcmx_field_qualify_InnerL4DstPort( 1285 req->args.field_qualify_InnerL4DstPort.entry, 1286 req->args.field_qualify_InnerL4DstPort.data, 1287 req->args.field_qualify_InnerL4DstPort.mask); 1288 break; 1289 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERL4DSTPORT_GET: 1290 rv = bcmx_field_qualify_InnerL4DstPort_get( 1291 req->args.field_qualify_InnerL4DstPort_get.entry, 1292 req->args.field_qualify_InnerL4DstPort_get.data, 1293 req->args.field_qualify_InnerL4DstPort_get.mask); 1294 break; 1295 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERL4SRCPORT: 1296 rv = bcmx_field_qualify_InnerL4SrcPort( 1297 req->args.field_qualify_InnerL4SrcPort.entry, 1298 req->args.field_qualify_InnerL4SrcPort.data, 1299 req->args.field_qualify_InnerL4SrcPort.mask); 1300 break; 1301 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERL4SRCPORT_GET: 1302 rv = bcmx_field_qualify_InnerL4SrcPort_get( 1303 req->args.field_qualify_InnerL4SrcPort_get.entry, 1304 req->args.field_qualify_InnerL4SrcPort_get.data, 1305 req->args.field_qualify_InnerL4SrcPort_get.mask); 1306 break; 1307 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERSRCIP: 1308 rv = bcmx_field_qualify_InnerSrcIp( 1309 req->args.field_qualify_InnerSrcIp.entry, 1310 req->args.field_qualify_InnerSrcIp.data, 1311 req->args.field_qualify_InnerSrcIp.mask); 1312 break; 1313 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERSRCIP6: 1314 rv = bcmx_field_qualify_InnerSrcIp6( 1315 req->args.field_qualify_InnerSrcIp6.entry, 1316 req->args.field_qualify_InnerSrcIp6.data, 1317 req->args.field_qualify_InnerSrcIp6.mask); 1318 break; 1319 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERSRCIP6HIGH: 1320 rv = bcmx_field_qualify_InnerSrcIp6High( 1321 req->args.field_qualify_InnerSrcIp6High.entry, 1322 req->args.field_qualify_InnerSrcIp6High.data, 1323 req->args.field_qualify_InnerSrcIp6High.mask); 1324 break; 1325 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERSRCIP6HIGH_GET: 1326 rv = bcmx_field_qualify_InnerSrcIp6High_get( 1327 req->args.field_qualify_InnerSrcIp6High_get.entry, 1328 req->args.field_qualify_InnerSrcIp6High_get.data, 1329 req->args.field_qualify_InnerSrcIp6High_get.mask); 1330 break; 1331 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERSRCIP6_GET: 1332 rv = bcmx_field_qualify_InnerSrcIp6_get( 1333 req->args.field_qualify_InnerSrcIp6_get.entry, 1334 req->args.field_qualify_InnerSrcIp6_get.data, 1335 req->args.field_qualify_InnerSrcIp6_get.mask); 1336 break; 1337 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERSRCIP_GET: 1338 rv = bcmx_field_qualify_InnerSrcIp_get( 1339 req->args.field_qualify_InnerSrcIp_get.entry, 1340 req->args.field_qualify_InnerSrcIp_get.data, 1341 req->args.field_qualify_InnerSrcIp_get.mask); 1342 break; 1343 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERTOS: 1344 rv = bcmx_field_qualify_InnerTos( 1345 req->args.field_qualify_InnerTos.entry, 1346 req->args.field_qualify_InnerTos.data, 1347 req->args.field_qualify_InnerTos.mask); 1348 break; 1349 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERTOS_GET: 1350 rv = bcmx_field_qualify_InnerTos_get( 1351 req->args.field_qualify_InnerTos_get.entry, 1352 req->args.field_qualify_InnerTos_get.data, 1353 req->args.field_qualify_InnerTos_get.mask); 1354 break; 1355 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERTPID: 1356 rv = bcmx_field_qualify_InnerTpid( 1357 req->args.field_qualify_InnerTpid.entry, 1358 req->args.field_qualify_InnerTpid.tpid); 1359 break; 1360 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERTPID_GET: 1361 rv = bcmx_field_qualify_InnerTpid_get( 1362 req->args.field_qualify_InnerTpid_get.entry, 1363 req->args.field_qualify_InnerTpid_get.tpid); 1364 break; 1365 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERTTL: 1366 rv = bcmx_field_qualify_InnerTtl( 1367 req->args.field_qualify_InnerTtl.entry, 1368 req->args.field_qualify_InnerTtl.data, 1369 req->args.field_qualify_InnerTtl.mask); 1370 break; 1371 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERTTL_GET: 1372 rv = bcmx_field_qualify_InnerTtl_get( 1373 req->args.field_qualify_InnerTtl_get.entry, 1374 req->args.field_qualify_InnerTtl_get.data, 1375 req->args.field_qualify_InnerTtl_get.mask); 1376 break; 1377 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERVLAN: 1378 rv = bcmx_field_qualify_InnerVlan( 1379 req->args.field_qualify_InnerVlan.entry, 1380 req->args.field_qualify_InnerVlan.data, 1381 req->args.field_qualify_InnerVlan.mask); 1382 break; 1383 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERVLANCFI: 1384 rv = bcmx_field_qualify_InnerVlanCfi( 1385 req->args.field_qualify_InnerVlanCfi.entry, 1386 req->args.field_qualify_InnerVlanCfi.data, 1387 req->args.field_qualify_InnerVlanCfi.mask); 1388 break; 1389 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERVLANCFI_GET: 1390 rv = bcmx_field_qualify_InnerVlanCfi_get( 1391 req->args.field_qualify_InnerVlanCfi_get.entry, 1392 req->args.field_qualify_InnerVlanCfi_get.data, 1393 req->args.field_qualify_InnerVlanCfi_get.mask); 1394 break; 1395 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERVLANID: 1396 rv = bcmx_field_qualify_InnerVlanId( 1397 req->args.field_qualify_InnerVlanId.entry, 1398 req->args.field_qualify_InnerVlanId.data, 1399 req->args.field_qualify_InnerVlanId.mask); 1400 break; 1401 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERVLANID_GET: 1402 rv = bcmx_field_qualify_InnerVlanId_get( 1403 req->args.field_qualify_InnerVlanId_get.entry, 1404 req->args.field_qualify_InnerVlanId_get.data, 1405 req->args.field_qualify_InnerVlanId_get.mask); 1406 break; 1407 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERVLANPRI: 1408 rv = bcmx_field_qualify_InnerVlanPri( 1409 req->args.field_qualify_InnerVlanPri.entry, 1410 req->args.field_qualify_InnerVlanPri.data, 1411 req->args.field_qualify_InnerVlanPri.mask); 1412 break; 1413 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERVLANPRI_GET: 1414 rv = bcmx_field_qualify_InnerVlanPri_get( 1415 req->args.field_qualify_InnerVlanPri_get.entry, 1416 req->args.field_qualify_InnerVlanPri_get.data, 1417 req->args.field_qualify_InnerVlanPri_get.mask); 1418 break; 1419 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INNERVLAN_GET: 1420 rv = bcmx_field_qualify_InnerVlan_get( 1421 req->args.field_qualify_InnerVlan_get.entry, 1422 req->args.field_qualify_InnerVlan_get.data, 1423 req->args.field_qualify_InnerVlan_get.mask); 1424 break; 1425 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INTPRIORITY: 1426 rv = bcmx_field_qualify_IntPriority( 1427 req->args.field_qualify_IntPriority.entry, 1428 req->args.field_qualify_IntPriority.data, 1429 req->args.field_qualify_IntPriority.mask); 1430 break; 1431 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INTPRIORITY_GET: 1432 rv = bcmx_field_qualify_IntPriority_get( 1433 req->args.field_qualify_IntPriority_get.entry, 1434 req->args.field_qualify_IntPriority_get.data, 1435 req->args.field_qualify_IntPriority_get.mask); 1436 break; 1437 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INTERFACECLASSL2: 1438 rv = bcmx_field_qualify_InterfaceClassL2( 1439 req->args.field_qualify_InterfaceClassL2.entry, 1440 req->args.field_qualify_InterfaceClassL2.data, 1441 req->args.field_qualify_InterfaceClassL2.mask); 1442 break; 1443 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INTERFACECLASSL2_GET: 1444 rv = bcmx_field_qualify_InterfaceClassL2_get( 1445 req->args.field_qualify_InterfaceClassL2_get.entry, 1446 req->args.field_qualify_InterfaceClassL2_get.data, 1447 req->args.field_qualify_InterfaceClassL2_get.mask); 1448 break; 1449 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INTERFACECLASSL3: 1450 rv = bcmx_field_qualify_InterfaceClassL3( 1451 req->args.field_qualify_InterfaceClassL3.entry, 1452 req->args.field_qualify_InterfaceClassL3.data, 1453 req->args.field_qualify_InterfaceClassL3.mask); 1454 break; 1455 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INTERFACECLASSL3_GET: 1456 rv = bcmx_field_qualify_InterfaceClassL3_get( 1457 req->args.field_qualify_InterfaceClassL3_get.entry, 1458 req->args.field_qualify_InterfaceClassL3_get.data, 1459 req->args.field_qualify_InterfaceClassL3_get.mask); 1460 break; 1461 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INTERFACECLASSPORT: 1462 rv = bcmx_field_qualify_InterfaceClassPort( 1463 req->args.field_qualify_InterfaceClassPort.entry, 1464 req->args.field_qualify_InterfaceClassPort.data, 1465 req->args.field_qualify_InterfaceClassPort.mask); 1466 break; 1467 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_INTERFACECLASSPORT_GET: 1468 rv = bcmx_field_qualify_InterfaceClassPort_get( 1469 req->args.field_qualify_InterfaceClassPort_get.entry, 1470 req->args.field_qualify_InterfaceClassPort_get.data, 1471 req->args.field_qualify_InterfaceClassPort_get.mask); 1472 break; 1473 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IP6FLOWLABEL: 1474 rv = bcmx_field_qualify_Ip6FlowLabel( 1475 req->args.field_qualify_Ip6FlowLabel.entry, 1476 req->args.field_qualify_Ip6FlowLabel.data, 1477 req->args.field_qualify_Ip6FlowLabel.mask); 1478 break; 1479 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IP6FLOWLABEL_GET: 1480 rv = bcmx_field_qualify_Ip6FlowLabel_get( 1481 req->args.field_qualify_Ip6FlowLabel_get.entry, 1482 req->args.field_qualify_Ip6FlowLabel_get.data, 1483 req->args.field_qualify_Ip6FlowLabel_get.mask); 1484 break; 1485 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IP6HOPLIMIT: 1486 rv = bcmx_field_qualify_Ip6HopLimit( 1487 req->args.field_qualify_Ip6HopLimit.entry, 1488 req->args.field_qualify_Ip6HopLimit.data, 1489 req->args.field_qualify_Ip6HopLimit.mask); 1490 break; 1491 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IP6HOPLIMIT_GET: 1492 rv = bcmx_field_qualify_Ip6HopLimit_get( 1493 req->args.field_qualify_Ip6HopLimit_get.entry, 1494 req->args.field_qualify_Ip6HopLimit_get.data, 1495 req->args.field_qualify_Ip6HopLimit_get.mask); 1496 break; 1497 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IP6NEXTHEADER: 1498 rv = bcmx_field_qualify_Ip6NextHeader( 1499 req->args.field_qualify_Ip6NextHeader.entry, 1500 req->args.field_qualify_Ip6NextHeader.data, 1501 req->args.field_qualify_Ip6NextHeader.mask); 1502 break; 1503 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IP6NEXTHEADER_GET: 1504 rv = bcmx_field_qualify_Ip6NextHeader_get( 1505 req->args.field_qualify_Ip6NextHeader_get.entry, 1506 req->args.field_qualify_Ip6NextHeader_get.data, 1507 req->args.field_qualify_Ip6NextHeader_get.mask); 1508 break; 1509 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IP6TRAFFICCLASS: 1510 rv = bcmx_field_qualify_Ip6TrafficClass( 1511 req->args.field_qualify_Ip6TrafficClass.entry, 1512 req->args.field_qualify_Ip6TrafficClass.data, 1513 req->args.field_qualify_Ip6TrafficClass.mask); 1514 break; 1515 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IP6TRAFFICCLASS_GET: 1516 rv = bcmx_field_qualify_Ip6TrafficClass_get( 1517 req->args.field_qualify_Ip6TrafficClass_get.entry, 1518 req->args.field_qualify_Ip6TrafficClass_get.data, 1519 req->args.field_qualify_Ip6TrafficClass_get.mask); 1520 break; 1521 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPFLAGS: 1522 rv = bcmx_field_qualify_IpFlags( 1523 req->args.field_qualify_IpFlags.entry, 1524 req->args.field_qualify_IpFlags.data, 1525 req->args.field_qualify_IpFlags.mask); 1526 break; 1527 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPFLAGS_GET: 1528 rv = bcmx_field_qualify_IpFlags_get( 1529 req->args.field_qualify_IpFlags_get.entry, 1530 req->args.field_qualify_IpFlags_get.data, 1531 req->args.field_qualify_IpFlags_get.mask); 1532 break; 1533 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPFRAG: 1534 rv = bcmx_field_qualify_IpFrag( 1535 req->args.field_qualify_IpFrag.entry, 1536 req->args.field_qualify_IpFrag.frag_info); 1537 break; 1538 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPFRAG_GET: 1539 rv = bcmx_field_qualify_IpFrag_get( 1540 req->args.field_qualify_IpFrag_get.entry, 1541 req->args.field_qualify_IpFrag_get.frag_info); 1542 break; 1543 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPINFO: 1544 rv = bcmx_field_qualify_IpInfo( 1545 req->args.field_qualify_IpInfo.entry, 1546 req->args.field_qualify_IpInfo.data, 1547 req->args.field_qualify_IpInfo.mask); 1548 break; 1549 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPINFO_GET: 1550 rv = bcmx_field_qualify_IpInfo_get( 1551 req->args.field_qualify_IpInfo_get.entry, 1552 req->args.field_qualify_IpInfo_get.data, 1553 req->args.field_qualify_IpInfo_get.mask); 1554 break; 1555 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPPROTOCOL: 1556 rv = bcmx_field_qualify_IpProtocol( 1557 req->args.field_qualify_IpProtocol.entry, 1558 req->args.field_qualify_IpProtocol.data, 1559 req->args.field_qualify_IpProtocol.mask); 1560 break; 1561 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPPROTOCOLCOMMON: 1562 rv = bcmx_field_qualify_IpProtocolCommon( 1563 req->args.field_qualify_IpProtocolCommon.entry, 1564 req->args.field_qualify_IpProtocolCommon.protocol); 1565 break; 1566 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPPROTOCOLCOMMON_GET: 1567 rv = bcmx_field_qualify_IpProtocolCommon_get( 1568 req->args.field_qualify_IpProtocolCommon_get.entry, 1569 req->args.field_qualify_IpProtocolCommon_get.protocol); 1570 break; 1571 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPPROTOCOL_GET: 1572 rv = bcmx_field_qualify_IpProtocol_get( 1573 req->args.field_qualify_IpProtocol_get.entry, 1574 req->args.field_qualify_IpProtocol_get.data, 1575 req->args.field_qualify_IpProtocol_get.mask); 1576 break; 1577 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPTYPE: 1578 rv = bcmx_field_qualify_IpType( 1579 req->args.field_qualify_IpType.entry, 1580 req->args.field_qualify_IpType.type); 1581 break; 1582 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPTYPE_GET: 1583 rv = bcmx_field_qualify_IpType_get( 1584 req->args.field_qualify_IpType_get.entry, 1585 req->args.field_qualify_IpType_get.type); 1586 break; 1587 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPMCSTARGROUPHIT: 1588 rv = bcmx_field_qualify_IpmcStarGroupHit( 1589 req->args.field_qualify_IpmcStarGroupHit.entry, 1590 req->args.field_qualify_IpmcStarGroupHit.data, 1591 req->args.field_qualify_IpmcStarGroupHit.mask); 1592 break; 1593 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_IPMCSTARGROUPHIT_GET: 1594 rv = bcmx_field_qualify_IpmcStarGroupHit_get( 1595 req->args.field_qualify_IpmcStarGroupHit_get.entry, 1596 req->args.field_qualify_IpmcStarGroupHit_get.data, 1597 req->args.field_qualify_IpmcStarGroupHit_get.mask); 1598 break; 1599 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2CACHEHIT: 1600 rv = bcmx_field_qualify_L2CacheHit( 1601 req->args.field_qualify_L2CacheHit.entry, 1602 req->args.field_qualify_L2CacheHit.data, 1603 req->args.field_qualify_L2CacheHit.mask); 1604 break; 1605 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2CACHEHIT_GET: 1606 rv = bcmx_field_qualify_L2CacheHit_get( 1607 req->args.field_qualify_L2CacheHit_get.entry, 1608 req->args.field_qualify_L2CacheHit_get.data, 1609 req->args.field_qualify_L2CacheHit_get.mask); 1610 break; 1611 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2DESTHIT: 1612 rv = bcmx_field_qualify_L2DestHit( 1613 req->args.field_qualify_L2DestHit.entry, 1614 req->args.field_qualify_L2DestHit.data, 1615 req->args.field_qualify_L2DestHit.mask); 1616 break; 1617 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2DESTHIT_GET: 1618 rv = bcmx_field_qualify_L2DestHit_get( 1619 req->args.field_qualify_L2DestHit_get.entry, 1620 req->args.field_qualify_L2DestHit_get.data, 1621 req->args.field_qualify_L2DestHit_get.mask); 1622 break; 1623 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2FORMAT: 1624 rv = bcmx_field_qualify_L2Format( 1625 req->args.field_qualify_L2Format.entry, 1626 req->args.field_qualify_L2Format.type); 1627 break; 1628 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2FORMAT_GET: 1629 rv = bcmx_field_qualify_L2Format_get( 1630 req->args.field_qualify_L2Format_get.entry, 1631 req->args.field_qualify_L2Format_get.type); 1632 break; 1633 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2PAYLOADFIRSTEIGHTBYTES: 1634 rv = bcmx_field_qualify_L2PayloadFirstEightBytes( 1635 req->args.field_qualify_L2PayloadFirstEightBytes.entry, 1636 req->args.field_qualify_L2PayloadFirstEightBytes.data1, 1637 req->args.field_qualify_L2PayloadFirstEightBytes.data2, 1638 req->args.field_qualify_L2PayloadFirstEightBytes.mask1, 1639 req->args.field_qualify_L2PayloadFirstEightBytes.mask2); 1640 break; 1641 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2PAYLOADFIRSTEIGHTBYTES_GET: 1642 rv = bcmx_field_qualify_L2PayloadFirstEightBytes_get( 1643 req->args.field_qualify_L2PayloadFirstEightBytes_get.entry, 1644 req->args.field_qualify_L2PayloadFirstEightBytes_get.data1, 1645 req->args.field_qualify_L2PayloadFirstEightBytes_get.data2, 1646 req->args.field_qualify_L2PayloadFirstEightBytes_get.mask1, 1647 req->args.field_qualify_L2PayloadFirstEightBytes_get.mask2); 1648 break; 1649 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2SRCHIT: 1650 rv = bcmx_field_qualify_L2SrcHit( 1651 req->args.field_qualify_L2SrcHit.entry, 1652 req->args.field_qualify_L2SrcHit.data, 1653 req->args.field_qualify_L2SrcHit.mask); 1654 break; 1655 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2SRCHIT_GET: 1656 rv = bcmx_field_qualify_L2SrcHit_get( 1657 req->args.field_qualify_L2SrcHit_get.entry, 1658 req->args.field_qualify_L2SrcHit_get.data, 1659 req->args.field_qualify_L2SrcHit_get.mask); 1660 break; 1661 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2SRCSTATIC: 1662 rv = bcmx_field_qualify_L2SrcStatic( 1663 req->args.field_qualify_L2SrcStatic.entry, 1664 req->args.field_qualify_L2SrcStatic.data, 1665 req->args.field_qualify_L2SrcStatic.mask); 1666 break; 1667 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2SRCSTATIC_GET: 1668 rv = bcmx_field_qualify_L2SrcStatic_get( 1669 req->args.field_qualify_L2SrcStatic_get.entry, 1670 req->args.field_qualify_L2SrcStatic_get.data, 1671 req->args.field_qualify_L2SrcStatic_get.mask); 1672 break; 1673 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2STATIONMOVE: 1674 rv = bcmx_field_qualify_L2StationMove( 1675 req->args.field_qualify_L2StationMove.entry, 1676 req->args.field_qualify_L2StationMove.data, 1677 req->args.field_qualify_L2StationMove.mask); 1678 break; 1679 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L2STATIONMOVE_GET: 1680 rv = bcmx_field_qualify_L2StationMove_get( 1681 req->args.field_qualify_L2StationMove_get.entry, 1682 req->args.field_qualify_L2StationMove_get.data, 1683 req->args.field_qualify_L2StationMove_get.mask); 1684 break; 1685 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L3DESTHOSTHIT: 1686 rv = bcmx_field_qualify_L3DestHostHit( 1687 req->args.field_qualify_L3DestHostHit.entry, 1688 req->args.field_qualify_L3DestHostHit.data, 1689 req->args.field_qualify_L3DestHostHit.mask); 1690 break; 1691 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L3DESTHOSTHIT_GET: 1692 rv = bcmx_field_qualify_L3DestHostHit_get( 1693 req->args.field_qualify_L3DestHostHit_get.entry, 1694 req->args.field_qualify_L3DestHostHit_get.data, 1695 req->args.field_qualify_L3DestHostHit_get.mask); 1696 break; 1697 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L3DESTROUTEHIT: 1698 rv = bcmx_field_qualify_L3DestRouteHit( 1699 req->args.field_qualify_L3DestRouteHit.entry, 1700 req->args.field_qualify_L3DestRouteHit.data, 1701 req->args.field_qualify_L3DestRouteHit.mask); 1702 break; 1703 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L3DESTROUTEHIT_GET: 1704 rv = bcmx_field_qualify_L3DestRouteHit_get( 1705 req->args.field_qualify_L3DestRouteHit_get.entry, 1706 req->args.field_qualify_L3DestRouteHit_get.data, 1707 req->args.field_qualify_L3DestRouteHit_get.mask); 1708 break; 1709 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L3INGRESS: 1710 rv = bcmx_field_qualify_L3Ingress( 1711 req->args.field_qualify_L3Ingress.entry, 1712 req->args.field_qualify_L3Ingress.data, 1713 req->args.field_qualify_L3Ingress.mask); 1714 break; 1715 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L3INGRESS_GET: 1716 rv = bcmx_field_qualify_L3Ingress_get( 1717 req->args.field_qualify_L3Ingress_get.entry, 1718 req->args.field_qualify_L3Ingress_get.data, 1719 req->args.field_qualify_L3Ingress_get.mask); 1720 break; 1721 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L3ROUTABLE: 1722 rv = bcmx_field_qualify_L3Routable( 1723 req->args.field_qualify_L3Routable.entry, 1724 req->args.field_qualify_L3Routable.data, 1725 req->args.field_qualify_L3Routable.mask); 1726 break; 1727 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L3ROUTABLE_GET: 1728 rv = bcmx_field_qualify_L3Routable_get( 1729 req->args.field_qualify_L3Routable_get.entry, 1730 req->args.field_qualify_L3Routable_get.data, 1731 req->args.field_qualify_L3Routable_get.mask); 1732 break; 1733 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L3SRCHOSTHIT: 1734 rv = bcmx_field_qualify_L3SrcHostHit( 1735 req->args.field_qualify_L3SrcHostHit.entry, 1736 req->args.field_qualify_L3SrcHostHit.data, 1737 req->args.field_qualify_L3SrcHostHit.mask); 1738 break; 1739 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L3SRCHOSTHIT_GET: 1740 rv = bcmx_field_qualify_L3SrcHostHit_get( 1741 req->args.field_qualify_L3SrcHostHit_get.entry, 1742 req->args.field_qualify_L3SrcHostHit_get.data, 1743 req->args.field_qualify_L3SrcHostHit_get.mask); 1744 break; 1745 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L4DSTPORT: 1746 rv = bcmx_field_qualify_L4DstPort( 1747 req->args.field_qualify_L4DstPort.entry, 1748 req->args.field_qualify_L4DstPort.data, 1749 req->args.field_qualify_L4DstPort.mask); 1750 break; 1751 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L4DSTPORT_GET: 1752 rv = bcmx_field_qualify_L4DstPort_get( 1753 req->args.field_qualify_L4DstPort_get.entry, 1754 req->args.field_qualify_L4DstPort_get.data, 1755 req->args.field_qualify_L4DstPort_get.mask); 1756 break; 1757 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L4PORTS: 1758 rv = bcmx_field_qualify_L4Ports( 1759 req->args.field_qualify_L4Ports.entry, 1760 req->args.field_qualify_L4Ports.data, 1761 req->args.field_qualify_L4Ports.mask); 1762 break; 1763 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L4PORTS_GET: 1764 rv = bcmx_field_qualify_L4Ports_get( 1765 req->args.field_qualify_L4Ports_get.entry, 1766 req->args.field_qualify_L4Ports_get.data, 1767 req->args.field_qualify_L4Ports_get.mask); 1768 break; 1769 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L4SRCPORT: 1770 rv = bcmx_field_qualify_L4SrcPort( 1771 req->args.field_qualify_L4SrcPort.entry, 1772 req->args.field_qualify_L4SrcPort.data, 1773 req->args.field_qualify_L4SrcPort.mask); 1774 break; 1775 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_L4SRCPORT_GET: 1776 rv = bcmx_field_qualify_L4SrcPort_get( 1777 req->args.field_qualify_L4SrcPort_get.entry, 1778 req->args.field_qualify_L4SrcPort_get.data, 1779 req->args.field_qualify_L4SrcPort_get.mask); 1780 break; 1781 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_LLC: 1782 rv = bcmx_field_qualify_Llc( 1783 req->args.field_qualify_Llc.entry, 1784 req->args.field_qualify_Llc.data, 1785 req->args.field_qualify_Llc.mask); 1786 break; 1787 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_LLC_GET: 1788 rv = bcmx_field_qualify_Llc_get( 1789 req->args.field_qualify_Llc_get.entry, 1790 req->args.field_qualify_Llc_get.data, 1791 req->args.field_qualify_Llc_get.mask); 1792 break; 1793 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_LOOPBACK: 1794 rv = bcmx_field_qualify_Loopback( 1795 req->args.field_qualify_Loopback.entry, 1796 req->args.field_qualify_Loopback.data, 1797 req->args.field_qualify_Loopback.mask); 1798 break; 1799 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_LOOPBACKTYPE: 1800 rv = bcmx_field_qualify_LoopbackType( 1801 req->args.field_qualify_LoopbackType.entry, 1802 req->args.field_qualify_LoopbackType.loopback_type); 1803 break; 1804 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_LOOPBACKTYPE_GET: 1805 rv = bcmx_field_qualify_LoopbackType_get( 1806 req->args.field_qualify_LoopbackType_get.entry, 1807 req->args.field_qualify_LoopbackType_get.loopback_type); 1808 break; 1809 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_LOOPBACK_GET: 1810 rv = bcmx_field_qualify_Loopback_get( 1811 req->args.field_qualify_Loopback_get.entry, 1812 req->args.field_qualify_Loopback_get.data, 1813 req->args.field_qualify_Loopback_get.mask); 1814 break; 1815 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_MHOPCODE: 1816 rv = bcmx_field_qualify_MHOpcode( 1817 req->args.field_qualify_MHOpcode.entry, 1818 req->args.field_qualify_MHOpcode.data, 1819 req->args.field_qualify_MHOpcode.mask); 1820 break; 1821 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_MHOPCODE_GET: 1822 rv = bcmx_field_qualify_MHOpcode_get( 1823 req->args.field_qualify_MHOpcode_get.entry, 1824 req->args.field_qualify_MHOpcode_get.data, 1825 req->args.field_qualify_MHOpcode_get.mask); 1826 break; 1827 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_MIRRORCOPY: 1828 rv = bcmx_field_qualify_MirrorCopy( 1829 req->args.field_qualify_MirrorCopy.entry, 1830 req->args.field_qualify_MirrorCopy.data, 1831 req->args.field_qualify_MirrorCopy.mask); 1832 break; 1833 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_MIRRORCOPY_GET: 1834 rv = bcmx_field_qualify_MirrorCopy_get( 1835 req->args.field_qualify_MirrorCopy_get.entry, 1836 req->args.field_qualify_MirrorCopy_get.data, 1837 req->args.field_qualify_MirrorCopy_get.mask); 1838 break; 1839 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_MPLSTERMINATED: 1840 rv = bcmx_field_qualify_MplsTerminated( 1841 req->args.field_qualify_MplsTerminated.entry, 1842 req->args.field_qualify_MplsTerminated.data, 1843 req->args.field_qualify_MplsTerminated.mask); 1844 break; 1845 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_MPLSTERMINATED_GET: 1846 rv = bcmx_field_qualify_MplsTerminated_get( 1847 req->args.field_qualify_MplsTerminated_get.entry, 1848 req->args.field_qualify_MplsTerminated_get.data, 1849 req->args.field_qualify_MplsTerminated_get.mask); 1850 break; 1851 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_MYSTATIONHIT: 1852 rv = bcmx_field_qualify_MyStationHit( 1853 req->args.field_qualify_MyStationHit.entry, 1854 req->args.field_qualify_MyStationHit.data, 1855 req->args.field_qualify_MyStationHit.mask); 1856 break; 1857 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_MYSTATIONHIT_GET: 1858 rv = bcmx_field_qualify_MyStationHit_get( 1859 req->args.field_qualify_MyStationHit_get.entry, 1860 req->args.field_qualify_MyStationHit_get.data, 1861 req->args.field_qualify_MyStationHit_get.mask); 1862 break; 1863 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTPORT: 1864 rv = bcmx_field_qualify_OutPort( 1865 req->args.field_qualify_OutPort.entry, 1866 req->args.field_qualify_OutPort.port); 1867 break; 1868 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTPORT_GET: 1869 rv = bcmx_field_qualify_OutPort_get( 1870 req->args.field_qualify_OutPort_get.entry, 1871 req->args.field_qualify_OutPort_get.data, 1872 req->args.field_qualify_OutPort_get.mask); 1873 break; 1874 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTPORTS: 1875 rv = bcmx_field_qualify_OutPorts( 1876 req->args.field_qualify_OutPorts.entry, 1877 req->args.field_qualify_OutPorts.lplist); 1878 break; 1879 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTPORTS_GET: 1880 rv = bcmx_field_qualify_OutPorts_get( 1881 req->args.field_qualify_OutPorts_get.entry, 1882 req->args.field_qualify_OutPorts_get.data, 1883 req->args.field_qualify_OutPorts_get.mask); 1884 break; 1885 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTERTPID: 1886 rv = bcmx_field_qualify_OuterTpid( 1887 req->args.field_qualify_OuterTpid.entry, 1888 req->args.field_qualify_OuterTpid.tpid); 1889 break; 1890 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTERTPID_GET: 1891 rv = bcmx_field_qualify_OuterTpid_get( 1892 req->args.field_qualify_OuterTpid_get.entry, 1893 req->args.field_qualify_OuterTpid_get.tpid); 1894 break; 1895 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTERVLAN: 1896 rv = bcmx_field_qualify_OuterVlan( 1897 req->args.field_qualify_OuterVlan.entry, 1898 req->args.field_qualify_OuterVlan.data, 1899 req->args.field_qualify_OuterVlan.mask); 1900 break; 1901 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTERVLANCFI: 1902 rv = bcmx_field_qualify_OuterVlanCfi( 1903 req->args.field_qualify_OuterVlanCfi.entry, 1904 req->args.field_qualify_OuterVlanCfi.data, 1905 req->args.field_qualify_OuterVlanCfi.mask); 1906 break; 1907 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTERVLANCFI_GET: 1908 rv = bcmx_field_qualify_OuterVlanCfi_get( 1909 req->args.field_qualify_OuterVlanCfi_get.entry, 1910 req->args.field_qualify_OuterVlanCfi_get.data, 1911 req->args.field_qualify_OuterVlanCfi_get.mask); 1912 break; 1913 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTERVLANID: 1914 rv = bcmx_field_qualify_OuterVlanId( 1915 req->args.field_qualify_OuterVlanId.entry, 1916 req->args.field_qualify_OuterVlanId.data, 1917 req->args.field_qualify_OuterVlanId.mask); 1918 break; 1919 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTERVLANID_GET: 1920 rv = bcmx_field_qualify_OuterVlanId_get( 1921 req->args.field_qualify_OuterVlanId_get.entry, 1922 req->args.field_qualify_OuterVlanId_get.data, 1923 req->args.field_qualify_OuterVlanId_get.mask); 1924 break; 1925 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTERVLANPRI: 1926 rv = bcmx_field_qualify_OuterVlanPri( 1927 req->args.field_qualify_OuterVlanPri.entry, 1928 req->args.field_qualify_OuterVlanPri.data, 1929 req->args.field_qualify_OuterVlanPri.mask); 1930 break; 1931 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTERVLANPRI_GET: 1932 rv = bcmx_field_qualify_OuterVlanPri_get( 1933 req->args.field_qualify_OuterVlanPri_get.entry, 1934 req->args.field_qualify_OuterVlanPri_get.data, 1935 req->args.field_qualify_OuterVlanPri_get.mask); 1936 break; 1937 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_OUTERVLAN_GET: 1938 rv = bcmx_field_qualify_OuterVlan_get( 1939 req->args.field_qualify_OuterVlan_get.entry, 1940 req->args.field_qualify_OuterVlan_get.data, 1941 req->args.field_qualify_OuterVlan_get.mask); 1942 break; 1943 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_PACKETRES: 1944 rv = bcmx_field_qualify_PacketRes( 1945 req->args.field_qualify_PacketRes.entry, 1946 req->args.field_qualify_PacketRes.data, 1947 req->args.field_qualify_PacketRes.mask); 1948 break; 1949 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_PACKETRES_GET: 1950 rv = bcmx_field_qualify_PacketRes_get( 1951 req->args.field_qualify_PacketRes_get.entry, 1952 req->args.field_qualify_PacketRes_get.data, 1953 req->args.field_qualify_PacketRes_get.mask); 1954 break; 1955 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_RANGECHECK: 1956 rv = bcmx_field_qualify_RangeCheck( 1957 req->args.field_qualify_RangeCheck.entry, 1958 req->args.field_qualify_RangeCheck.range, 1959 req->args.field_qualify_RangeCheck.result); 1960 break; 1961 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_RANGECHECK_GET: 1962 rv = bcmx_field_qualify_RangeCheck_get( 1963 req->args.field_qualify_RangeCheck_get.entry, 1964 req->args.field_qualify_RangeCheck_get.max_count, 1965 req->args.field_qualify_RangeCheck_get.range, 1966 req->args.field_qualify_RangeCheck_get.invert, 1967 req->args.field_qualify_RangeCheck_get.count); 1968 break; 1969 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SNAP: 1970 rv = bcmx_field_qualify_Snap( 1971 req->args.field_qualify_Snap.entry, 1972 req->args.field_qualify_Snap.data, 1973 req->args.field_qualify_Snap.mask); 1974 break; 1975 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SNAP_GET: 1976 rv = bcmx_field_qualify_Snap_get( 1977 req->args.field_qualify_Snap_get.entry, 1978 req->args.field_qualify_Snap_get.data, 1979 req->args.field_qualify_Snap_get.mask); 1980 break; 1981 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCCLASSFIELD: 1982 rv = bcmx_field_qualify_SrcClassField( 1983 req->args.field_qualify_SrcClassField.entry, 1984 req->args.field_qualify_SrcClassField.data, 1985 req->args.field_qualify_SrcClassField.mask); 1986 break; 1987 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCCLASSFIELD_GET: 1988 rv = bcmx_field_qualify_SrcClassField_get( 1989 req->args.field_qualify_SrcClassField_get.entry, 1990 req->args.field_qualify_SrcClassField_get.data, 1991 req->args.field_qualify_SrcClassField_get.mask); 1992 break; 1993 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCCLASSL2: 1994 rv = bcmx_field_qualify_SrcClassL2( 1995 req->args.field_qualify_SrcClassL2.entry, 1996 req->args.field_qualify_SrcClassL2.data, 1997 req->args.field_qualify_SrcClassL2.mask); 1998 break; 1999 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCCLASSL2_GET: 2000 rv = bcmx_field_qualify_SrcClassL2_get( 2001 req->args.field_qualify_SrcClassL2_get.entry, 2002 req->args.field_qualify_SrcClassL2_get.data, 2003 req->args.field_qualify_SrcClassL2_get.mask); 2004 break; 2005 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCCLASSL3: 2006 rv = bcmx_field_qualify_SrcClassL3( 2007 req->args.field_qualify_SrcClassL3.entry, 2008 req->args.field_qualify_SrcClassL3.data, 2009 req->args.field_qualify_SrcClassL3.mask); 2010 break; 2011 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCCLASSL3_GET: 2012 rv = bcmx_field_qualify_SrcClassL3_get( 2013 req->args.field_qualify_SrcClassL3_get.entry, 2014 req->args.field_qualify_SrcClassL3_get.data, 2015 req->args.field_qualify_SrcClassL3_get.mask); 2016 break; 2017 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCIP: 2018 rv = bcmx_field_qualify_SrcIp( 2019 req->args.field_qualify_SrcIp.entry, 2020 req->args.field_qualify_SrcIp.data, 2021 req->args.field_qualify_SrcIp.mask); 2022 break; 2023 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCIP6: 2024 rv = bcmx_field_qualify_SrcIp6( 2025 req->args.field_qualify_SrcIp6.entry, 2026 req->args.field_qualify_SrcIp6.data, 2027 req->args.field_qualify_SrcIp6.mask); 2028 break; 2029 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCIP6HIGH: 2030 rv = bcmx_field_qualify_SrcIp6High( 2031 req->args.field_qualify_SrcIp6High.entry, 2032 req->args.field_qualify_SrcIp6High.data, 2033 req->args.field_qualify_SrcIp6High.mask); 2034 break; 2035 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCIP6HIGH_GET: 2036 rv = bcmx_field_qualify_SrcIp6High_get( 2037 req->args.field_qualify_SrcIp6High_get.entry, 2038 req->args.field_qualify_SrcIp6High_get.data, 2039 req->args.field_qualify_SrcIp6High_get.mask); 2040 break; 2041 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCIP6LOW: 2042 rv = bcmx_field_qualify_SrcIp6Low( 2043 req->args.field_qualify_SrcIp6Low.entry, 2044 req->args.field_qualify_SrcIp6Low.data, 2045 req->args.field_qualify_SrcIp6Low.mask); 2046 break; 2047 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCIP6LOW_GET: 2048 rv = bcmx_field_qualify_SrcIp6Low_get( 2049 req->args.field_qualify_SrcIp6Low_get.entry, 2050 req->args.field_qualify_SrcIp6Low_get.data, 2051 req->args.field_qualify_SrcIp6Low_get.mask); 2052 break; 2053 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCIP6_GET: 2054 rv = bcmx_field_qualify_SrcIp6_get( 2055 req->args.field_qualify_SrcIp6_get.entry, 2056 req->args.field_qualify_SrcIp6_get.data, 2057 req->args.field_qualify_SrcIp6_get.mask); 2058 break; 2059 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCIP_GET: 2060 rv = bcmx_field_qualify_SrcIp_get( 2061 req->args.field_qualify_SrcIp_get.entry, 2062 req->args.field_qualify_SrcIp_get.data, 2063 req->args.field_qualify_SrcIp_get.mask); 2064 break; 2065 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCMAC: 2066 rv = bcmx_field_qualify_SrcMac( 2067 req->args.field_qualify_SrcMac.entry, 2068 req->args.field_qualify_SrcMac.data, 2069 req->args.field_qualify_SrcMac.mask); 2070 break; 2071 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCMAC_GET: 2072 rv = bcmx_field_qualify_SrcMac_get( 2073 req->args.field_qualify_SrcMac_get.entry, 2074 req->args.field_qualify_SrcMac_get.data, 2075 req->args.field_qualify_SrcMac_get.mask); 2076 break; 2077 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCMIMGPORT: 2078 rv = bcmx_field_qualify_SrcMimGport( 2079 req->args.field_qualify_SrcMimGport.entry, 2080 req->args.field_qualify_SrcMimGport.mim_port_id); 2081 break; 2082 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCMIMGPORT_GET: 2083 rv = bcmx_field_qualify_SrcMimGport_get( 2084 req->args.field_qualify_SrcMimGport_get.entry, 2085 req->args.field_qualify_SrcMimGport_get.mim_port_id); 2086 break; 2087 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCMODPORTGPORT: 2088 rv = bcmx_field_qualify_SrcModPortGport( 2089 req->args.field_qualify_SrcModPortGport.entry, 2090 req->args.field_qualify_SrcModPortGport.data); 2091 break; 2092 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCMODPORTGPORT_GET: 2093 rv = bcmx_field_qualify_SrcModPortGport_get( 2094 req->args.field_qualify_SrcModPortGport_get.entry, 2095 req->args.field_qualify_SrcModPortGport_get.data); 2096 break; 2097 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCMODULEGPORT: 2098 rv = bcmx_field_qualify_SrcModuleGport( 2099 req->args.field_qualify_SrcModuleGport.entry, 2100 req->args.field_qualify_SrcModuleGport.data); 2101 break; 2102 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCMODULEGPORT_GET: 2103 rv = bcmx_field_qualify_SrcModuleGport_get( 2104 req->args.field_qualify_SrcModuleGport_get.entry, 2105 req->args.field_qualify_SrcModuleGport_get.data); 2106 break; 2107 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCMPLSGPORT: 2108 rv = bcmx_field_qualify_SrcMplsGport( 2109 req->args.field_qualify_SrcMplsGport.entry, 2110 req->args.field_qualify_SrcMplsGport.mpls_port_id); 2111 break; 2112 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCMPLSGPORT_GET: 2113 rv = bcmx_field_qualify_SrcMplsGport_get( 2114 req->args.field_qualify_SrcMplsGport_get.entry, 2115 req->args.field_qualify_SrcMplsGport_get.mpls_port_id); 2116 break; 2117 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCPORT: 2118 rv = bcmx_field_qualify_SrcPort( 2119 req->args.field_qualify_SrcPort.entry, 2120 req->args.field_qualify_SrcPort.port); 2121 break; 2122 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCPORT_GET: 2123 rv = bcmx_field_qualify_SrcPort_get( 2124 req->args.field_qualify_SrcPort_get.entry, 2125 req->args.field_qualify_SrcPort_get.data_modid, 2126 req->args.field_qualify_SrcPort_get.mask_modid, 2127 req->args.field_qualify_SrcPort_get.data_port, 2128 req->args.field_qualify_SrcPort_get.mask_port); 2129 break; 2130 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCTRUNK: 2131 rv = bcmx_field_qualify_SrcTrunk( 2132 req->args.field_qualify_SrcTrunk.entry, 2133 req->args.field_qualify_SrcTrunk.tid); 2134 break; 2135 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCTRUNK_GET: 2136 rv = bcmx_field_qualify_SrcTrunk_get( 2137 req->args.field_qualify_SrcTrunk_get.entry, 2138 req->args.field_qualify_SrcTrunk_get.data, 2139 req->args.field_qualify_SrcTrunk_get.mask); 2140 break; 2141 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCVIRTUALPORTVALID: 2142 rv = bcmx_field_qualify_SrcVirtualPortValid( 2143 req->args.field_qualify_SrcVirtualPortValid.entry, 2144 req->args.field_qualify_SrcVirtualPortValid.data, 2145 req->args.field_qualify_SrcVirtualPortValid.mask); 2146 break; 2147 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCVIRTUALPORTVALID_GET: 2148 rv = bcmx_field_qualify_SrcVirtualPortValid_get( 2149 req->args.field_qualify_SrcVirtualPortValid_get.entry, 2150 req->args.field_qualify_SrcVirtualPortValid_get.data, 2151 req->args.field_qualify_SrcVirtualPortValid_get.mask); 2152 break; 2153 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCWLANGPORT: 2154 rv = bcmx_field_qualify_SrcWlanGport( 2155 req->args.field_qualify_SrcWlanGport.entry, 2156 req->args.field_qualify_SrcWlanGport.wlan_port_id); 2157 break; 2158 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_SRCWLANGPORT_GET: 2159 rv = bcmx_field_qualify_SrcWlanGport_get( 2160 req->args.field_qualify_SrcWlanGport_get.entry, 2161 req->args.field_qualify_SrcWlanGport_get.wlan_port_id); 2162 break; 2163 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TCPCONTROL: 2164 rv = bcmx_field_qualify_TcpControl( 2165 req->args.field_qualify_TcpControl.entry, 2166 req->args.field_qualify_TcpControl.data, 2167 req->args.field_qualify_TcpControl.mask); 2168 break; 2169 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TCPCONTROL_GET: 2170 rv = bcmx_field_qualify_TcpControl_get( 2171 req->args.field_qualify_TcpControl_get.entry, 2172 req->args.field_qualify_TcpControl_get.data, 2173 req->args.field_qualify_TcpControl_get.mask); 2174 break; 2175 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TCPHEADERSIZE: 2176 rv = bcmx_field_qualify_TcpHeaderSize( 2177 req->args.field_qualify_TcpHeaderSize.entry, 2178 req->args.field_qualify_TcpHeaderSize.data, 2179 req->args.field_qualify_TcpHeaderSize.mask); 2180 break; 2181 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TCPHEADERSIZE_GET: 2182 rv = bcmx_field_qualify_TcpHeaderSize_get( 2183 req->args.field_qualify_TcpHeaderSize_get.entry, 2184 req->args.field_qualify_TcpHeaderSize_get.data, 2185 req->args.field_qualify_TcpHeaderSize_get.mask); 2186 break; 2187 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TCPSEQUENCEZERO: 2188 rv = bcmx_field_qualify_TcpSequenceZero( 2189 req->args.field_qualify_TcpSequenceZero.entry, 2190 req->args.field_qualify_TcpSequenceZero.flag); 2191 break; 2192 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TCPSEQUENCEZERO_GET: 2193 rv = bcmx_field_qualify_TcpSequenceZero_get( 2194 req->args.field_qualify_TcpSequenceZero_get.entry, 2195 req->args.field_qualify_TcpSequenceZero_get.flag); 2196 break; 2197 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TOS: 2198 rv = bcmx_field_qualify_Tos( 2199 req->args.field_qualify_Tos.entry, 2200 req->args.field_qualify_Tos.data, 2201 req->args.field_qualify_Tos.mask); 2202 break; 2203 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TOS_GET: 2204 rv = bcmx_field_qualify_Tos_get( 2205 req->args.field_qualify_Tos_get.entry, 2206 req->args.field_qualify_Tos_get.data, 2207 req->args.field_qualify_Tos_get.mask); 2208 break; 2209 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TRANSLATEDVLANFORMAT: 2210 rv = bcmx_field_qualify_TranslatedVlanFormat( 2211 req->args.field_qualify_TranslatedVlanFormat.entry, 2212 req->args.field_qualify_TranslatedVlanFormat.data, 2213 req->args.field_qualify_TranslatedVlanFormat.mask); 2214 break; 2215 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TRANSLATEDVLANFORMAT_GET: 2216 rv = bcmx_field_qualify_TranslatedVlanFormat_get( 2217 req->args.field_qualify_TranslatedVlanFormat_get.entry, 2218 req->args.field_qualify_TranslatedVlanFormat_get.data, 2219 req->args.field_qualify_TranslatedVlanFormat_get.mask); 2220 break; 2221 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TTL: 2222 rv = bcmx_field_qualify_Ttl( 2223 req->args.field_qualify_Ttl.entry, 2224 req->args.field_qualify_Ttl.data, 2225 req->args.field_qualify_Ttl.mask); 2226 break; 2227 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TTL_GET: 2228 rv = bcmx_field_qualify_Ttl_get( 2229 req->args.field_qualify_Ttl_get.entry, 2230 req->args.field_qualify_Ttl_get.data, 2231 req->args.field_qualify_Ttl_get.mask); 2232 break; 2233 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TUNNELTERMINATED: 2234 rv = bcmx_field_qualify_TunnelTerminated( 2235 req->args.field_qualify_TunnelTerminated.entry, 2236 req->args.field_qualify_TunnelTerminated.data, 2237 req->args.field_qualify_TunnelTerminated.mask); 2238 break; 2239 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TUNNELTERMINATED_GET: 2240 rv = bcmx_field_qualify_TunnelTerminated_get( 2241 req->args.field_qualify_TunnelTerminated_get.entry, 2242 req->args.field_qualify_TunnelTerminated_get.data, 2243 req->args.field_qualify_TunnelTerminated_get.mask); 2244 break; 2245 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TUNNELTYPE: 2246 rv = bcmx_field_qualify_TunnelType( 2247 req->args.field_qualify_TunnelType.entry, 2248 req->args.field_qualify_TunnelType.tunnel_type); 2249 break; 2250 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_TUNNELTYPE_GET: 2251 rv = bcmx_field_qualify_TunnelType_get( 2252 req->args.field_qualify_TunnelType_get.entry, 2253 req->args.field_qualify_TunnelType_get.tunnel_type); 2254 break; 2255 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_VLANFORMAT: 2256 rv = bcmx_field_qualify_VlanFormat( 2257 req->args.field_qualify_VlanFormat.entry, 2258 req->args.field_qualify_VlanFormat.data, 2259 req->args.field_qualify_VlanFormat.mask); 2260 break; 2261 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_VLANFORMAT_GET: 2262 rv = bcmx_field_qualify_VlanFormat_get( 2263 req->args.field_qualify_VlanFormat_get.entry, 2264 req->args.field_qualify_VlanFormat_get.data, 2265 req->args.field_qualify_VlanFormat_get.mask); 2266 break; 2267 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_VLANTRANSLATIONHIT: 2268 rv = bcmx_field_qualify_VlanTranslationHit( 2269 req->args.field_qualify_VlanTranslationHit.entry, 2270 req->args.field_qualify_VlanTranslationHit.data, 2271 req->args.field_qualify_VlanTranslationHit.mask); 2272 break; 2273 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_VLANTRANSLATIONHIT_GET: 2274 rv = bcmx_field_qualify_VlanTranslationHit_get( 2275 req->args.field_qualify_VlanTranslationHit_get.entry, 2276 req->args.field_qualify_VlanTranslationHit_get.data, 2277 req->args.field_qualify_VlanTranslationHit_get.mask); 2278 break; 2279 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_VNTAG: 2280 rv = bcmx_field_qualify_VnTag( 2281 req->args.field_qualify_VnTag.entry, 2282 req->args.field_qualify_VnTag.data, 2283 req->args.field_qualify_VnTag.mask); 2284 break; 2285 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_VNTAG_GET: 2286 rv = bcmx_field_qualify_VnTag_get( 2287 req->args.field_qualify_VnTag_get.entry, 2288 req->args.field_qualify_VnTag_get.data, 2289 req->args.field_qualify_VnTag_get.mask); 2290 break; 2291 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_VPN: 2292 rv = bcmx_field_qualify_Vpn( 2293 req->args.field_qualify_Vpn.entry, 2294 req->args.field_qualify_Vpn.data, 2295 req->args.field_qualify_Vpn.mask); 2296 break; 2297 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_VPN_GET: 2298 rv = bcmx_field_qualify_Vpn_get( 2299 req->args.field_qualify_Vpn_get.entry, 2300 req->args.field_qualify_Vpn_get.data, 2301 req->args.field_qualify_Vpn_get.mask); 2302 break; 2303 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_VRF: 2304 rv = bcmx_field_qualify_Vrf( 2305 req->args.field_qualify_Vrf.entry, 2306 req->args.field_qualify_Vrf.data, 2307 req->args.field_qualify_Vrf.mask); 2308 break; 2309 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_VRF_GET: 2310 rv = bcmx_field_qualify_Vrf_get( 2311 req->args.field_qualify_Vrf_get.entry, 2312 req->args.field_qualify_Vrf_get.data, 2313 req->args.field_qualify_Vrf_get.mask); 2314 break; 2315 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_CLEAR: 2316 rv = bcmx_field_qualify_clear( 2317 req->args.field_qualify_clear.entry); 2318 break; 2319 case BCMX_ASYNC_ENTRY_FIELD_QUALIFY_DATA: 2320 rv = bcmx_field_qualify_data( 2321 req->args.field_qualify_data.eid, 2322 req->args.field_qualify_data.qual_id, 2323 req->args.field_qualify_data.data, 2324 req->args.field_qualify_data.mask, 2325 req->args.field_qualify_data.length); 2326 break; 2327 case BCMX_ASYNC_ENTRY_FIELD_RANGE_CREATE: 2328 rv = bcmx_field_range_create( 2329 req->args.field_range_create.range, 2330 req->args.field_range_create.flags, 2331 req->args.field_range_create.min, 2332 req->args.field_range_create.max); 2333 break; 2334 case BCMX_ASYNC_ENTRY_FIELD_RANGE_CREATE_ID: 2335 rv = bcmx_field_range_create_id( 2336 req->args.field_range_create_id.range, 2337 req->args.field_range_create_id.flags, 2338 req->args.field_range_create_id.min, 2339 req->args.field_range_create_id.max); 2340 break; 2341 case BCMX_ASYNC_ENTRY_FIELD_RANGE_DESTROY: 2342 rv = bcmx_field_range_destroy( 2343 req->args.field_range_destroy.range); 2344 break; 2345 case BCMX_ASYNC_ENTRY_FIELD_RANGE_GET: 2346 rv = bcmx_field_range_get( 2347 req->args.field_range_get.range, 2348 req->args.field_range_get.flags, 2349 req->args.field_range_get.min, 2350 req->args.field_range_get.max); 2351 break; 2352 case BCMX_ASYNC_ENTRY_FIELD_RANGE_GROUP_CREATE: 2353 rv = bcmx_field_range_group_create( 2354 req->args.field_range_group_create.range, 2355 req->args.field_range_group_create.flags, 2356 req->args.field_range_group_create.min, 2357 req->args.field_range_group_create.max, 2358 req->args.field_range_group_create.group); 2359 break; 2360 case BCMX_ASYNC_ENTRY_FIELD_RANGE_GROUP_CREATE_ID: 2361 rv = bcmx_field_range_group_create_id( 2362 req->args.field_range_group_create_id.range, 2363 req->args.field_range_group_create_id.flags, 2364 req->args.field_range_group_create_id.min, 2365 req->args.field_range_group_create_id.max, 2366 req->args.field_range_group_create_id.group); 2367 break; 2368 case BCMX_ASYNC_ENTRY_FIELD_RESYNC: 2369 rv = bcmx_field_resync( 2370 ); 2371 break; 2372 case BCMX_ASYNC_ENTRY_FIELD_STAT_ALL_SET: 2373 rv = bcmx_field_stat_all_set( 2374 req->args.field_stat_all_set.stat_id, 2375 req->args.field_stat_all_set.value); 2376 break; 2377 case BCMX_ASYNC_ENTRY_FIELD_STAT_ALL_SET32: 2378 rv = bcmx_field_stat_all_set32( 2379 req->args.field_stat_all_set32.stat_id, 2380 req->args.field_stat_all_set32.value); 2381 break; 2382 case BCMX_ASYNC_ENTRY_FIELD_STAT_CONFIG_GET: 2383 rv = bcmx_field_stat_config_get( 2384 req->args.field_stat_config_get.stat_id, 2385 req->args.field_stat_config_get.nstat, 2386 req->args.field_stat_config_get.stat_arr); 2387 break; 2388 case BCMX_ASYNC_ENTRY_FIELD_STAT_CREATE: 2389 rv = bcmx_field_stat_create( 2390 req->args.field_stat_create.group, 2391 req->args.field_stat_create.nstat, 2392 req->args.field_stat_create.stat_arr, 2393 req->args.field_stat_create.stat_id); 2394 break; 2395 case BCMX_ASYNC_ENTRY_FIELD_STAT_CREATE_ID: 2396 rv = bcmx_field_stat_create_id( 2397 req->args.field_stat_create_id.group, 2398 req->args.field_stat_create_id.nstat, 2399 req->args.field_stat_create_id.stat_arr, 2400 req->args.field_stat_create_id.stat_id); 2401 break; 2402 case BCMX_ASYNC_ENTRY_FIELD_STAT_DESTROY: 2403 rv = bcmx_field_stat_destroy( 2404 req->args.field_stat_destroy.stat_id); 2405 break; 2406 case BCMX_ASYNC_ENTRY_FIELD_STAT_GET: 2407 rv = bcmx_field_stat_get( 2408 req->args.field_stat_get.stat_id, 2409 req->args.field_stat_get.stat, 2410 req->args.field_stat_get.value); 2411 break; 2412 case BCMX_ASYNC_ENTRY_FIELD_STAT_GET32: 2413 rv = bcmx_field_stat_get32( 2414 req->args.field_stat_get32.stat_id, 2415 req->args.field_stat_get32.stat, 2416 req->args.field_stat_get32.value); 2417 break; 2418 case BCMX_ASYNC_ENTRY_FIELD_STAT_MULTI_GET: 2419 rv = bcmx_field_stat_multi_get( 2420 req->args.field_stat_multi_get.stat_id, 2421 req->args.field_stat_multi_get.nstat, 2422 req->args.field_stat_multi_get.stat_arr, 2423 req->args.field_stat_multi_get.value_arr); 2424 break; 2425 case BCMX_ASYNC_ENTRY_FIELD_STAT_MULTI_GET32: 2426 rv = bcmx_field_stat_multi_get32( 2427 req->args.field_stat_multi_get32.stat_id, 2428 req->args.field_stat_multi_get32.nstat, 2429 req->args.field_stat_multi_get32.stat_arr, 2430 req->args.field_stat_multi_get32.value_arr); 2431 break; 2432 case BCMX_ASYNC_ENTRY_FIELD_STAT_SET: 2433 rv = bcmx_field_stat_set( 2434 req->args.field_stat_set.stat_id, 2435 req->args.field_stat_set.stat, 2436 req->args.field_stat_set.value); 2437 break; 2438 case BCMX_ASYNC_ENTRY_FIELD_STAT_SET32: 2439 rv = bcmx_field_stat_set32( 2440 req->args.field_stat_set32.stat_id, 2441 req->args.field_stat_set32.stat, 2442 req->args.field_stat_set32.value); 2443 break; 2444 case BCMX_ASYNC_ENTRY_FIELD_STAT_SIZE: 2445 rv = bcmx_field_stat_size( 2446 req->args.field_stat_size.stat_id, 2447 req->args.field_stat_size.stat_size); 2448 break; 2449 case BCMX_ASYNC_ENTRY_INIT: 2450 rv = bcmx_init( 2451 ); 2452 break; 2453 case BCMX_ASYNC_ENTRY_IPFIX_CONFIG_GET: 2454 rv = bcmx_ipfix_config_get( 2455 req->args.ipfix_config_get.stage, 2456 req->args.ipfix_config_get.port, 2457 req->args.ipfix_config_get.config); 2458 break; 2459 case BCMX_ASYNC_ENTRY_IPFIX_CONFIG_SET: 2460 rv = bcmx_ipfix_config_set( 2461 req->args.ipfix_config_set.stage, 2462 req->args.ipfix_config_set.port, 2463 req->args.ipfix_config_set.config); 2464 break; 2465 case BCMX_ASYNC_ENTRY_IPFIX_MIRROR_CONFIG_GET: 2466 rv = bcmx_ipfix_mirror_config_get( 2467 req->args.ipfix_mirror_config_get.stage, 2468 req->args.ipfix_mirror_config_get.port, 2469 req->args.ipfix_mirror_config_get.config); 2470 break; 2471 case BCMX_ASYNC_ENTRY_IPFIX_MIRROR_CONFIG_SET: 2472 rv = bcmx_ipfix_mirror_config_set( 2473 req->args.ipfix_mirror_config_set.stage, 2474 req->args.ipfix_mirror_config_set.port, 2475 req->args.ipfix_mirror_config_set.config); 2476 break; 2477 case BCMX_ASYNC_ENTRY_IPFIX_MIRROR_PORT_DEST_ADD: 2478 rv = bcmx_ipfix_mirror_port_dest_add( 2479 req->args.ipfix_mirror_port_dest_add.stage, 2480 req->args.ipfix_mirror_port_dest_add.port, 2481 req->args.ipfix_mirror_port_dest_add.mirror_dest_id); 2482 break; 2483 case BCMX_ASYNC_ENTRY_IPFIX_MIRROR_PORT_DEST_DELETE: 2484 rv = bcmx_ipfix_mirror_port_dest_delete( 2485 req->args.ipfix_mirror_port_dest_delete.stage, 2486 req->args.ipfix_mirror_port_dest_delete.port, 2487 req->args.ipfix_mirror_port_dest_delete.mirror_dest_id); 2488 break; 2489 case BCMX_ASYNC_ENTRY_IPFIX_MIRROR_PORT_DEST_DELETE_ALL: 2490 rv = bcmx_ipfix_mirror_port_dest_delete_all( 2491 req->args.ipfix_mirror_port_dest_delete_all.stage, 2492 req->args.ipfix_mirror_port_dest_delete_all.port); 2493 break; 2494 case BCMX_ASYNC_ENTRY_IPFIX_MIRROR_PORT_DEST_GET: 2495 rv = bcmx_ipfix_mirror_port_dest_get( 2496 req->args.ipfix_mirror_port_dest_get.stage, 2497 req->args.ipfix_mirror_port_dest_get.port, 2498 req->args.ipfix_mirror_port_dest_get.mirror_dest_size, 2499 req->args.ipfix_mirror_port_dest_get.mirror_dest_id, 2500 req->args.ipfix_mirror_port_dest_get.mirror_dest_count); 2501 break; 2502 case BCMX_ASYNC_ENTRY_IPFIX_RATE_CREATE: 2503 rv = bcmx_ipfix_rate_create( 2504 req->args.ipfix_rate_create.rate_info); 2505 break; 2506 case BCMX_ASYNC_ENTRY_IPFIX_RATE_DESTROY: 2507 rv = bcmx_ipfix_rate_destroy( 2508 req->args.ipfix_rate_destroy.rate_id); 2509 break; 2510 case BCMX_ASYNC_ENTRY_IPFIX_RATE_DESTROY_ALL: 2511 rv = bcmx_ipfix_rate_destroy_all( 2512 ); 2513 break; 2514 case BCMX_ASYNC_ENTRY_IPFIX_RATE_GET: 2515 rv = bcmx_ipfix_rate_get( 2516 req->args.ipfix_rate_get.rate_info); 2517 break; 2518 case BCMX_ASYNC_ENTRY_IPFIX_RATE_MIRROR_ADD: 2519 rv = bcmx_ipfix_rate_mirror_add( 2520 req->args.ipfix_rate_mirror_add.rate_id, 2521 req->args.ipfix_rate_mirror_add.mirror_dest_id); 2522 break; 2523 case BCMX_ASYNC_ENTRY_IPFIX_RATE_MIRROR_DELETE: 2524 rv = bcmx_ipfix_rate_mirror_delete( 2525 req->args.ipfix_rate_mirror_delete.rate_id, 2526 req->args.ipfix_rate_mirror_delete.mirror_dest_id); 2527 break; 2528 case BCMX_ASYNC_ENTRY_IPFIX_RATE_MIRROR_DELETE_ALL: 2529 rv = bcmx_ipfix_rate_mirror_delete_all( 2530 req->args.ipfix_rate_mirror_delete_all.rate_id); 2531 break; 2532 case BCMX_ASYNC_ENTRY_IPFIX_RATE_MIRROR_GET: 2533 rv = bcmx_ipfix_rate_mirror_get( 2534 req->args.ipfix_rate_mirror_get.rate_id, 2535 req->args.ipfix_rate_mirror_get.mirror_dest_size, 2536 req->args.ipfix_rate_mirror_get.mirror_dest_id, 2537 req->args.ipfix_rate_mirror_get.mirror_dest_count); 2538 break; 2539 #ifdef INCLUDE_L3 2540 case BCMX_ASYNC_ENTRY_IPMC_ADD: 2541 rv = bcmx_ipmc_add( 2542 req->args.ipmc_add.data); 2543 break; 2544 case BCMX_ASYNC_ENTRY_IPMC_AGE: 2545 rv = bcmx_ipmc_age( 2546 req->args.ipmc_age.flags, 2547 req->args.ipmc_age.age_cb, 2548 req->args.ipmc_age.user_data); 2549 break; 2550 case BCMX_ASYNC_ENTRY_IPMC_COUNTERS_GET: 2551 rv = bcmx_ipmc_counters_get( 2552 req->args.ipmc_counters_get.port, 2553 req->args.ipmc_counters_get.counters); 2554 break; 2555 case BCMX_ASYNC_ENTRY_IPMC_DETACH: 2556 rv = bcmx_ipmc_detach( 2557 ); 2558 break; 2559 case BCMX_ASYNC_ENTRY_IPMC_EGRESS_PORT_GET: 2560 rv = bcmx_ipmc_egress_port_get( 2561 req->args.ipmc_egress_port_get.port, 2562 req->args.ipmc_egress_port_get.mac, 2563 req->args.ipmc_egress_port_get.untag, 2564 req->args.ipmc_egress_port_get.vid, 2565 req->args.ipmc_egress_port_get.ttl_threshold); 2566 break; 2567 case BCMX_ASYNC_ENTRY_IPMC_EGRESS_PORT_INIT: 2568 rv = bcmx_ipmc_egress_port_init( 2569 ); 2570 break; 2571 case BCMX_ASYNC_ENTRY_IPMC_EGRESS_PORT_SET: 2572 rv = bcmx_ipmc_egress_port_set( 2573 req->args.ipmc_egress_port_set.port, 2574 req->args.ipmc_egress_port_set.mac, 2575 req->args.ipmc_egress_port_set.untag, 2576 req->args.ipmc_egress_port_set.vid, 2577 req->args.ipmc_egress_port_set.ttl_threshold); 2578 break; 2579 case BCMX_ASYNC_ENTRY_IPMC_ENABLE: 2580 rv = bcmx_ipmc_enable( 2581 req->args.ipmc_enable.enable); 2582 break; 2583 case BCMX_ASYNC_ENTRY_IPMC_FIND: 2584 rv = bcmx_ipmc_find( 2585 req->args.ipmc_find.data); 2586 break; 2587 case BCMX_ASYNC_ENTRY_IPMC_INIT: 2588 rv = bcmx_ipmc_init( 2589 ); 2590 break; 2591 case BCMX_ASYNC_ENTRY_IPMC_REMOVE: 2592 rv = bcmx_ipmc_remove( 2593 req->args.ipmc_remove.data); 2594 break; 2595 case BCMX_ASYNC_ENTRY_IPMC_REMOVE_ALL: 2596 rv = bcmx_ipmc_remove_all( 2597 ); 2598 break; 2599 case BCMX_ASYNC_ENTRY_IPMC_TRAVERSE: 2600 rv = bcmx_ipmc_traverse( 2601 req->args.ipmc_traverse.flags, 2602 req->args.ipmc_traverse.cb, 2603 req->args.ipmc_traverse.user_data); 2604 break; 2605 #endif /* INCLUDE_L3 */ 2606 case BCMX_ASYNC_ENTRY_L2_ADDR_ADD: 2607 rv = bcmx_l2_addr_add( 2608 req->args.l2_addr_add.l2addr, 2609 req->args.l2_addr_add.port_block); 2610 break; 2611 case BCMX_ASYNC_ENTRY_L2_ADDR_DELETE: 2612 rv = bcmx_l2_addr_delete( 2613 req->args.l2_addr_delete.mac, 2614 req->args.l2_addr_delete.vid); 2615 break; 2616 case BCMX_ASYNC_ENTRY_L2_ADDR_DELETE_BY_MAC: 2617 rv = bcmx_l2_addr_delete_by_mac( 2618 req->args.l2_addr_delete_by_mac.mac, 2619 req->args.l2_addr_delete_by_mac.flags); 2620 break; 2621 case BCMX_ASYNC_ENTRY_L2_ADDR_DELETE_BY_MAC_PORT: 2622 rv = bcmx_l2_addr_delete_by_mac_port( 2623 req->args.l2_addr_delete_by_mac_port.mac, 2624 req->args.l2_addr_delete_by_mac_port.port, 2625 req->args.l2_addr_delete_by_mac_port.flags); 2626 break; 2627 case BCMX_ASYNC_ENTRY_L2_ADDR_DELETE_BY_PORT: 2628 rv = bcmx_l2_addr_delete_by_port( 2629 req->args.l2_addr_delete_by_port.port, 2630 req->args.l2_addr_delete_by_port.flags); 2631 break; 2632 case BCMX_ASYNC_ENTRY_L2_ADDR_DELETE_BY_TRUNK: 2633 rv = bcmx_l2_addr_delete_by_trunk( 2634 req->args.l2_addr_delete_by_trunk.tid, 2635 req->args.l2_addr_delete_by_trunk.flags); 2636 break; 2637 case BCMX_ASYNC_ENTRY_L2_ADDR_DELETE_BY_VLAN: 2638 rv = bcmx_l2_addr_delete_by_vlan( 2639 req->args.l2_addr_delete_by_vlan.vid, 2640 req->args.l2_addr_delete_by_vlan.flags); 2641 break; 2642 case BCMX_ASYNC_ENTRY_L2_ADDR_DELETE_BY_VLAN_PORT: 2643 rv = bcmx_l2_addr_delete_by_vlan_port( 2644 req->args.l2_addr_delete_by_vlan_port.vid, 2645 req->args.l2_addr_delete_by_vlan_port.port, 2646 req->args.l2_addr_delete_by_vlan_port.flags); 2647 break; 2648 case BCMX_ASYNC_ENTRY_L2_ADDR_DELETE_BY_VLAN_TRUNK: 2649 rv = bcmx_l2_addr_delete_by_vlan_trunk( 2650 req->args.l2_addr_delete_by_vlan_trunk.vid, 2651 req->args.l2_addr_delete_by_vlan_trunk.tid, 2652 req->args.l2_addr_delete_by_vlan_trunk.flags); 2653 break; 2654 case BCMX_ASYNC_ENTRY_L2_ADDR_FREEZE: 2655 rv = bcmx_l2_addr_freeze( 2656 ); 2657 break; 2658 case BCMX_ASYNC_ENTRY_L2_ADDR_FROM_BCM: 2659 rv = bcmx_l2_addr_from_bcm( 2660 req->args.l2_addr_from_bcm.dest, 2661 req->args.l2_addr_from_bcm.port_block, 2662 req->args.l2_addr_from_bcm.source); 2663 break; 2664 case BCMX_ASYNC_ENTRY_L2_ADDR_GET: 2665 rv = bcmx_l2_addr_get( 2666 req->args.l2_addr_get.mac_addr, 2667 req->args.l2_addr_get.vid, 2668 req->args.l2_addr_get.l2addr, 2669 req->args.l2_addr_get.port_block); 2670 break; 2671 case BCMX_ASYNC_ENTRY_L2_ADDR_NATIVE_GET: 2672 rv = bcmx_l2_addr_native_get( 2673 req->args.l2_addr_native_get.mac_addr, 2674 req->args.l2_addr_native_get.vid, 2675 req->args.l2_addr_native_get.l2addr); 2676 break; 2677 case BCMX_ASYNC_ENTRY_L2_ADDR_PORT_GET: 2678 rv = bcmx_l2_addr_port_get( 2679 req->args.l2_addr_port_get.port, 2680 req->args.l2_addr_port_get.mac_addr, 2681 req->args.l2_addr_port_get.vid, 2682 req->args.l2_addr_port_get.l2addr); 2683 break; 2684 case BCMX_ASYNC_ENTRY_L2_ADDR_REFRESH: 2685 rv = bcmx_l2_addr_refresh( 2686 req->args.l2_addr_refresh.l2addr, 2687 req->args.l2_addr_refresh.port_block); 2688 break; 2689 case BCMX_ASYNC_ENTRY_L2_ADDR_THAW: 2690 rv = bcmx_l2_addr_thaw( 2691 ); 2692 break; 2693 case BCMX_ASYNC_ENTRY_L2_ADDR_TO_BCM: 2694 rv = bcmx_l2_addr_to_bcm( 2695 req->args.l2_addr_to_bcm.bcm_unit, 2696 req->args.l2_addr_to_bcm.dest, 2697 req->args.l2_addr_to_bcm.source, 2698 req->args.l2_addr_to_bcm.port_block); 2699 break; 2700 case BCMX_ASYNC_ENTRY_L2_AGE_TIMER_GET: 2701 rv = bcmx_l2_age_timer_get( 2702 req->args.l2_age_timer_get.age_seconds); 2703 break; 2704 case BCMX_ASYNC_ENTRY_L2_AGE_TIMER_SET: 2705 rv = bcmx_l2_age_timer_set( 2706 req->args.l2_age_timer_set.age_seconds); 2707 break; 2708 case BCMX_ASYNC_ENTRY_L2_CACHE_DELETE: 2709 rv = bcmx_l2_cache_delete( 2710 req->args.l2_cache_delete.index); 2711 break; 2712 case BCMX_ASYNC_ENTRY_L2_CACHE_DELETE_ALL: 2713 rv = bcmx_l2_cache_delete_all( 2714 ); 2715 break; 2716 case BCMX_ASYNC_ENTRY_L2_CACHE_GET: 2717 rv = bcmx_l2_cache_get( 2718 req->args.l2_cache_get.index, 2719 req->args.l2_cache_get.addr); 2720 break; 2721 case BCMX_ASYNC_ENTRY_L2_CACHE_INIT: 2722 rv = bcmx_l2_cache_init( 2723 ); 2724 break; 2725 case BCMX_ASYNC_ENTRY_L2_CACHE_SET: 2726 rv = bcmx_l2_cache_set( 2727 req->args.l2_cache_set.index, 2728 req->args.l2_cache_set.addr, 2729 req->args.l2_cache_set.index_used); 2730 break; 2731 case BCMX_ASYNC_ENTRY_L2_CACHE_SIZE_GET: 2732 rv = bcmx_l2_cache_size_get( 2733 req->args.l2_cache_size_get.size); 2734 break; 2735 case BCMX_ASYNC_ENTRY_L2_CONFLICT_GET: 2736 rv = bcmx_l2_conflict_get( 2737 req->args.l2_conflict_get.addr, 2738 req->args.l2_conflict_get.cf_array, 2739 req->args.l2_conflict_get.cf_max, 2740 req->args.l2_conflict_get.cf_count); 2741 break; 2742 case BCMX_ASYNC_ENTRY_L2_DEVICE_ADD: 2743 rv = bcmx_l2_device_add( 2744 req->args.l2_device_add.bcm_unit); 2745 break; 2746 case BCMX_ASYNC_ENTRY_L2_DEVICE_REMOVE: 2747 rv = bcmx_l2_device_remove( 2748 req->args.l2_device_remove.bcm_unit); 2749 break; 2750 case BCMX_ASYNC_ENTRY_L2_LEARN_CLASS_GET: 2751 rv = bcmx_l2_learn_class_get( 2752 req->args.l2_learn_class_get.lclass, 2753 req->args.l2_learn_class_get.lclass_prio, 2754 req->args.l2_learn_class_get.flags); 2755 break; 2756 case BCMX_ASYNC_ENTRY_L2_LEARN_CLASS_SET: 2757 rv = bcmx_l2_learn_class_set( 2758 req->args.l2_learn_class_set.lclass, 2759 req->args.l2_learn_class_set.lclass_prio, 2760 req->args.l2_learn_class_set.flags); 2761 break; 2762 case BCMX_ASYNC_ENTRY_L2_LEARN_LIMIT_GET: 2763 rv = bcmx_l2_learn_limit_get( 2764 req->args.l2_learn_limit_get.limit); 2765 break; 2766 case BCMX_ASYNC_ENTRY_L2_LEARN_LIMIT_SET: 2767 rv = bcmx_l2_learn_limit_set( 2768 req->args.l2_learn_limit_set.limit); 2769 break; 2770 case BCMX_ASYNC_ENTRY_L2_LEARN_PORT_CLASS_GET: 2771 rv = bcmx_l2_learn_port_class_get( 2772 req->args.l2_learn_port_class_get.port, 2773 req->args.l2_learn_port_class_get.lclass); 2774 break; 2775 case BCMX_ASYNC_ENTRY_L2_LEARN_PORT_CLASS_SET: 2776 rv = bcmx_l2_learn_port_class_set( 2777 req->args.l2_learn_port_class_set.port, 2778 req->args.l2_learn_port_class_set.lclass); 2779 break; 2780 case BCMX_ASYNC_ENTRY_L2_NOTIFY_REGISTER: 2781 rv = bcmx_l2_notify_register( 2782 req->args.l2_notify_register.callback, 2783 req->args.l2_notify_register.userdata); 2784 break; 2785 case BCMX_ASYNC_ENTRY_L2_NOTIFY_START: 2786 rv = bcmx_l2_notify_start( 2787 ); 2788 break; 2789 case BCMX_ASYNC_ENTRY_L2_NOTIFY_STOP: 2790 rv = bcmx_l2_notify_stop( 2791 ); 2792 break; 2793 case BCMX_ASYNC_ENTRY_L2_NOTIFY_UNREGISTER: 2794 rv = bcmx_l2_notify_unregister( 2795 req->args.l2_notify_unregister.callback, 2796 req->args.l2_notify_unregister.userdata); 2797 break; 2798 case BCMX_ASYNC_ENTRY_L2_REPLACE: 2799 rv = bcmx_l2_replace( 2800 req->args.l2_replace.flags, 2801 req->args.l2_replace.match_addr, 2802 req->args.l2_replace.new_port, 2803 req->args.l2_replace.new_trunk); 2804 break; 2805 case BCMX_ASYNC_ENTRY_L2_TUNNEL_ADD: 2806 rv = bcmx_l2_tunnel_add( 2807 req->args.l2_tunnel_add.mac, 2808 req->args.l2_tunnel_add.vlan); 2809 break; 2810 case BCMX_ASYNC_ENTRY_L2_TUNNEL_DELETE: 2811 rv = bcmx_l2_tunnel_delete( 2812 req->args.l2_tunnel_delete.mac, 2813 req->args.l2_tunnel_delete.vlan); 2814 break; 2815 case BCMX_ASYNC_ENTRY_L2_TUNNEL_DELETE_ALL: 2816 rv = bcmx_l2_tunnel_delete_all( 2817 ); 2818 break; 2819 #ifdef INCLUDE_L3 2820 case BCMX_ASYNC_ENTRY_L3_CLEANUP: 2821 rv = bcmx_l3_cleanup( 2822 ); 2823 break; 2824 case BCMX_ASYNC_ENTRY_L3_EGRESS_CREATE: 2825 rv = bcmx_l3_egress_create( 2826 req->args.l3_egress_create.flags, 2827 req->args.l3_egress_create.egr, 2828 req->args.l3_egress_create.intf); 2829 break; 2830 case BCMX_ASYNC_ENTRY_L3_EGRESS_DESTROY: 2831 rv = bcmx_l3_egress_destroy( 2832 req->args.l3_egress_destroy.intf); 2833 break; 2834 case BCMX_ASYNC_ENTRY_L3_EGRESS_FIND: 2835 rv = bcmx_l3_egress_find( 2836 req->args.l3_egress_find.egr, 2837 req->args.l3_egress_find.intf); 2838 break; 2839 case BCMX_ASYNC_ENTRY_L3_EGRESS_GET: 2840 rv = bcmx_l3_egress_get( 2841 req->args.l3_egress_get.intf, 2842 req->args.l3_egress_get.egr); 2843 break; 2844 case BCMX_ASYNC_ENTRY_L3_EGRESS_MULTIPATH_ADD: 2845 rv = bcmx_l3_egress_multipath_add( 2846 req->args.l3_egress_multipath_add.mpintf, 2847 req->args.l3_egress_multipath_add.intf); 2848 break; 2849 case BCMX_ASYNC_ENTRY_L3_EGRESS_MULTIPATH_CREATE: 2850 rv = bcmx_l3_egress_multipath_create( 2851 req->args.l3_egress_multipath_create.flags, 2852 req->args.l3_egress_multipath_create.intf_count, 2853 req->args.l3_egress_multipath_create.intf_array, 2854 req->args.l3_egress_multipath_create.mpintf); 2855 break; 2856 case BCMX_ASYNC_ENTRY_L3_EGRESS_MULTIPATH_DELETE: 2857 rv = bcmx_l3_egress_multipath_delete( 2858 req->args.l3_egress_multipath_delete.mpintf, 2859 req->args.l3_egress_multipath_delete.intf); 2860 break; 2861 case BCMX_ASYNC_ENTRY_L3_EGRESS_MULTIPATH_DESTROY: 2862 rv = bcmx_l3_egress_multipath_destroy( 2863 req->args.l3_egress_multipath_destroy.mpintf); 2864 break; 2865 case BCMX_ASYNC_ENTRY_L3_EGRESS_MULTIPATH_FIND: 2866 rv = bcmx_l3_egress_multipath_find( 2867 req->args.l3_egress_multipath_find.intf_count, 2868 req->args.l3_egress_multipath_find.intf_array, 2869 req->args.l3_egress_multipath_find.mpintf); 2870 break; 2871 case BCMX_ASYNC_ENTRY_L3_EGRESS_MULTIPATH_GET: 2872 rv = bcmx_l3_egress_multipath_get( 2873 req->args.l3_egress_multipath_get.mpintf, 2874 req->args.l3_egress_multipath_get.intf_size, 2875 req->args.l3_egress_multipath_get.intf_array, 2876 req->args.l3_egress_multipath_get.intf_count); 2877 break; 2878 case BCMX_ASYNC_ENTRY_L3_EGRESS_MULTIPATH_MAX_CREATE: 2879 rv = bcmx_l3_egress_multipath_max_create( 2880 req->args.l3_egress_multipath_max_create.flags, 2881 req->args.l3_egress_multipath_max_create.max_paths, 2882 req->args.l3_egress_multipath_max_create.intf_count, 2883 req->args.l3_egress_multipath_max_create.intf_array, 2884 req->args.l3_egress_multipath_max_create.mpintf); 2885 break; 2886 case BCMX_ASYNC_ENTRY_L3_EGRESS_MULTIPATH_TRAVERSE: 2887 rv = bcmx_l3_egress_multipath_traverse( 2888 req->args.l3_egress_multipath_traverse.trav_fn, 2889 req->args.l3_egress_multipath_traverse.user_data); 2890 break; 2891 case BCMX_ASYNC_ENTRY_L3_EGRESS_TRAVERSE: 2892 rv = bcmx_l3_egress_traverse( 2893 req->args.l3_egress_traverse.trav_fn, 2894 req->args.l3_egress_traverse.user_data); 2895 break; 2896 case BCMX_ASYNC_ENTRY_L3_ENABLE_SET: 2897 rv = bcmx_l3_enable_set( 2898 req->args.l3_enable_set.enable); 2899 break; 2900 case BCMX_ASYNC_ENTRY_L3_HOST_ADD: 2901 rv = bcmx_l3_host_add( 2902 req->args.l3_host_add.info); 2903 break; 2904 case BCMX_ASYNC_ENTRY_L3_HOST_AGE: 2905 rv = bcmx_l3_host_age( 2906 req->args.l3_host_age.flags, 2907 req->args.l3_host_age.age_cb, 2908 req->args.l3_host_age.user_data); 2909 break; 2910 case BCMX_ASYNC_ENTRY_L3_HOST_CONFLICT_GET: 2911 rv = bcmx_l3_host_conflict_get( 2912 req->args.l3_host_conflict_get.ipkey, 2913 req->args.l3_host_conflict_get.cf_array, 2914 req->args.l3_host_conflict_get.cf_max, 2915 req->args.l3_host_conflict_get.cf_count); 2916 break; 2917 case BCMX_ASYNC_ENTRY_L3_HOST_DELETE: 2918 rv = bcmx_l3_host_delete( 2919 req->args.l3_host_delete.ip_addr); 2920 break; 2921 case BCMX_ASYNC_ENTRY_L3_HOST_DELETE_ALL: 2922 rv = bcmx_l3_host_delete_all( 2923 req->args.l3_host_delete_all.info); 2924 break; 2925 case BCMX_ASYNC_ENTRY_L3_HOST_DELETE_BY_INTERFACE: 2926 rv = bcmx_l3_host_delete_by_interface( 2927 req->args.l3_host_delete_by_interface.info); 2928 break; 2929 case BCMX_ASYNC_ENTRY_L3_HOST_DELETE_BY_NETWORK: 2930 rv = bcmx_l3_host_delete_by_network( 2931 req->args.l3_host_delete_by_network.ip_addr); 2932 break; 2933 case BCMX_ASYNC_ENTRY_L3_HOST_FIND: 2934 rv = bcmx_l3_host_find( 2935 req->args.l3_host_find.info); 2936 break; 2937 case BCMX_ASYNC_ENTRY_L3_HOST_INVALIDATE_ENTRY: 2938 rv = bcmx_l3_host_invalidate_entry( 2939 req->args.l3_host_invalidate_entry.info); 2940 break; 2941 case BCMX_ASYNC_ENTRY_L3_HOST_TRAVERSE: 2942 rv = bcmx_l3_host_traverse( 2943 req->args.l3_host_traverse.flags, 2944 req->args.l3_host_traverse.start, 2945 req->args.l3_host_traverse.end, 2946 req->args.l3_host_traverse.cb, 2947 req->args.l3_host_traverse.user_data); 2948 break; 2949 case BCMX_ASYNC_ENTRY_L3_HOST_VALIDATE_ENTRY: 2950 rv = bcmx_l3_host_validate_entry( 2951 req->args.l3_host_validate_entry.info); 2952 break; 2953 case BCMX_ASYNC_ENTRY_L3_INFO: 2954 rv = bcmx_l3_info( 2955 req->args.l3_info.l3info); 2956 break; 2957 case BCMX_ASYNC_ENTRY_L3_INGRESS_CREATE: 2958 rv = bcmx_l3_ingress_create( 2959 req->args.l3_ingress_create.ing_intf, 2960 req->args.l3_ingress_create.intf_id); 2961 break; 2962 case BCMX_ASYNC_ENTRY_L3_INGRESS_DESTROY: 2963 rv = bcmx_l3_ingress_destroy( 2964 req->args.l3_ingress_destroy.intf_id); 2965 break; 2966 case BCMX_ASYNC_ENTRY_L3_INGRESS_FIND: 2967 rv = bcmx_l3_ingress_find( 2968 req->args.l3_ingress_find.ing_intf, 2969 req->args.l3_ingress_find.intf_id); 2970 break; 2971 case BCMX_ASYNC_ENTRY_L3_INGRESS_GET: 2972 rv = bcmx_l3_ingress_get( 2973 req->args.l3_ingress_get.intf, 2974 req->args.l3_ingress_get.ing_intf); 2975 break; 2976 case BCMX_ASYNC_ENTRY_L3_INIT: 2977 rv = bcmx_l3_init( 2978 ); 2979 break; 2980 case BCMX_ASYNC_ENTRY_L3_INTF_CREATE: 2981 rv = bcmx_l3_intf_create( 2982 req->args.l3_intf_create.intf); 2983 break; 2984 case BCMX_ASYNC_ENTRY_L3_INTF_DELETE: 2985 rv = bcmx_l3_intf_delete( 2986 req->args.l3_intf_delete.intf); 2987 break; 2988 case BCMX_ASYNC_ENTRY_L3_INTF_DELETE_ALL: 2989 rv = bcmx_l3_intf_delete_all( 2990 ); 2991 break; 2992 case BCMX_ASYNC_ENTRY_L3_INTF_FIND: 2993 rv = bcmx_l3_intf_find( 2994 req->args.l3_intf_find.intf); 2995 break; 2996 case BCMX_ASYNC_ENTRY_L3_INTF_FIND_VLAN: 2997 rv = bcmx_l3_intf_find_vlan( 2998 req->args.l3_intf_find_vlan.intf); 2999 break; 3000 case BCMX_ASYNC_ENTRY_L3_INTF_GET: 3001 rv = bcmx_l3_intf_get( 3002 req->args.l3_intf_get.intf); 3003 break; 3004 case BCMX_ASYNC_ENTRY_L3_IP6_PREFIX_MAP_ADD: 3005 rv = bcmx_l3_ip6_prefix_map_add( 3006 req->args.l3_ip6_prefix_map_add.ip6_addr); 3007 break; 3008 case BCMX_ASYNC_ENTRY_L3_IP6_PREFIX_MAP_DELETE: 3009 rv = bcmx_l3_ip6_prefix_map_delete( 3010 req->args.l3_ip6_prefix_map_delete.ip6_addr); 3011 break; 3012 case BCMX_ASYNC_ENTRY_L3_IP6_PREFIX_MAP_DELETE_ALL: 3013 rv = bcmx_l3_ip6_prefix_map_delete_all( 3014 ); 3015 break; 3016 case BCMX_ASYNC_ENTRY_L3_IP6_PREFIX_MAP_GET: 3017 rv = bcmx_l3_ip6_prefix_map_get( 3018 req->args.l3_ip6_prefix_map_get.map_size, 3019 req->args.l3_ip6_prefix_map_get.ip6_array, 3020 req->args.l3_ip6_prefix_map_get.ip6_count); 3021 break; 3022 case BCMX_ASYNC_ENTRY_L3_ROUTE_ADD: 3023 rv = bcmx_l3_route_add( 3024 req->args.l3_route_add.info); 3025 break; 3026 case BCMX_ASYNC_ENTRY_L3_ROUTE_AGE: 3027 rv = bcmx_l3_route_age( 3028 req->args.l3_route_age.flags, 3029 req->args.l3_route_age.age_out, 3030 req->args.l3_route_age.user_data); 3031 break; 3032 case BCMX_ASYNC_ENTRY_L3_ROUTE_DELETE: 3033 rv = bcmx_l3_route_delete( 3034 req->args.l3_route_delete.info); 3035 break; 3036 case BCMX_ASYNC_ENTRY_L3_ROUTE_DELETE_ALL: 3037 rv = bcmx_l3_route_delete_all( 3038 req->args.l3_route_delete_all.info); 3039 break; 3040 case BCMX_ASYNC_ENTRY_L3_ROUTE_DELETE_BY_INTERFACE: 3041 rv = bcmx_l3_route_delete_by_interface( 3042 req->args.l3_route_delete_by_interface.info); 3043 break; 3044 case BCMX_ASYNC_ENTRY_L3_ROUTE_GET: 3045 rv = bcmx_l3_route_get( 3046 req->args.l3_route_get.info); 3047 break; 3048 case BCMX_ASYNC_ENTRY_L3_ROUTE_MAX_ECMP_GET: 3049 rv = bcmx_l3_route_max_ecmp_get( 3050 req->args.l3_route_max_ecmp_get.max); 3051 break; 3052 case BCMX_ASYNC_ENTRY_L3_ROUTE_MAX_ECMP_SET: 3053 rv = bcmx_l3_route_max_ecmp_set( 3054 req->args.l3_route_max_ecmp_set.max); 3055 break; 3056 case BCMX_ASYNC_ENTRY_L3_ROUTE_MULTIPATH_GET: 3057 rv = bcmx_l3_route_multipath_get( 3058 req->args.l3_route_multipath_get.the_route, 3059 req->args.l3_route_multipath_get.path_array, 3060 req->args.l3_route_multipath_get.max_path, 3061 req->args.l3_route_multipath_get.path_count); 3062 break; 3063 case BCMX_ASYNC_ENTRY_L3_ROUTE_TRAVERSE: 3064 rv = bcmx_l3_route_traverse( 3065 req->args.l3_route_traverse.flags, 3066 req->args.l3_route_traverse.start, 3067 req->args.l3_route_traverse.end, 3068 req->args.l3_route_traverse.trav_fn, 3069 req->args.l3_route_traverse.user_data); 3070 break; 3071 case BCMX_ASYNC_ENTRY_L3_SOURCE_BIND_ADD: 3072 rv = bcmx_l3_source_bind_add( 3073 req->args.l3_source_bind_add.info); 3074 break; 3075 case BCMX_ASYNC_ENTRY_L3_SOURCE_BIND_DELETE: 3076 rv = bcmx_l3_source_bind_delete( 3077 req->args.l3_source_bind_delete.info); 3078 break; 3079 case BCMX_ASYNC_ENTRY_L3_SOURCE_BIND_DELETE_ALL: 3080 rv = bcmx_l3_source_bind_delete_all( 3081 ); 3082 break; 3083 case BCMX_ASYNC_ENTRY_L3_SOURCE_BIND_ENABLE_GET: 3084 rv = bcmx_l3_source_bind_enable_get( 3085 req->args.l3_source_bind_enable_get.port, 3086 req->args.l3_source_bind_enable_get.enable); 3087 break; 3088 case BCMX_ASYNC_ENTRY_L3_SOURCE_BIND_ENABLE_SET: 3089 rv = bcmx_l3_source_bind_enable_set( 3090 req->args.l3_source_bind_enable_set.port, 3091 req->args.l3_source_bind_enable_set.enable); 3092 break; 3093 case BCMX_ASYNC_ENTRY_L3_SOURCE_BIND_GET: 3094 rv = bcmx_l3_source_bind_get( 3095 req->args.l3_source_bind_get.info); 3096 break; 3097 case BCMX_ASYNC_ENTRY_L3_VRF_STAT_ENABLE_SET: 3098 rv = bcmx_l3_vrf_stat_enable_set( 3099 req->args.l3_vrf_stat_enable_set.vrf, 3100 req->args.l3_vrf_stat_enable_set.enable); 3101 break; 3102 case BCMX_ASYNC_ENTRY_L3_VRF_STAT_GET: 3103 rv = bcmx_l3_vrf_stat_get( 3104 req->args.l3_vrf_stat_get.vrf, 3105 req->args.l3_vrf_stat_get.stat, 3106 req->args.l3_vrf_stat_get.val); 3107 break; 3108 case BCMX_ASYNC_ENTRY_L3_VRF_STAT_GET32: 3109 rv = bcmx_l3_vrf_stat_get32( 3110 req->args.l3_vrf_stat_get32.vrf, 3111 req->args.l3_vrf_stat_get32.stat, 3112 req->args.l3_vrf_stat_get32.val); 3113 break; 3114 case BCMX_ASYNC_ENTRY_L3_VRF_STAT_MULTI_GET: 3115 rv = bcmx_l3_vrf_stat_multi_get( 3116 req->args.l3_vrf_stat_multi_get.vrf, 3117 req->args.l3_vrf_stat_multi_get.nstat, 3118 req->args.l3_vrf_stat_multi_get.stat_arr, 3119 req->args.l3_vrf_stat_multi_get.value_arr); 3120 break; 3121 case BCMX_ASYNC_ENTRY_L3_VRF_STAT_MULTI_GET32: 3122 rv = bcmx_l3_vrf_stat_multi_get32( 3123 req->args.l3_vrf_stat_multi_get32.vrf, 3124 req->args.l3_vrf_stat_multi_get32.nstat, 3125 req->args.l3_vrf_stat_multi_get32.stat_arr, 3126 req->args.l3_vrf_stat_multi_get32.value_arr); 3127 break; 3128 case BCMX_ASYNC_ENTRY_L3_VRF_STAT_MULTI_SET: 3129 rv = bcmx_l3_vrf_stat_multi_set( 3130 req->args.l3_vrf_stat_multi_set.vrf, 3131 req->args.l3_vrf_stat_multi_set.nstat, 3132 req->args.l3_vrf_stat_multi_set.stat_arr, 3133 req->args.l3_vrf_stat_multi_set.value_arr); 3134 break; 3135 case BCMX_ASYNC_ENTRY_L3_VRF_STAT_MULTI_SET32: 3136 rv = bcmx_l3_vrf_stat_multi_set32( 3137 req->args.l3_vrf_stat_multi_set32.vrf, 3138 req->args.l3_vrf_stat_multi_set32.nstat, 3139 req->args.l3_vrf_stat_multi_set32.stat_arr, 3140 req->args.l3_vrf_stat_multi_set32.value_arr); 3141 break; 3142 case BCMX_ASYNC_ENTRY_L3_VRF_STAT_SET: 3143 rv = bcmx_l3_vrf_stat_set( 3144 req->args.l3_vrf_stat_set.vrf, 3145 req->args.l3_vrf_stat_set.stat, 3146 req->args.l3_vrf_stat_set.val); 3147 break; 3148 case BCMX_ASYNC_ENTRY_L3_VRF_STAT_SET32: 3149 rv = bcmx_l3_vrf_stat_set32( 3150 req->args.l3_vrf_stat_set32.vrf, 3151 req->args.l3_vrf_stat_set32.stat, 3152 req->args.l3_vrf_stat_set32.val); 3153 break; 3154 case BCMX_ASYNC_ENTRY_L3_VRRP_ADD: 3155 rv = bcmx_l3_vrrp_add( 3156 req->args.l3_vrrp_add.vlan, 3157 req->args.l3_vrrp_add.vrid); 3158 break; 3159 case BCMX_ASYNC_ENTRY_L3_VRRP_DELETE: 3160 rv = bcmx_l3_vrrp_delete( 3161 req->args.l3_vrrp_delete.vlan, 3162 req->args.l3_vrrp_delete.vrid); 3163 break; 3164 case BCMX_ASYNC_ENTRY_L3_VRRP_DELETE_ALL: 3165 rv = bcmx_l3_vrrp_delete_all( 3166 req->args.l3_vrrp_delete_all.vlan); 3167 break; 3168 case BCMX_ASYNC_ENTRY_L3_VRRP_GET: 3169 rv = bcmx_l3_vrrp_get( 3170 req->args.l3_vrrp_get.vlan, 3171 req->args.l3_vrrp_get.alloc_size, 3172 req->args.l3_vrrp_get.vrid_array, 3173 req->args.l3_vrrp_get.count); 3174 break; 3175 #endif /* INCLUDE_L3 */ 3176 case BCMX_ASYNC_ENTRY_LINKSCAN_DEVICE_ADD: 3177 rv = bcmx_linkscan_device_add( 3178 req->args.linkscan_device_add.bcm_unit); 3179 break; 3180 case BCMX_ASYNC_ENTRY_LINKSCAN_DEVICE_REMOVE: 3181 rv = bcmx_linkscan_device_remove( 3182 req->args.linkscan_device_remove.bcm_unit); 3183 break; 3184 case BCMX_ASYNC_ENTRY_LINKSCAN_ENABLE_GET: 3185 rv = bcmx_linkscan_enable_get( 3186 req->args.linkscan_enable_get.us, 3187 req->args.linkscan_enable_get.consistent); 3188 break; 3189 case BCMX_ASYNC_ENTRY_LINKSCAN_ENABLE_PORT_GET: 3190 rv = bcmx_linkscan_enable_port_get( 3191 req->args.linkscan_enable_port_get.lport); 3192 break; 3193 case BCMX_ASYNC_ENTRY_LINKSCAN_ENABLE_SET: 3194 rv = bcmx_linkscan_enable_set( 3195 req->args.linkscan_enable_set.us); 3196 break; 3197 case BCMX_ASYNC_ENTRY_LINKSCAN_REGISTER: 3198 rv = bcmx_linkscan_register( 3199 req->args.linkscan_register.ln_cb); 3200 break; 3201 case BCMX_ASYNC_ENTRY_LINKSCAN_UNREGISTER: 3202 rv = bcmx_linkscan_unregister( 3203 req->args.linkscan_unregister.ln_cb); 3204 break; 3205 case BCMX_ASYNC_ENTRY_MCAST_ADDR_ADD: 3206 rv = bcmx_mcast_addr_add( 3207 req->args.mcast_addr_add.mcaddr); 3208 break; 3209 case BCMX_ASYNC_ENTRY_MCAST_ADDR_REMOVE: 3210 rv = bcmx_mcast_addr_remove( 3211 req->args.mcast_addr_remove.mac, 3212 req->args.mcast_addr_remove.vid); 3213 break; 3214 case BCMX_ASYNC_ENTRY_MCAST_INIT: 3215 rv = bcmx_mcast_init( 3216 ); 3217 break; 3218 case BCMX_ASYNC_ENTRY_MCAST_JOIN: 3219 rv = bcmx_mcast_join( 3220 req->args.mcast_join.mac, 3221 req->args.mcast_join.vid, 3222 req->args.mcast_join.port, 3223 req->args.mcast_join.mcaddr, 3224 req->args.mcast_join.allrtr); 3225 break; 3226 case BCMX_ASYNC_ENTRY_MCAST_LEAVE: 3227 rv = bcmx_mcast_leave( 3228 req->args.mcast_leave.mac, 3229 req->args.mcast_leave.vid, 3230 req->args.mcast_leave.port); 3231 break; 3232 case BCMX_ASYNC_ENTRY_MCAST_PORT_ADD: 3233 rv = bcmx_mcast_port_add( 3234 req->args.mcast_port_add.mcaddr); 3235 break; 3236 case BCMX_ASYNC_ENTRY_MCAST_PORT_GET: 3237 rv = bcmx_mcast_port_get( 3238 req->args.mcast_port_get.mac, 3239 req->args.mcast_port_get.vid, 3240 req->args.mcast_port_get.mcaddr); 3241 break; 3242 case BCMX_ASYNC_ENTRY_MCAST_PORT_REMOVE: 3243 rv = bcmx_mcast_port_remove( 3244 req->args.mcast_port_remove.mcaddr); 3245 break; 3246 #ifdef INCLUDE_L3 3247 case BCMX_ASYNC_ENTRY_MIM_DETACH: 3248 rv = bcmx_mim_detach( 3249 ); 3250 break; 3251 case BCMX_ASYNC_ENTRY_MIM_INIT: 3252 rv = bcmx_mim_init( 3253 ); 3254 break; 3255 case BCMX_ASYNC_ENTRY_MIM_PORT_ADD: 3256 rv = bcmx_mim_port_add( 3257 req->args.mim_port_add.vpn, 3258 req->args.mim_port_add.mim_port); 3259 break; 3260 case BCMX_ASYNC_ENTRY_MIM_PORT_DELETE: 3261 rv = bcmx_mim_port_delete( 3262 req->args.mim_port_delete.vpn, 3263 req->args.mim_port_delete.mim_port_id); 3264 break; 3265 case BCMX_ASYNC_ENTRY_MIM_PORT_DELETE_ALL: 3266 rv = bcmx_mim_port_delete_all( 3267 req->args.mim_port_delete_all.vpn); 3268 break; 3269 case BCMX_ASYNC_ENTRY_MIM_PORT_GET: 3270 rv = bcmx_mim_port_get( 3271 req->args.mim_port_get.vpn, 3272 req->args.mim_port_get.mim_port); 3273 break; 3274 case BCMX_ASYNC_ENTRY_MIM_PORT_GET_ALL: 3275 rv = bcmx_mim_port_get_all( 3276 req->args.mim_port_get_all.vpn, 3277 req->args.mim_port_get_all.port_max, 3278 req->args.mim_port_get_all.port_array, 3279 req->args.mim_port_get_all.port_count); 3280 break; 3281 case BCMX_ASYNC_ENTRY_MIM_VPN_CREATE: 3282 rv = bcmx_mim_vpn_create( 3283 req->args.mim_vpn_create.info); 3284 break; 3285 case BCMX_ASYNC_ENTRY_MIM_VPN_DESTROY: 3286 rv = bcmx_mim_vpn_destroy( 3287 req->args.mim_vpn_destroy.vpn); 3288 break; 3289 case BCMX_ASYNC_ENTRY_MIM_VPN_DESTROY_ALL: 3290 rv = bcmx_mim_vpn_destroy_all( 3291 ); 3292 break; 3293 case BCMX_ASYNC_ENTRY_MIM_VPN_GET: 3294 rv = bcmx_mim_vpn_get( 3295 req->args.mim_vpn_get.vpn, 3296 req->args.mim_vpn_get.info); 3297 break; 3298 #endif /* INCLUDE_L3 */ 3299 case BCMX_ASYNC_ENTRY_MIRROR_DESTINATION_CREATE: 3300 rv = bcmx_mirror_destination_create( 3301 req->args.mirror_destination_create.mirror_dest); 3302 break; 3303 case BCMX_ASYNC_ENTRY_MIRROR_DESTINATION_DESTROY: 3304 rv = bcmx_mirror_destination_destroy( 3305 req->args.mirror_destination_destroy.mirror_dest_id); 3306 break; 3307 case BCMX_ASYNC_ENTRY_MIRROR_DESTINATION_GET: 3308 rv = bcmx_mirror_destination_get( 3309 req->args.mirror_destination_get.mirror_dest_id, 3310 req->args.mirror_destination_get.mirror_dest); 3311 break; 3312 case BCMX_ASYNC_ENTRY_MIRROR_EGRESS_GET: 3313 rv = bcmx_mirror_egress_get( 3314 req->args.mirror_egress_get.port, 3315 req->args.mirror_egress_get.val); 3316 break; 3317 case BCMX_ASYNC_ENTRY_MIRROR_EGRESS_SET: 3318 rv = bcmx_mirror_egress_set( 3319 req->args.mirror_egress_set.port, 3320 req->args.mirror_egress_set.val); 3321 break; 3322 case BCMX_ASYNC_ENTRY_MIRROR_FABRIC_LIST_GET: 3323 rv = bcmx_mirror_fabric_list_get( 3324 req->args.mirror_fabric_list_get.port, 3325 req->args.mirror_fabric_list_get.lplist); 3326 break; 3327 case BCMX_ASYNC_ENTRY_MIRROR_FABRIC_LIST_SET: 3328 rv = bcmx_mirror_fabric_list_set( 3329 req->args.mirror_fabric_list_set.port, 3330 req->args.mirror_fabric_list_set.lplist); 3331 break; 3332 case BCMX_ASYNC_ENTRY_MIRROR_INGRESS_GET: 3333 rv = bcmx_mirror_ingress_get( 3334 req->args.mirror_ingress_get.port, 3335 req->args.mirror_ingress_get.val); 3336 break; 3337 case BCMX_ASYNC_ENTRY_MIRROR_INGRESS_SET: 3338 rv = bcmx_mirror_ingress_set( 3339 req->args.mirror_ingress_set.port, 3340 req->args.mirror_ingress_set.val); 3341 break; 3342 case BCMX_ASYNC_ENTRY_MIRROR_INIT: 3343 rv = bcmx_mirror_init( 3344 ); 3345 break; 3346 case BCMX_ASYNC_ENTRY_MIRROR_MODE_GET: 3347 rv = bcmx_mirror_mode_get( 3348 req->args.mirror_mode_get.mode); 3349 break; 3350 case BCMX_ASYNC_ENTRY_MIRROR_MODE_SET: 3351 rv = bcmx_mirror_mode_set( 3352 req->args.mirror_mode_set.mode); 3353 break; 3354 case BCMX_ASYNC_ENTRY_MIRROR_PORT_DEST_ADD: 3355 rv = bcmx_mirror_port_dest_add( 3356 req->args.mirror_port_dest_add.port, 3357 req->args.mirror_port_dest_add.flags, 3358 req->args.mirror_port_dest_add.mirror_dest_id); 3359 break; 3360 case BCMX_ASYNC_ENTRY_MIRROR_PORT_DEST_DELETE: 3361 rv = bcmx_mirror_port_dest_delete( 3362 req->args.mirror_port_dest_delete.port, 3363 req->args.mirror_port_dest_delete.flags, 3364 req->args.mirror_port_dest_delete.mirror_dest_id); 3365 break; 3366 case BCMX_ASYNC_ENTRY_MIRROR_PORT_DEST_DELETE_ALL: 3367 rv = bcmx_mirror_port_dest_delete_all( 3368 req->args.mirror_port_dest_delete_all.port, 3369 req->args.mirror_port_dest_delete_all.flags); 3370 break; 3371 case BCMX_ASYNC_ENTRY_MIRROR_PORT_DEST_GET: 3372 rv = bcmx_mirror_port_dest_get( 3373 req->args.mirror_port_dest_get.port, 3374 req->args.mirror_port_dest_get.flags, 3375 req->args.mirror_port_dest_get.mirror_dest_size, 3376 req->args.mirror_port_dest_get.mirror_dest, 3377 req->args.mirror_port_dest_get.mirror_dest_count); 3378 break; 3379 case BCMX_ASYNC_ENTRY_MIRROR_PORT_GET: 3380 rv = bcmx_mirror_port_get( 3381 req->args.mirror_port_get.port, 3382 req->args.mirror_port_get.dest_port, 3383 req->args.mirror_port_get.flags); 3384 break; 3385 case BCMX_ASYNC_ENTRY_MIRROR_PORT_SET: 3386 rv = bcmx_mirror_port_set( 3387 req->args.mirror_port_set.port, 3388 req->args.mirror_port_set.dest_port, 3389 req->args.mirror_port_set.flags); 3390 break; 3391 case BCMX_ASYNC_ENTRY_MIRROR_TO_GET: 3392 rv = bcmx_mirror_to_get( 3393 req->args.mirror_to_get.port); 3394 break; 3395 case BCMX_ASYNC_ENTRY_MIRROR_TO_SET: 3396 rv = bcmx_mirror_to_set( 3397 req->args.mirror_to_set.port); 3398 break; 3399 case BCMX_ASYNC_ENTRY_MIRROR_VLAN_GET: 3400 rv = bcmx_mirror_vlan_get( 3401 req->args.mirror_vlan_get.port, 3402 req->args.mirror_vlan_get.tpid, 3403 req->args.mirror_vlan_get.vlan); 3404 break; 3405 case BCMX_ASYNC_ENTRY_MIRROR_VLAN_SET: 3406 rv = bcmx_mirror_vlan_set( 3407 req->args.mirror_vlan_set.port, 3408 req->args.mirror_vlan_set.tpid, 3409 req->args.mirror_vlan_set.vlan); 3410 break; 3411 #ifdef INCLUDE_L3 3412 case BCMX_ASYNC_ENTRY_MPLS_CLEANUP: 3413 rv = bcmx_mpls_cleanup( 3414 ); 3415 break; 3416 case BCMX_ASYNC_ENTRY_MPLS_EXP_MAP_CREATE: 3417 rv = bcmx_mpls_exp_map_create( 3418 req->args.mpls_exp_map_create.flags, 3419 req->args.mpls_exp_map_create.exp_map_id); 3420 break; 3421 case BCMX_ASYNC_ENTRY_MPLS_EXP_MAP_DESTROY: 3422 rv = bcmx_mpls_exp_map_destroy( 3423 req->args.mpls_exp_map_destroy.exp_map_id); 3424 break; 3425 case BCMX_ASYNC_ENTRY_MPLS_EXP_MAP_GET: 3426 rv = bcmx_mpls_exp_map_get( 3427 req->args.mpls_exp_map_get.exp_map_id, 3428 req->args.mpls_exp_map_get.exp_map); 3429 break; 3430 case BCMX_ASYNC_ENTRY_MPLS_EXP_MAP_SET: 3431 rv = bcmx_mpls_exp_map_set( 3432 req->args.mpls_exp_map_set.exp_map_id, 3433 req->args.mpls_exp_map_set.exp_map); 3434 break; 3435 case BCMX_ASYNC_ENTRY_MPLS_INIT: 3436 rv = bcmx_mpls_init( 3437 ); 3438 break; 3439 case BCMX_ASYNC_ENTRY_MPLS_LABEL_STAT_CLEAR: 3440 rv = bcmx_mpls_label_stat_clear( 3441 req->args.mpls_label_stat_clear.label, 3442 req->args.mpls_label_stat_clear.port, 3443 req->args.mpls_label_stat_clear.stat); 3444 break; 3445 case BCMX_ASYNC_ENTRY_MPLS_LABEL_STAT_GET: 3446 rv = bcmx_mpls_label_stat_get( 3447 req->args.mpls_label_stat_get.label, 3448 req->args.mpls_label_stat_get.port, 3449 req->args.mpls_label_stat_get.stat, 3450 req->args.mpls_label_stat_get.val); 3451 break; 3452 case BCMX_ASYNC_ENTRY_MPLS_LABEL_STAT_GET32: 3453 rv = bcmx_mpls_label_stat_get32( 3454 req->args.mpls_label_stat_get32.label, 3455 req->args.mpls_label_stat_get32.port, 3456 req->args.mpls_label_stat_get32.stat, 3457 req->args.mpls_label_stat_get32.val); 3458 break; 3459 case BCMX_ASYNC_ENTRY_MPLS_PORT_ADD: 3460 rv = bcmx_mpls_port_add( 3461 req->args.mpls_port_add.vpn, 3462 req->args.mpls_port_add.mpls_port); 3463 break; 3464 case BCMX_ASYNC_ENTRY_MPLS_PORT_DELETE: 3465 rv = bcmx_mpls_port_delete( 3466 req->args.mpls_port_delete.vpn, 3467 req->args.mpls_port_delete.mpls_port_id); 3468 break; 3469 case BCMX_ASYNC_ENTRY_MPLS_PORT_DELETE_ALL: 3470 rv = bcmx_mpls_port_delete_all( 3471 req->args.mpls_port_delete_all.vpn); 3472 break; 3473 case BCMX_ASYNC_ENTRY_MPLS_PORT_GET: 3474 rv = bcmx_mpls_port_get( 3475 req->args.mpls_port_get.vpn, 3476 req->args.mpls_port_get.mpls_port); 3477 break; 3478 case BCMX_ASYNC_ENTRY_MPLS_PORT_GET_ALL: 3479 rv = bcmx_mpls_port_get_all( 3480 req->args.mpls_port_get_all.vpn, 3481 req->args.mpls_port_get_all.port_max, 3482 req->args.mpls_port_get_all.port_array, 3483 req->args.mpls_port_get_all.port_count); 3484 break; 3485 case BCMX_ASYNC_ENTRY_MPLS_TUNNEL_INITIATOR_CLEAR: 3486 rv = bcmx_mpls_tunnel_initiator_clear( 3487 req->args.mpls_tunnel_initiator_clear.intf); 3488 break; 3489 case BCMX_ASYNC_ENTRY_MPLS_TUNNEL_INITIATOR_CLEAR_ALL: 3490 rv = bcmx_mpls_tunnel_initiator_clear_all( 3491 ); 3492 break; 3493 case BCMX_ASYNC_ENTRY_MPLS_TUNNEL_INITIATOR_GET: 3494 rv = bcmx_mpls_tunnel_initiator_get( 3495 req->args.mpls_tunnel_initiator_get.intf, 3496 req->args.mpls_tunnel_initiator_get.label_max, 3497 req->args.mpls_tunnel_initiator_get.label_array, 3498 req->args.mpls_tunnel_initiator_get.label_count); 3499 break; 3500 case BCMX_ASYNC_ENTRY_MPLS_TUNNEL_INITIATOR_SET: 3501 rv = bcmx_mpls_tunnel_initiator_set( 3502 req->args.mpls_tunnel_initiator_set.intf, 3503 req->args.mpls_tunnel_initiator_set.num_labels, 3504 req->args.mpls_tunnel_initiator_set.label_array); 3505 break; 3506 case BCMX_ASYNC_ENTRY_MPLS_TUNNEL_SWITCH_ADD: 3507 rv = bcmx_mpls_tunnel_switch_add( 3508 req->args.mpls_tunnel_switch_add.info); 3509 break; 3510 case BCMX_ASYNC_ENTRY_MPLS_TUNNEL_SWITCH_DELETE: 3511 rv = bcmx_mpls_tunnel_switch_delete( 3512 req->args.mpls_tunnel_switch_delete.info); 3513 break; 3514 case BCMX_ASYNC_ENTRY_MPLS_TUNNEL_SWITCH_DELETE_ALL: 3515 rv = bcmx_mpls_tunnel_switch_delete_all( 3516 ); 3517 break; 3518 case BCMX_ASYNC_ENTRY_MPLS_TUNNEL_SWITCH_GET: 3519 rv = bcmx_mpls_tunnel_switch_get( 3520 req->args.mpls_tunnel_switch_get.info); 3521 break; 3522 case BCMX_ASYNC_ENTRY_MPLS_VPN_ID_CREATE: 3523 rv = bcmx_mpls_vpn_id_create( 3524 req->args.mpls_vpn_id_create.info); 3525 break; 3526 case BCMX_ASYNC_ENTRY_MPLS_VPN_ID_DESTROY: 3527 rv = bcmx_mpls_vpn_id_destroy( 3528 req->args.mpls_vpn_id_destroy.vpn); 3529 break; 3530 case BCMX_ASYNC_ENTRY_MPLS_VPN_ID_DESTROY_ALL: 3531 rv = bcmx_mpls_vpn_id_destroy_all( 3532 ); 3533 break; 3534 case BCMX_ASYNC_ENTRY_MPLS_VPN_ID_GET: 3535 rv = bcmx_mpls_vpn_id_get( 3536 req->args.mpls_vpn_id_get.vpn, 3537 req->args.mpls_vpn_id_get.info); 3538 break; 3539 #endif /* INCLUDE_L3 */ 3540 case BCMX_ASYNC_ENTRY_MULTICAST_CONTROL_GET: 3541 rv = bcmx_multicast_control_get( 3542 req->args.multicast_control_get.group, 3543 req->args.multicast_control_get.type, 3544 req->args.multicast_control_get.arg); 3545 break; 3546 case BCMX_ASYNC_ENTRY_MULTICAST_CONTROL_SET: 3547 rv = bcmx_multicast_control_set( 3548 req->args.multicast_control_set.group, 3549 req->args.multicast_control_set.type, 3550 req->args.multicast_control_set.arg); 3551 break; 3552 case BCMX_ASYNC_ENTRY_MULTICAST_CREATE: 3553 rv = bcmx_multicast_create( 3554 req->args.multicast_create.flags, 3555 req->args.multicast_create.group); 3556 break; 3557 case BCMX_ASYNC_ENTRY_MULTICAST_DESTROY: 3558 rv = bcmx_multicast_destroy( 3559 req->args.multicast_destroy.group); 3560 break; 3561 case BCMX_ASYNC_ENTRY_MULTICAST_DETACH: 3562 rv = bcmx_multicast_detach( 3563 ); 3564 break; 3565 case BCMX_ASYNC_ENTRY_MULTICAST_EGRESS_ADD: 3566 rv = bcmx_multicast_egress_add( 3567 req->args.multicast_egress_add.group, 3568 req->args.multicast_egress_add.port, 3569 req->args.multicast_egress_add.encap_id); 3570 break; 3571 case BCMX_ASYNC_ENTRY_MULTICAST_EGRESS_DELETE: 3572 rv = bcmx_multicast_egress_delete( 3573 req->args.multicast_egress_delete.group, 3574 req->args.multicast_egress_delete.port, 3575 req->args.multicast_egress_delete.encap_id); 3576 break; 3577 case BCMX_ASYNC_ENTRY_MULTICAST_EGRESS_DELETE_ALL: 3578 rv = bcmx_multicast_egress_delete_all( 3579 req->args.multicast_egress_delete_all.group); 3580 break; 3581 case BCMX_ASYNC_ENTRY_MULTICAST_EGRESS_GET: 3582 rv = bcmx_multicast_egress_get( 3583 req->args.multicast_egress_get.group, 3584 req->args.multicast_egress_get.port_max, 3585 req->args.multicast_egress_get.port_array, 3586 req->args.multicast_egress_get.encap_id_array, 3587 req->args.multicast_egress_get.port_count); 3588 break; 3589 case BCMX_ASYNC_ENTRY_MULTICAST_EGRESS_SET: 3590 rv = bcmx_multicast_egress_set( 3591 req->args.multicast_egress_set.group, 3592 req->args.multicast_egress_set.port_count, 3593 req->args.multicast_egress_set.port_array, 3594 req->args.multicast_egress_set.encap_id_array); 3595 break; 3596 case BCMX_ASYNC_ENTRY_MULTICAST_GROUP_GET: 3597 rv = bcmx_multicast_group_get( 3598 req->args.multicast_group_get.group, 3599 req->args.multicast_group_get.flags); 3600 break; 3601 case BCMX_ASYNC_ENTRY_MULTICAST_INIT: 3602 rv = bcmx_multicast_init( 3603 ); 3604 break; 3605 case BCMX_ASYNC_ENTRY_MULTICAST_L2_ENCAP_GET: 3606 rv = bcmx_multicast_l2_encap_get( 3607 req->args.multicast_l2_encap_get.group, 3608 req->args.multicast_l2_encap_get.port, 3609 req->args.multicast_l2_encap_get.vlan, 3610 req->args.multicast_l2_encap_get.encap_id); 3611 break; 3612 case BCMX_ASYNC_ENTRY_MULTICAST_L3_ENCAP_GET: 3613 rv = bcmx_multicast_l3_encap_get( 3614 req->args.multicast_l3_encap_get.group, 3615 req->args.multicast_l3_encap_get.port, 3616 req->args.multicast_l3_encap_get.intf, 3617 req->args.multicast_l3_encap_get.encap_id); 3618 break; 3619 case BCMX_ASYNC_ENTRY_MULTICAST_MIM_ENCAP_GET: 3620 rv = bcmx_multicast_mim_encap_get( 3621 req->args.multicast_mim_encap_get.group, 3622 req->args.multicast_mim_encap_get.port, 3623 req->args.multicast_mim_encap_get.mim_port_id, 3624 req->args.multicast_mim_encap_get.encap_id); 3625 break; 3626 case BCMX_ASYNC_ENTRY_MULTICAST_NIV_ENCAP_GET: 3627 rv = bcmx_multicast_niv_encap_get( 3628 req->args.multicast_niv_encap_get.group, 3629 req->args.multicast_niv_encap_get.port, 3630 req->args.multicast_niv_encap_get.niv_port_id, 3631 req->args.multicast_niv_encap_get.encap_id); 3632 break; 3633 case BCMX_ASYNC_ENTRY_MULTICAST_REPL_GET: 3634 rv = bcmx_multicast_repl_get( 3635 req->args.multicast_repl_get.index, 3636 req->args.multicast_repl_get.port, 3637 req->args.multicast_repl_get.vlan_vec); 3638 break; 3639 case BCMX_ASYNC_ENTRY_MULTICAST_REPL_SET: 3640 rv = bcmx_multicast_repl_set( 3641 req->args.multicast_repl_set.index, 3642 req->args.multicast_repl_set.port, 3643 req->args.multicast_repl_set.vlan_vec); 3644 break; 3645 case BCMX_ASYNC_ENTRY_MULTICAST_SUBPORT_ENCAP_GET: 3646 rv = bcmx_multicast_subport_encap_get( 3647 req->args.multicast_subport_encap_get.group, 3648 req->args.multicast_subport_encap_get.port, 3649 req->args.multicast_subport_encap_get.subport, 3650 req->args.multicast_subport_encap_get.encap_id); 3651 break; 3652 case BCMX_ASYNC_ENTRY_MULTICAST_TRILL_ENCAP_GET: 3653 rv = bcmx_multicast_trill_encap_get( 3654 req->args.multicast_trill_encap_get.group, 3655 req->args.multicast_trill_encap_get.port, 3656 req->args.multicast_trill_encap_get.intf, 3657 req->args.multicast_trill_encap_get.encap_id); 3658 break; 3659 case BCMX_ASYNC_ENTRY_MULTICAST_VLAN_ENCAP_GET: 3660 rv = bcmx_multicast_vlan_encap_get( 3661 req->args.multicast_vlan_encap_get.group, 3662 req->args.multicast_vlan_encap_get.port, 3663 req->args.multicast_vlan_encap_get.vlan_port_id, 3664 req->args.multicast_vlan_encap_get.encap_id); 3665 break; 3666 case BCMX_ASYNC_ENTRY_MULTICAST_VPLS_ENCAP_GET: 3667 rv = bcmx_multicast_vpls_encap_get( 3668 req->args.multicast_vpls_encap_get.group, 3669 req->args.multicast_vpls_encap_get.port, 3670 req->args.multicast_vpls_encap_get.mpls_port_id, 3671 req->args.multicast_vpls_encap_get.encap_id); 3672 break; 3673 case BCMX_ASYNC_ENTRY_MULTICAST_WLAN_ENCAP_GET: 3674 rv = bcmx_multicast_wlan_encap_get( 3675 req->args.multicast_wlan_encap_get.group, 3676 req->args.multicast_wlan_encap_get.port, 3677 req->args.multicast_wlan_encap_get.wlan_port_id, 3678 req->args.multicast_wlan_encap_get.encap_id); 3679 break; 3680 #ifdef INCLUDE_L3 3681 case BCMX_ASYNC_ENTRY_NIV_CLEANUP: 3682 rv = bcmx_niv_cleanup( 3683 ); 3684 break; 3685 case BCMX_ASYNC_ENTRY_NIV_FORWARD_ADD: 3686 rv = bcmx_niv_forward_add( 3687 req->args.niv_forward_add.iv_fwd_entry); 3688 break; 3689 case BCMX_ASYNC_ENTRY_NIV_FORWARD_DELETE: 3690 rv = bcmx_niv_forward_delete( 3691 req->args.niv_forward_delete.iv_fwd_entry); 3692 break; 3693 case BCMX_ASYNC_ENTRY_NIV_FORWARD_DELETE_ALL: 3694 rv = bcmx_niv_forward_delete_all( 3695 ); 3696 break; 3697 case BCMX_ASYNC_ENTRY_NIV_FORWARD_GET: 3698 rv = bcmx_niv_forward_get( 3699 req->args.niv_forward_get.iv_fwd_entry); 3700 break; 3701 case BCMX_ASYNC_ENTRY_NIV_INIT: 3702 rv = bcmx_niv_init( 3703 ); 3704 break; 3705 case BCMX_ASYNC_ENTRY_NIV_PORT_ADD: 3706 rv = bcmx_niv_port_add( 3707 req->args.niv_port_add.niv_port); 3708 break; 3709 case BCMX_ASYNC_ENTRY_NIV_PORT_DELETE: 3710 rv = bcmx_niv_port_delete( 3711 req->args.niv_port_delete.niv_port_id); 3712 break; 3713 case BCMX_ASYNC_ENTRY_NIV_PORT_DELETE_ALL: 3714 rv = bcmx_niv_port_delete_all( 3715 ); 3716 break; 3717 case BCMX_ASYNC_ENTRY_NIV_PORT_GET: 3718 rv = bcmx_niv_port_get( 3719 req->args.niv_port_get.niv_port); 3720 break; 3721 #endif /* INCLUDE_L3 */ 3722 case BCMX_ASYNC_ENTRY_OAM_DETACH: 3723 rv = bcmx_oam_detach( 3724 ); 3725 break; 3726 case BCMX_ASYNC_ENTRY_OAM_ENDPOINT_CREATE: 3727 rv = bcmx_oam_endpoint_create( 3728 req->args.oam_endpoint_create.endpoint_info); 3729 break; 3730 case BCMX_ASYNC_ENTRY_OAM_ENDPOINT_DESTROY: 3731 rv = bcmx_oam_endpoint_destroy( 3732 req->args.oam_endpoint_destroy.endpoint); 3733 break; 3734 case BCMX_ASYNC_ENTRY_OAM_ENDPOINT_DESTROY_ALL: 3735 rv = bcmx_oam_endpoint_destroy_all( 3736 req->args.oam_endpoint_destroy_all.group); 3737 break; 3738 case BCMX_ASYNC_ENTRY_OAM_ENDPOINT_GET: 3739 rv = bcmx_oam_endpoint_get( 3740 req->args.oam_endpoint_get.endpoint, 3741 req->args.oam_endpoint_get.endpoint_info); 3742 break; 3743 case BCMX_ASYNC_ENTRY_OAM_GROUP_CREATE: 3744 rv = bcmx_oam_group_create( 3745 req->args.oam_group_create.group_info); 3746 break; 3747 case BCMX_ASYNC_ENTRY_OAM_GROUP_DESTROY: 3748 rv = bcmx_oam_group_destroy( 3749 req->args.oam_group_destroy.group); 3750 break; 3751 case BCMX_ASYNC_ENTRY_OAM_GROUP_DESTROY_ALL: 3752 rv = bcmx_oam_group_destroy_all( 3753 ); 3754 break; 3755 case BCMX_ASYNC_ENTRY_OAM_GROUP_GET: 3756 rv = bcmx_oam_group_get( 3757 req->args.oam_group_get.group, 3758 req->args.oam_group_get.group_info); 3759 break; 3760 case BCMX_ASYNC_ENTRY_OAM_INIT: 3761 rv = bcmx_oam_init( 3762 ); 3763 break; 3764 case BCMX_ASYNC_ENTRY_POLICER_CREATE: 3765 rv = bcmx_policer_create( 3766 req->args.policer_create.pol_cfg, 3767 req->args.policer_create.policer_id); 3768 break; 3769 case BCMX_ASYNC_ENTRY_POLICER_DESTROY: 3770 rv = bcmx_policer_destroy( 3771 req->args.policer_destroy.policer_id); 3772 break; 3773 case BCMX_ASYNC_ENTRY_POLICER_DESTROY_ALL: 3774 rv = bcmx_policer_destroy_all( 3775 ); 3776 break; 3777 case BCMX_ASYNC_ENTRY_POLICER_GET: 3778 rv = bcmx_policer_get( 3779 req->args.policer_get.policer_id, 3780 req->args.policer_get.pol_cfg); 3781 break; 3782 case BCMX_ASYNC_ENTRY_POLICER_INIT: 3783 rv = bcmx_policer_init( 3784 ); 3785 break; 3786 case BCMX_ASYNC_ENTRY_POLICER_SET: 3787 rv = bcmx_policer_set( 3788 req->args.policer_set.policer_id, 3789 req->args.policer_set.pol_cfg); 3790 break; 3791 case BCMX_ASYNC_ENTRY_PORT_ABILITY_ADVERT_GET: 3792 rv = bcmx_port_ability_advert_get( 3793 req->args.port_ability_advert_get.port, 3794 req->args.port_ability_advert_get.ability_mask); 3795 break; 3796 case BCMX_ASYNC_ENTRY_PORT_ABILITY_ADVERT_SET: 3797 rv = bcmx_port_ability_advert_set( 3798 req->args.port_ability_advert_set.port, 3799 req->args.port_ability_advert_set.ability_mask); 3800 break; 3801 case BCMX_ASYNC_ENTRY_PORT_ABILITY_GET: 3802 rv = bcmx_port_ability_get( 3803 req->args.port_ability_get.port, 3804 req->args.port_ability_get.local_ability_mask); 3805 break; 3806 case BCMX_ASYNC_ENTRY_PORT_ABILITY_LOCAL_GET: 3807 rv = bcmx_port_ability_local_get( 3808 req->args.port_ability_local_get.port, 3809 req->args.port_ability_local_get.local_ability_mask); 3810 break; 3811 case BCMX_ASYNC_ENTRY_PORT_ABILITY_REMOTE_GET: 3812 rv = bcmx_port_ability_remote_get( 3813 req->args.port_ability_remote_get.port, 3814 req->args.port_ability_remote_get.ability_mask); 3815 break; 3816 case BCMX_ASYNC_ENTRY_PORT_ADVERT_GET: 3817 rv = bcmx_port_advert_get( 3818 req->args.port_advert_get.port, 3819 req->args.port_advert_get.ability_mask); 3820 break; 3821 case BCMX_ASYNC_ENTRY_PORT_ADVERT_REMOTE_GET: 3822 rv = bcmx_port_advert_remote_get( 3823 req->args.port_advert_remote_get.port, 3824 req->args.port_advert_remote_get.ability_mask); 3825 break; 3826 case BCMX_ASYNC_ENTRY_PORT_ADVERT_SET: 3827 rv = bcmx_port_advert_set( 3828 req->args.port_advert_set.port, 3829 req->args.port_advert_set.ability_mask); 3830 break; 3831 case BCMX_ASYNC_ENTRY_PORT_AUTONEG_GET: 3832 rv = bcmx_port_autoneg_get( 3833 req->args.port_autoneg_get.port, 3834 req->args.port_autoneg_get.autoneg); 3835 break; 3836 case BCMX_ASYNC_ENTRY_PORT_AUTONEG_SET: 3837 rv = bcmx_port_autoneg_set( 3838 req->args.port_autoneg_set.port, 3839 req->args.port_autoneg_set.autoneg); 3840 break; 3841 case BCMX_ASYNC_ENTRY_PORT_BPDU_ENABLE_GET: 3842 rv = bcmx_port_bpdu_enable_get( 3843 req->args.port_bpdu_enable_get.port, 3844 req->args.port_bpdu_enable_get.enable); 3845 break; 3846 case BCMX_ASYNC_ENTRY_PORT_BPDU_ENABLE_SET: 3847 rv = bcmx_port_bpdu_enable_set( 3848 req->args.port_bpdu_enable_set.port, 3849 req->args.port_bpdu_enable_set.enable); 3850 break; 3851 case BCMX_ASYNC_ENTRY_PORT_CABLE_DIAG: 3852 rv = bcmx_port_cable_diag( 3853 req->args.port_cable_diag.port, 3854 req->args.port_cable_diag.status); 3855 break; 3856 case BCMX_ASYNC_ENTRY_PORT_CFI_COLOR_GET: 3857 rv = bcmx_port_cfi_color_get( 3858 req->args.port_cfi_color_get.port, 3859 req->args.port_cfi_color_get.cfi, 3860 req->args.port_cfi_color_get.color); 3861 break; 3862 case BCMX_ASYNC_ENTRY_PORT_CFI_COLOR_SET: 3863 rv = bcmx_port_cfi_color_set( 3864 req->args.port_cfi_color_set.port, 3865 req->args.port_cfi_color_set.cfi, 3866 req->args.port_cfi_color_set.color); 3867 break; 3868 case BCMX_ASYNC_ENTRY_PORT_CLASS_GET: 3869 rv = bcmx_port_class_get( 3870 req->args.port_class_get.port, 3871 req->args.port_class_get.pclass, 3872 req->args.port_class_get.class_id); 3873 break; 3874 case BCMX_ASYNC_ENTRY_PORT_CLASS_SET: 3875 rv = bcmx_port_class_set( 3876 req->args.port_class_set.port, 3877 req->args.port_class_set.pclass, 3878 req->args.port_class_set.class_id); 3879 break; 3880 case BCMX_ASYNC_ENTRY_PORT_CONFIG_GET: 3881 rv = bcmx_port_config_get( 3882 req->args.port_config_get.config); 3883 break; 3884 case BCMX_ASYNC_ENTRY_PORT_CONGESTION_CONFIG_GET: 3885 rv = bcmx_port_congestion_config_get( 3886 req->args.port_congestion_config_get.port, 3887 req->args.port_congestion_config_get.config); 3888 break; 3889 case BCMX_ASYNC_ENTRY_PORT_CONGESTION_CONFIG_SET: 3890 rv = bcmx_port_congestion_config_set( 3891 req->args.port_congestion_config_set.port, 3892 req->args.port_congestion_config_set.config); 3893 break; 3894 case BCMX_ASYNC_ENTRY_PORT_CONTROL_GET: 3895 rv = bcmx_port_control_get( 3896 req->args.port_control_get.port, 3897 req->args.port_control_get.type, 3898 req->args.port_control_get.value); 3899 break; 3900 case BCMX_ASYNC_ENTRY_PORT_CONTROL_PHY_TIMESYNC_GET: 3901 rv = bcmx_port_control_phy_timesync_get( 3902 req->args.port_control_phy_timesync_get.port, 3903 req->args.port_control_phy_timesync_get.type, 3904 req->args.port_control_phy_timesync_get.value); 3905 break; 3906 case BCMX_ASYNC_ENTRY_PORT_CONTROL_PHY_TIMESYNC_SET: 3907 rv = bcmx_port_control_phy_timesync_set( 3908 req->args.port_control_phy_timesync_set.port, 3909 req->args.port_control_phy_timesync_set.type, 3910 req->args.port_control_phy_timesync_set.value); 3911 break; 3912 case BCMX_ASYNC_ENTRY_PORT_CONTROL_SET: 3913 rv = bcmx_port_control_set( 3914 req->args.port_control_set.port, 3915 req->args.port_control_set.type, 3916 req->args.port_control_set.value); 3917 break; 3918 case BCMX_ASYNC_ENTRY_PORT_DISCARD_GET: 3919 rv = bcmx_port_discard_get( 3920 req->args.port_discard_get.port, 3921 req->args.port_discard_get.mode); 3922 break; 3923 case BCMX_ASYNC_ENTRY_PORT_DISCARD_SET: 3924 rv = bcmx_port_discard_set( 3925 req->args.port_discard_set.port, 3926 req->args.port_discard_set.mode); 3927 break; 3928 case BCMX_ASYNC_ENTRY_PORT_DSCP_MAP_GET: 3929 rv = bcmx_port_dscp_map_get( 3930 req->args.port_dscp_map_get.port, 3931 req->args.port_dscp_map_get.srccp, 3932 req->args.port_dscp_map_get.mapcp, 3933 req->args.port_dscp_map_get.prio); 3934 break; 3935 case BCMX_ASYNC_ENTRY_PORT_DSCP_MAP_MODE_GET: 3936 rv = bcmx_port_dscp_map_mode_get( 3937 req->args.port_dscp_map_mode_get.port, 3938 req->args.port_dscp_map_mode_get.mode); 3939 break; 3940 case BCMX_ASYNC_ENTRY_PORT_DSCP_MAP_MODE_SET: 3941 rv = bcmx_port_dscp_map_mode_set( 3942 req->args.port_dscp_map_mode_set.port, 3943 req->args.port_dscp_map_mode_set.mode); 3944 break; 3945 case BCMX_ASYNC_ENTRY_PORT_DSCP_MAP_SET: 3946 rv = bcmx_port_dscp_map_set( 3947 req->args.port_dscp_map_set.port, 3948 req->args.port_dscp_map_set.srccp, 3949 req->args.port_dscp_map_set.mapcp, 3950 req->args.port_dscp_map_set.prio); 3951 break; 3952 case BCMX_ASYNC_ENTRY_PORT_DTAG_MODE_GET: 3953 rv = bcmx_port_dtag_mode_get( 3954 req->args.port_dtag_mode_get.port, 3955 req->args.port_dtag_mode_get.mode); 3956 break; 3957 case BCMX_ASYNC_ENTRY_PORT_DTAG_MODE_SET: 3958 rv = bcmx_port_dtag_mode_set( 3959 req->args.port_dtag_mode_set.port, 3960 req->args.port_dtag_mode_set.mode); 3961 break; 3962 case BCMX_ASYNC_ENTRY_PORT_DUPLEX_GET: 3963 rv = bcmx_port_duplex_get( 3964 req->args.port_duplex_get.port, 3965 req->args.port_duplex_get.duplex); 3966 break; 3967 case BCMX_ASYNC_ENTRY_PORT_DUPLEX_SET: 3968 rv = bcmx_port_duplex_set( 3969 req->args.port_duplex_set.port, 3970 req->args.port_duplex_set.duplex); 3971 break; 3972 case BCMX_ASYNC_ENTRY_PORT_EGRESS_GET: 3973 rv = bcmx_port_egress_get( 3974 req->args.port_egress_get.port, 3975 req->args.port_egress_get.modid, 3976 req->args.port_egress_get.lplist); 3977 break; 3978 case BCMX_ASYNC_ENTRY_PORT_EGRESS_SET: 3979 rv = bcmx_port_egress_set( 3980 req->args.port_egress_set.port, 3981 req->args.port_egress_set.modid, 3982 req->args.port_egress_set.lplist); 3983 break; 3984 case BCMX_ASYNC_ENTRY_PORT_ENABLE_GET: 3985 rv = bcmx_port_enable_get( 3986 req->args.port_enable_get.port, 3987 req->args.port_enable_get.enable); 3988 break; 3989 case BCMX_ASYNC_ENTRY_PORT_ENABLE_SET: 3990 rv = bcmx_port_enable_set( 3991 req->args.port_enable_set.port, 3992 req->args.port_enable_set.enable); 3993 break; 3994 case BCMX_ASYNC_ENTRY_PORT_ENCAP_CONFIG_GET: 3995 rv = bcmx_port_encap_config_get( 3996 req->args.port_encap_config_get.gport, 3997 req->args.port_encap_config_get.encap_config); 3998 break; 3999 case BCMX_ASYNC_ENTRY_PORT_ENCAP_CONFIG_SET: 4000 rv = bcmx_port_encap_config_set( 4001 req->args.port_encap_config_set.gport, 4002 req->args.port_encap_config_set.encap_config); 4003 break; 4004 case BCMX_ASYNC_ENTRY_PORT_ENCAP_GET: 4005 rv = bcmx_port_encap_get( 4006 req->args.port_encap_get.port, 4007 req->args.port_encap_get.mode); 4008 break; 4009 case BCMX_ASYNC_ENTRY_PORT_ENCAP_SET: 4010 rv = bcmx_port_encap_set( 4011 req->args.port_encap_set.port, 4012 req->args.port_encap_set.mode); 4013 break; 4014 case BCMX_ASYNC_ENTRY_PORT_FAULT_GET: 4015 rv = bcmx_port_fault_get( 4016 req->args.port_fault_get.port, 4017 req->args.port_fault_get.flags); 4018 break; 4019 case BCMX_ASYNC_ENTRY_PORT_FLOOD_BLOCK_GET: 4020 rv = bcmx_port_flood_block_get( 4021 req->args.port_flood_block_get.ingress_port, 4022 req->args.port_flood_block_get.egress_port, 4023 req->args.port_flood_block_get.flags); 4024 break; 4025 case BCMX_ASYNC_ENTRY_PORT_FLOOD_BLOCK_SET: 4026 rv = bcmx_port_flood_block_set( 4027 req->args.port_flood_block_set.ingress_port, 4028 req->args.port_flood_block_set.egress_port, 4029 req->args.port_flood_block_set.flags); 4030 break; 4031 case BCMX_ASYNC_ENTRY_PORT_FORCE_VLAN_GET: 4032 rv = bcmx_port_force_vlan_get( 4033 req->args.port_force_vlan_get.port, 4034 req->args.port_force_vlan_get.vlan, 4035 req->args.port_force_vlan_get.pkt_prio, 4036 req->args.port_force_vlan_get.flags); 4037 break; 4038 case BCMX_ASYNC_ENTRY_PORT_FORCE_VLAN_SET: 4039 rv = bcmx_port_force_vlan_set( 4040 req->args.port_force_vlan_set.port, 4041 req->args.port_force_vlan_set.vlan, 4042 req->args.port_force_vlan_set.pkt_prio, 4043 req->args.port_force_vlan_set.flags); 4044 break; 4045 case BCMX_ASYNC_ENTRY_PORT_FRAME_MAX_GET: 4046 rv = bcmx_port_frame_max_get( 4047 req->args.port_frame_max_get.port, 4048 req->args.port_frame_max_get.size); 4049 break; 4050 case BCMX_ASYNC_ENTRY_PORT_FRAME_MAX_SET: 4051 rv = bcmx_port_frame_max_set( 4052 req->args.port_frame_max_set.port, 4053 req->args.port_frame_max_set.size); 4054 break; 4055 case BCMX_ASYNC_ENTRY_PORT_GPORT_GET: 4056 rv = bcmx_port_gport_get( 4057 req->args.port_gport_get.port, 4058 req->args.port_gport_get.gport); 4059 break; 4060 case BCMX_ASYNC_ENTRY_PORT_IFG_GET: 4061 rv = bcmx_port_ifg_get( 4062 req->args.port_ifg_get.port, 4063 req->args.port_ifg_get.speed, 4064 req->args.port_ifg_get.duplex, 4065 req->args.port_ifg_get.bit_times); 4066 break; 4067 case BCMX_ASYNC_ENTRY_PORT_IFG_SET: 4068 rv = bcmx_port_ifg_set( 4069 req->args.port_ifg_set.port, 4070 req->args.port_ifg_set.speed, 4071 req->args.port_ifg_set.duplex, 4072 req->args.port_ifg_set.bit_times); 4073 break; 4074 case BCMX_ASYNC_ENTRY_PORT_IFILTER_GET: 4075 rv = bcmx_port_ifilter_get( 4076 req->args.port_ifilter_get.port, 4077 req->args.port_ifilter_get.mode); 4078 break; 4079 case BCMX_ASYNC_ENTRY_PORT_IFILTER_SET: 4080 rv = bcmx_port_ifilter_set( 4081 req->args.port_ifilter_set.port, 4082 req->args.port_ifilter_set.mode); 4083 break; 4084 case BCMX_ASYNC_ENTRY_PORT_INFO_GET: 4085 rv = bcmx_port_info_get( 4086 req->args.port_info_get.port, 4087 req->args.port_info_get.info); 4088 break; 4089 case BCMX_ASYNC_ENTRY_PORT_INFO_RESTORE: 4090 rv = bcmx_port_info_restore( 4091 req->args.port_info_restore.port, 4092 req->args.port_info_restore.info); 4093 break; 4094 case BCMX_ASYNC_ENTRY_PORT_INFO_SAVE: 4095 rv = bcmx_port_info_save( 4096 req->args.port_info_save.port, 4097 req->args.port_info_save.info); 4098 break; 4099 case BCMX_ASYNC_ENTRY_PORT_INFO_SET: 4100 rv = bcmx_port_info_set( 4101 req->args.port_info_set.port, 4102 req->args.port_info_set.info); 4103 break; 4104 case BCMX_ASYNC_ENTRY_PORT_INNER_TPID_GET: 4105 rv = bcmx_port_inner_tpid_get( 4106 req->args.port_inner_tpid_get.port, 4107 req->args.port_inner_tpid_get.tpid); 4108 break; 4109 case BCMX_ASYNC_ENTRY_PORT_INNER_TPID_SET: 4110 rv = bcmx_port_inner_tpid_set( 4111 req->args.port_inner_tpid_set.port, 4112 req->args.port_inner_tpid_set.tpid); 4113 break; 4114 case BCMX_ASYNC_ENTRY_PORT_INTERFACE_GET: 4115 rv = bcmx_port_interface_get( 4116 req->args.port_interface_get.port, 4117 req->args.port_interface_get.intf); 4118 break; 4119 case BCMX_ASYNC_ENTRY_PORT_INTERFACE_SET: 4120 rv = bcmx_port_interface_set( 4121 req->args.port_interface_set.port, 4122 req->args.port_interface_set.intf); 4123 break; 4124 case BCMX_ASYNC_ENTRY_PORT_IPMC_MODIFY_GET: 4125 rv = bcmx_port_ipmc_modify_get( 4126 req->args.port_ipmc_modify_get.port, 4127 req->args.port_ipmc_modify_get.flags); 4128 break; 4129 case BCMX_ASYNC_ENTRY_PORT_IPMC_MODIFY_SET: 4130 rv = bcmx_port_ipmc_modify_set( 4131 req->args.port_ipmc_modify_set.port, 4132 req->args.port_ipmc_modify_set.flags); 4133 break; 4134 case BCMX_ASYNC_ENTRY_PORT_JAM_GET: 4135 rv = bcmx_port_jam_get( 4136 req->args.port_jam_get.port, 4137 req->args.port_jam_get.enable); 4138 break; 4139 case BCMX_ASYNC_ENTRY_PORT_JAM_SET: 4140 rv = bcmx_port_jam_set( 4141 req->args.port_jam_set.port, 4142 req->args.port_jam_set.enable); 4143 break; 4144 case BCMX_ASYNC_ENTRY_PORT_L3_ENABLE_GET: 4145 rv = bcmx_port_l3_enable_get( 4146 req->args.port_l3_enable_get.port, 4147 req->args.port_l3_enable_get.enable); 4148 break; 4149 case BCMX_ASYNC_ENTRY_PORT_L3_ENABLE_SET: 4150 rv = bcmx_port_l3_enable_set( 4151 req->args.port_l3_enable_set.port, 4152 req->args.port_l3_enable_set.enable); 4153 break; 4154 case BCMX_ASYNC_ENTRY_PORT_L3_MODIFY_GET: 4155 rv = bcmx_port_l3_modify_get( 4156 req->args.port_l3_modify_get.port, 4157 req->args.port_l3_modify_get.flags); 4158 break; 4159 case BCMX_ASYNC_ENTRY_PORT_L3_MODIFY_SET: 4160 rv = bcmx_port_l3_modify_set( 4161 req->args.port_l3_modify_set.port, 4162 req->args.port_l3_modify_set.flags); 4163 break; 4164 case BCMX_ASYNC_ENTRY_PORT_L3_MTU_GET: 4165 rv = bcmx_port_l3_mtu_get( 4166 req->args.port_l3_mtu_get.port, 4167 req->args.port_l3_mtu_get.size); 4168 break; 4169 case BCMX_ASYNC_ENTRY_PORT_L3_MTU_SET: 4170 rv = bcmx_port_l3_mtu_set( 4171 req->args.port_l3_mtu_set.port, 4172 req->args.port_l3_mtu_set.size); 4173 break; 4174 case BCMX_ASYNC_ENTRY_PORT_LEARN_GET: 4175 rv = bcmx_port_learn_get( 4176 req->args.port_learn_get.port, 4177 req->args.port_learn_get.flags); 4178 break; 4179 case BCMX_ASYNC_ENTRY_PORT_LEARN_MODIFY: 4180 rv = bcmx_port_learn_modify( 4181 req->args.port_learn_modify.port, 4182 req->args.port_learn_modify.add, 4183 req->args.port_learn_modify.remove); 4184 break; 4185 case BCMX_ASYNC_ENTRY_PORT_LEARN_SET: 4186 rv = bcmx_port_learn_set( 4187 req->args.port_learn_set.port, 4188 req->args.port_learn_set.flags); 4189 break; 4190 case BCMX_ASYNC_ENTRY_PORT_LINK_FAILED_CLEAR: 4191 rv = bcmx_port_link_failed_clear( 4192 req->args.port_link_failed_clear.port); 4193 break; 4194 case BCMX_ASYNC_ENTRY_PORT_LINK_STATUS_GET: 4195 rv = bcmx_port_link_status_get( 4196 req->args.port_link_status_get.port, 4197 req->args.port_link_status_get.status); 4198 break; 4199 case BCMX_ASYNC_ENTRY_PORT_LINKSCAN_GET: 4200 rv = bcmx_port_linkscan_get( 4201 req->args.port_linkscan_get.port, 4202 req->args.port_linkscan_get.linkscan); 4203 break; 4204 case BCMX_ASYNC_ENTRY_PORT_LINKSCAN_SET: 4205 rv = bcmx_port_linkscan_set( 4206 req->args.port_linkscan_set.port, 4207 req->args.port_linkscan_set.linkscan); 4208 break; 4209 case BCMX_ASYNC_ENTRY_PORT_LOOPBACK_GET: 4210 rv = bcmx_port_loopback_get( 4211 req->args.port_loopback_get.port, 4212 req->args.port_loopback_get.loopback); 4213 break; 4214 case BCMX_ASYNC_ENTRY_PORT_LOOPBACK_SET: 4215 rv = bcmx_port_loopback_set( 4216 req->args.port_loopback_set.port, 4217 req->args.port_loopback_set.loopback); 4218 break; 4219 case BCMX_ASYNC_ENTRY_PORT_LPLIST_POPULATE: 4220 rv = bcmx_port_lplist_populate( 4221 req->args.port_lplist_populate.list, 4222 req->args.port_lplist_populate.flags); 4223 break; 4224 case BCMX_ASYNC_ENTRY_PORT_MASTER_GET: 4225 rv = bcmx_port_master_get( 4226 req->args.port_master_get.port, 4227 req->args.port_master_get.ms); 4228 break; 4229 case BCMX_ASYNC_ENTRY_PORT_MASTER_SET: 4230 rv = bcmx_port_master_set( 4231 req->args.port_master_set.port, 4232 req->args.port_master_set.ms); 4233 break; 4234 case BCMX_ASYNC_ENTRY_PORT_MATCH_ADD: 4235 rv = bcmx_port_match_add( 4236 req->args.port_match_add.port, 4237 req->args.port_match_add.match); 4238 break; 4239 case BCMX_ASYNC_ENTRY_PORT_MATCH_DELETE: 4240 rv = bcmx_port_match_delete( 4241 req->args.port_match_delete.port, 4242 req->args.port_match_delete.match); 4243 break; 4244 case BCMX_ASYNC_ENTRY_PORT_MATCH_DELETE_ALL: 4245 rv = bcmx_port_match_delete_all( 4246 req->args.port_match_delete_all.port); 4247 break; 4248 case BCMX_ASYNC_ENTRY_PORT_MATCH_MULTI_GET: 4249 rv = bcmx_port_match_multi_get( 4250 req->args.port_match_multi_get.port, 4251 req->args.port_match_multi_get.size, 4252 req->args.port_match_multi_get.match_array, 4253 req->args.port_match_multi_get.count); 4254 break; 4255 case BCMX_ASYNC_ENTRY_PORT_MATCH_REPLACE: 4256 rv = bcmx_port_match_replace( 4257 req->args.port_match_replace.port, 4258 req->args.port_match_replace.old_match, 4259 req->args.port_match_replace.new_match); 4260 break; 4261 case BCMX_ASYNC_ENTRY_PORT_MATCH_SET: 4262 rv = bcmx_port_match_set( 4263 req->args.port_match_set.port, 4264 req->args.port_match_set.size, 4265 req->args.port_match_set.match_array); 4266 break; 4267 case BCMX_ASYNC_ENTRY_PORT_MDIX_GET: 4268 rv = bcmx_port_mdix_get( 4269 req->args.port_mdix_get.port, 4270 req->args.port_mdix_get.mode); 4271 break; 4272 case BCMX_ASYNC_ENTRY_PORT_MDIX_SET: 4273 rv = bcmx_port_mdix_set( 4274 req->args.port_mdix_set.port, 4275 req->args.port_mdix_set.mode); 4276 break; 4277 case BCMX_ASYNC_ENTRY_PORT_MDIX_STATUS_GET: 4278 rv = bcmx_port_mdix_status_get( 4279 req->args.port_mdix_status_get.port, 4280 req->args.port_mdix_status_get.status); 4281 break; 4282 case BCMX_ASYNC_ENTRY_PORT_MEDIUM_CONFIG_GET: 4283 rv = bcmx_port_medium_config_get( 4284 req->args.port_medium_config_get.port, 4285 req->args.port_medium_config_get.medium, 4286 req->args.port_medium_config_get.config); 4287 break; 4288 case BCMX_ASYNC_ENTRY_PORT_MEDIUM_CONFIG_SET: 4289 rv = bcmx_port_medium_config_set( 4290 req->args.port_medium_config_set.port, 4291 req->args.port_medium_config_set.medium, 4292 req->args.port_medium_config_set.config); 4293 break; 4294 case BCMX_ASYNC_ENTRY_PORT_MEDIUM_GET: 4295 rv = bcmx_port_medium_get( 4296 req->args.port_medium_get.port, 4297 req->args.port_medium_get.medium); 4298 break; 4299 case BCMX_ASYNC_ENTRY_PORT_MODID_ENABLE_GET: 4300 rv = bcmx_port_modid_enable_get( 4301 req->args.port_modid_enable_get.port, 4302 req->args.port_modid_enable_get.modid, 4303 req->args.port_modid_enable_get.enable); 4304 break; 4305 case BCMX_ASYNC_ENTRY_PORT_MODID_ENABLE_SET: 4306 rv = bcmx_port_modid_enable_set( 4307 req->args.port_modid_enable_set.port, 4308 req->args.port_modid_enable_set.modid, 4309 req->args.port_modid_enable_set.enable); 4310 break; 4311 case BCMX_ASYNC_ENTRY_PORT_PAUSE_ADDR_GET: 4312 rv = bcmx_port_pause_addr_get( 4313 req->args.port_pause_addr_get.port, 4314 req->args.port_pause_addr_get.mac); 4315 break; 4316 case BCMX_ASYNC_ENTRY_PORT_PAUSE_ADDR_SET: 4317 rv = bcmx_port_pause_addr_set( 4318 req->args.port_pause_addr_set.port, 4319 req->args.port_pause_addr_set.mac); 4320 break; 4321 case BCMX_ASYNC_ENTRY_PORT_PAUSE_GET: 4322 rv = bcmx_port_pause_get( 4323 req->args.port_pause_get.port, 4324 req->args.port_pause_get.pause_tx, 4325 req->args.port_pause_get.pause_rx); 4326 break; 4327 case BCMX_ASYNC_ENTRY_PORT_PAUSE_SET: 4328 rv = bcmx_port_pause_set( 4329 req->args.port_pause_set.port, 4330 req->args.port_pause_set.pause_tx, 4331 req->args.port_pause_set.pause_rx); 4332 break; 4333 case BCMX_ASYNC_ENTRY_PORT_PAUSE_SYM_GET: 4334 rv = bcmx_port_pause_sym_get( 4335 req->args.port_pause_sym_get.port, 4336 req->args.port_pause_sym_get.pause); 4337 break; 4338 case BCMX_ASYNC_ENTRY_PORT_PAUSE_SYM_SET: 4339 rv = bcmx_port_pause_sym_set( 4340 req->args.port_pause_sym_set.port, 4341 req->args.port_pause_sym_set.pause); 4342 break; 4343 case BCMX_ASYNC_ENTRY_PORT_PFM_GET: 4344 rv = bcmx_port_pfm_get( 4345 req->args.port_pfm_get.port, 4346 req->args.port_pfm_get.mode); 4347 break; 4348 case BCMX_ASYNC_ENTRY_PORT_PFM_SET: 4349 rv = bcmx_port_pfm_set( 4350 req->args.port_pfm_set.port, 4351 req->args.port_pfm_set.mode); 4352 break; 4353 case BCMX_ASYNC_ENTRY_PORT_PHY_CONTROL_GET: 4354 rv = bcmx_port_phy_control_get( 4355 req->args.port_phy_control_get.port, 4356 req->args.port_phy_control_get.type, 4357 req->args.port_phy_control_get.value); 4358 break; 4359 case BCMX_ASYNC_ENTRY_PORT_PHY_CONTROL_SET: 4360 rv = bcmx_port_phy_control_set( 4361 req->args.port_phy_control_set.port, 4362 req->args.port_phy_control_set.type, 4363 req->args.port_phy_control_set.value); 4364 break; 4365 case BCMX_ASYNC_ENTRY_PORT_PHY_GET: 4366 rv = bcmx_port_phy_get( 4367 req->args.port_phy_get.port, 4368 req->args.port_phy_get.flags, 4369 req->args.port_phy_get.phy_reg_addr, 4370 req->args.port_phy_get.phy_data); 4371 break; 4372 case BCMX_ASYNC_ENTRY_PORT_PHY_MODIFY: 4373 rv = bcmx_port_phy_modify( 4374 req->args.port_phy_modify.port, 4375 req->args.port_phy_modify.flags, 4376 req->args.port_phy_modify.phy_reg_addr, 4377 req->args.port_phy_modify.phy_data, 4378 req->args.port_phy_modify.phy_mask); 4379 break; 4380 case BCMX_ASYNC_ENTRY_PORT_PHY_SET: 4381 rv = bcmx_port_phy_set( 4382 req->args.port_phy_set.port, 4383 req->args.port_phy_set.flags, 4384 req->args.port_phy_set.phy_reg_addr, 4385 req->args.port_phy_set.phy_data); 4386 break; 4387 case BCMX_ASYNC_ENTRY_PORT_PHY_TIMESYNC_CONFIG_GET: 4388 rv = bcmx_port_phy_timesync_config_get( 4389 req->args.port_phy_timesync_config_get.port, 4390 req->args.port_phy_timesync_config_get.conf); 4391 break; 4392 case BCMX_ASYNC_ENTRY_PORT_PHY_TIMESYNC_CONFIG_SET: 4393 rv = bcmx_port_phy_timesync_config_set( 4394 req->args.port_phy_timesync_config_set.port, 4395 req->args.port_phy_timesync_config_set.conf); 4396 break; 4397 case BCMX_ASYNC_ENTRY_PORT_PHY_TIMESYNC_ENHANCED_CAPTURE_GET: 4398 rv = bcmx_port_phy_timesync_enhanced_capture_get( 4399 req->args.port_phy_timesync_enhanced_capture_get.port, 4400 req->args.port_phy_timesync_enhanced_capture_get.conf); 4401 break; 4402 case BCMX_ASYNC_ENTRY_PORT_PRIORITY_COLOR_GET: 4403 rv = bcmx_port_priority_color_get( 4404 req->args.port_priority_color_get.port, 4405 req->args.port_priority_color_get.prio, 4406 req->args.port_priority_color_get.color); 4407 break; 4408 case BCMX_ASYNC_ENTRY_PORT_PRIORITY_COLOR_SET: 4409 rv = bcmx_port_priority_color_set( 4410 req->args.port_priority_color_set.port, 4411 req->args.port_priority_color_set.prio, 4412 req->args.port_priority_color_set.color); 4413 break; 4414 case BCMX_ASYNC_ENTRY_PORT_PROTOCOL_VLAN_ADD: 4415 rv = bcmx_port_protocol_vlan_add( 4416 req->args.port_protocol_vlan_add.port, 4417 req->args.port_protocol_vlan_add.frame, 4418 req->args.port_protocol_vlan_add.ether, 4419 req->args.port_protocol_vlan_add.vid); 4420 break; 4421 case BCMX_ASYNC_ENTRY_PORT_PROTOCOL_VLAN_DELETE: 4422 rv = bcmx_port_protocol_vlan_delete( 4423 req->args.port_protocol_vlan_delete.port, 4424 req->args.port_protocol_vlan_delete.frame, 4425 req->args.port_protocol_vlan_delete.ether); 4426 break; 4427 case BCMX_ASYNC_ENTRY_PORT_PROTOCOL_VLAN_DELETE_ALL: 4428 rv = bcmx_port_protocol_vlan_delete_all( 4429 req->args.port_protocol_vlan_delete_all.port); 4430 break; 4431 case BCMX_ASYNC_ENTRY_PORT_QUEUED_COUNT_GET: 4432 rv = bcmx_port_queued_count_get( 4433 req->args.port_queued_count_get.port, 4434 req->args.port_queued_count_get.count); 4435 break; 4436 case BCMX_ASYNC_ENTRY_PORT_RATE_EGRESS_GET: 4437 rv = bcmx_port_rate_egress_get( 4438 req->args.port_rate_egress_get.port, 4439 req->args.port_rate_egress_get.kbits_sec, 4440 req->args.port_rate_egress_get.kbits_burst); 4441 break; 4442 case BCMX_ASYNC_ENTRY_PORT_RATE_EGRESS_SET: 4443 rv = bcmx_port_rate_egress_set( 4444 req->args.port_rate_egress_set.port, 4445 req->args.port_rate_egress_set.kbits_sec, 4446 req->args.port_rate_egress_set.kbits_burst); 4447 break; 4448 case BCMX_ASYNC_ENTRY_PORT_RATE_INGRESS_GET: 4449 rv = bcmx_port_rate_ingress_get( 4450 req->args.port_rate_ingress_get.port, 4451 req->args.port_rate_ingress_get.kbits_sec, 4452 req->args.port_rate_ingress_get.kbits_burst); 4453 break; 4454 case BCMX_ASYNC_ENTRY_PORT_RATE_INGRESS_SET: 4455 rv = bcmx_port_rate_ingress_set( 4456 req->args.port_rate_ingress_set.port, 4457 req->args.port_rate_ingress_set.kbits_sec, 4458 req->args.port_rate_ingress_set.kbits_burst); 4459 break; 4460 case BCMX_ASYNC_ENTRY_PORT_RATE_PAUSE_GET: 4461 rv = bcmx_port_rate_pause_get( 4462 req->args.port_rate_pause_get.port, 4463 req->args.port_rate_pause_get.kbits_pause, 4464 req->args.port_rate_pause_get.kbits_resume); 4465 break; 4466 case BCMX_ASYNC_ENTRY_PORT_RATE_PAUSE_SET: 4467 rv = bcmx_port_rate_pause_set( 4468 req->args.port_rate_pause_set.port, 4469 req->args.port_rate_pause_set.kbits_pause, 4470 req->args.port_rate_pause_set.kbits_resume); 4471 break; 4472 case BCMX_ASYNC_ENTRY_PORT_SAMPLE_RATE_GET: 4473 rv = bcmx_port_sample_rate_get( 4474 req->args.port_sample_rate_get.port, 4475 req->args.port_sample_rate_get.ingress_rate, 4476 req->args.port_sample_rate_get.egress_rate); 4477 break; 4478 case BCMX_ASYNC_ENTRY_PORT_SAMPLE_RATE_SET: 4479 rv = bcmx_port_sample_rate_set( 4480 req->args.port_sample_rate_set.port, 4481 req->args.port_sample_rate_set.ingress_rate, 4482 req->args.port_sample_rate_set.egress_rate); 4483 break; 4484 case BCMX_ASYNC_ENTRY_PORT_SELECTIVE_GET: 4485 rv = bcmx_port_selective_get( 4486 req->args.port_selective_get.port, 4487 req->args.port_selective_get.info); 4488 break; 4489 case BCMX_ASYNC_ENTRY_PORT_SELECTIVE_SET: 4490 rv = bcmx_port_selective_set( 4491 req->args.port_selective_set.port, 4492 req->args.port_selective_set.info); 4493 break; 4494 case BCMX_ASYNC_ENTRY_PORT_SPEED_GET: 4495 rv = bcmx_port_speed_get( 4496 req->args.port_speed_get.port, 4497 req->args.port_speed_get.speed); 4498 break; 4499 case BCMX_ASYNC_ENTRY_PORT_SPEED_MAX: 4500 rv = bcmx_port_speed_max( 4501 req->args.port_speed_max.port, 4502 req->args.port_speed_max.speed); 4503 break; 4504 case BCMX_ASYNC_ENTRY_PORT_SPEED_SET: 4505 rv = bcmx_port_speed_set( 4506 req->args.port_speed_set.port, 4507 req->args.port_speed_set.speed); 4508 break; 4509 case BCMX_ASYNC_ENTRY_PORT_STAT_ENABLE_SET: 4510 rv = bcmx_port_stat_enable_set( 4511 req->args.port_stat_enable_set.port, 4512 req->args.port_stat_enable_set.enable); 4513 break; 4514 case BCMX_ASYNC_ENTRY_PORT_STAT_GET: 4515 rv = bcmx_port_stat_get( 4516 req->args.port_stat_get.port, 4517 req->args.port_stat_get.stat, 4518 req->args.port_stat_get.val); 4519 break; 4520 case BCMX_ASYNC_ENTRY_PORT_STAT_GET32: 4521 rv = bcmx_port_stat_get32( 4522 req->args.port_stat_get32.port, 4523 req->args.port_stat_get32.stat, 4524 req->args.port_stat_get32.val); 4525 break; 4526 case BCMX_ASYNC_ENTRY_PORT_STAT_MULTI_GET: 4527 rv = bcmx_port_stat_multi_get( 4528 req->args.port_stat_multi_get.port, 4529 req->args.port_stat_multi_get.nstat, 4530 req->args.port_stat_multi_get.stat_arr, 4531 req->args.port_stat_multi_get.value_arr); 4532 break; 4533 case BCMX_ASYNC_ENTRY_PORT_STAT_MULTI_GET32: 4534 rv = bcmx_port_stat_multi_get32( 4535 req->args.port_stat_multi_get32.port, 4536 req->args.port_stat_multi_get32.nstat, 4537 req->args.port_stat_multi_get32.stat_arr, 4538 req->args.port_stat_multi_get32.value_arr); 4539 break; 4540 case BCMX_ASYNC_ENTRY_PORT_STAT_MULTI_SET: 4541 rv = bcmx_port_stat_multi_set( 4542 req->args.port_stat_multi_set.port, 4543 req->args.port_stat_multi_set.nstat, 4544 req->args.port_stat_multi_set.stat_arr, 4545 req->args.port_stat_multi_set.value_arr); 4546 break; 4547 case BCMX_ASYNC_ENTRY_PORT_STAT_MULTI_SET32: 4548 rv = bcmx_port_stat_multi_set32( 4549 req->args.port_stat_multi_set32.port, 4550 req->args.port_stat_multi_set32.nstat, 4551 req->args.port_stat_multi_set32.stat_arr, 4552 req->args.port_stat_multi_set32.value_arr); 4553 break; 4554 case BCMX_ASYNC_ENTRY_PORT_STAT_SET: 4555 rv = bcmx_port_stat_set( 4556 req->args.port_stat_set.port, 4557 req->args.port_stat_set.stat, 4558 req->args.port_stat_set.val); 4559 break; 4560 case BCMX_ASYNC_ENTRY_PORT_STAT_SET32: 4561 rv = bcmx_port_stat_set32( 4562 req->args.port_stat_set32.port, 4563 req->args.port_stat_set32.stat, 4564 req->args.port_stat_set32.val); 4565 break; 4566 case BCMX_ASYNC_ENTRY_PORT_STP_GET: 4567 rv = bcmx_port_stp_get( 4568 req->args.port_stp_get.port, 4569 req->args.port_stp_get.state); 4570 break; 4571 case BCMX_ASYNC_ENTRY_PORT_STP_SET: 4572 rv = bcmx_port_stp_set( 4573 req->args.port_stp_set.port, 4574 req->args.port_stp_set.state); 4575 break; 4576 case BCMX_ASYNC_ENTRY_PORT_SUBSIDIARY_PORTS_GET: 4577 rv = bcmx_port_subsidiary_ports_get( 4578 req->args.port_subsidiary_ports_get.port, 4579 req->args.port_subsidiary_ports_get.lplist); 4580 break; 4581 case BCMX_ASYNC_ENTRY_PORT_TGID_GET: 4582 rv = bcmx_port_tgid_get( 4583 req->args.port_tgid_get.port, 4584 req->args.port_tgid_get.tgid, 4585 req->args.port_tgid_get.psc); 4586 break; 4587 case BCMX_ASYNC_ENTRY_PORT_TGID_SET: 4588 rv = bcmx_port_tgid_set( 4589 req->args.port_tgid_set.port, 4590 req->args.port_tgid_set.tgid, 4591 req->args.port_tgid_set.psc); 4592 break; 4593 case BCMX_ASYNC_ENTRY_PORT_TPID_ADD: 4594 rv = bcmx_port_tpid_add( 4595 req->args.port_tpid_add.port, 4596 req->args.port_tpid_add.tpid, 4597 req->args.port_tpid_add.color_select); 4598 break; 4599 case BCMX_ASYNC_ENTRY_PORT_TPID_DELETE: 4600 rv = bcmx_port_tpid_delete( 4601 req->args.port_tpid_delete.port, 4602 req->args.port_tpid_delete.tpid); 4603 break; 4604 case BCMX_ASYNC_ENTRY_PORT_TPID_DELETE_ALL: 4605 rv = bcmx_port_tpid_delete_all( 4606 req->args.port_tpid_delete_all.port); 4607 break; 4608 case BCMX_ASYNC_ENTRY_PORT_TPID_GET: 4609 rv = bcmx_port_tpid_get( 4610 req->args.port_tpid_get.port, 4611 req->args.port_tpid_get.tpid); 4612 break; 4613 case BCMX_ASYNC_ENTRY_PORT_TPID_SET: 4614 rv = bcmx_port_tpid_set( 4615 req->args.port_tpid_set.port, 4616 req->args.port_tpid_set.tpid); 4617 break; 4618 case BCMX_ASYNC_ENTRY_PORT_UNTAGGED_PRIORITY_GET: 4619 rv = bcmx_port_untagged_priority_get( 4620 req->args.port_untagged_priority_get.port, 4621 req->args.port_untagged_priority_get.priority); 4622 break; 4623 case BCMX_ASYNC_ENTRY_PORT_UNTAGGED_PRIORITY_SET: 4624 rv = bcmx_port_untagged_priority_set( 4625 req->args.port_untagged_priority_set.port, 4626 req->args.port_untagged_priority_set.priority); 4627 break; 4628 case BCMX_ASYNC_ENTRY_PORT_UNTAGGED_VLAN_GET: 4629 rv = bcmx_port_untagged_vlan_get( 4630 req->args.port_untagged_vlan_get.port, 4631 req->args.port_untagged_vlan_get.vid_ptr); 4632 break; 4633 case BCMX_ASYNC_ENTRY_PORT_UNTAGGED_VLAN_SET: 4634 rv = bcmx_port_untagged_vlan_set( 4635 req->args.port_untagged_vlan_set.port, 4636 req->args.port_untagged_vlan_set.vid); 4637 break; 4638 case BCMX_ASYNC_ENTRY_PORT_UPDATE: 4639 rv = bcmx_port_update( 4640 req->args.port_update.port, 4641 req->args.port_update.link); 4642 break; 4643 case BCMX_ASYNC_ENTRY_PORT_VLAN_INNER_TAG_GET: 4644 rv = bcmx_port_vlan_inner_tag_get( 4645 req->args.port_vlan_inner_tag_get.port, 4646 req->args.port_vlan_inner_tag_get.inner_tag); 4647 break; 4648 case BCMX_ASYNC_ENTRY_PORT_VLAN_INNER_TAG_SET: 4649 rv = bcmx_port_vlan_inner_tag_set( 4650 req->args.port_vlan_inner_tag_set.port, 4651 req->args.port_vlan_inner_tag_set.inner_tag); 4652 break; 4653 case BCMX_ASYNC_ENTRY_PORT_VLAN_MEMBER_GET: 4654 rv = bcmx_port_vlan_member_get( 4655 req->args.port_vlan_member_get.port, 4656 req->args.port_vlan_member_get.flags); 4657 break; 4658 case BCMX_ASYNC_ENTRY_PORT_VLAN_MEMBER_SET: 4659 rv = bcmx_port_vlan_member_set( 4660 req->args.port_vlan_member_set.port, 4661 req->args.port_vlan_member_set.flags); 4662 break; 4663 case BCMX_ASYNC_ENTRY_PORT_VLAN_PRIORITY_MAP_GET: 4664 rv = bcmx_port_vlan_priority_map_get( 4665 req->args.port_vlan_priority_map_get.port, 4666 req->args.port_vlan_priority_map_get.pkt_pri, 4667 req->args.port_vlan_priority_map_get.cfi, 4668 req->args.port_vlan_priority_map_get.internal_pri, 4669 req->args.port_vlan_priority_map_get.color); 4670 break; 4671 case BCMX_ASYNC_ENTRY_PORT_VLAN_PRIORITY_MAP_SET: 4672 rv = bcmx_port_vlan_priority_map_set( 4673 req->args.port_vlan_priority_map_set.port, 4674 req->args.port_vlan_priority_map_set.pkt_pri, 4675 req->args.port_vlan_priority_map_set.cfi, 4676 req->args.port_vlan_priority_map_set.internal_pri, 4677 req->args.port_vlan_priority_map_set.color); 4678 break; 4679 case BCMX_ASYNC_ENTRY_PORT_VLAN_PRIORITY_UNMAP_GET: 4680 rv = bcmx_port_vlan_priority_unmap_get( 4681 req->args.port_vlan_priority_unmap_get.port, 4682 req->args.port_vlan_priority_unmap_get.internal_pri, 4683 req->args.port_vlan_priority_unmap_get.color, 4684 req->args.port_vlan_priority_unmap_get.pkt_pri, 4685 req->args.port_vlan_priority_unmap_get.cfi); 4686 break; 4687 case BCMX_ASYNC_ENTRY_PORT_VLAN_PRIORITY_UNMAP_SET: 4688 rv = bcmx_port_vlan_priority_unmap_set( 4689 req->args.port_vlan_priority_unmap_set.port, 4690 req->args.port_vlan_priority_unmap_set.internal_pri, 4691 req->args.port_vlan_priority_unmap_set.color, 4692 req->args.port_vlan_priority_unmap_set.pkt_pri, 4693 req->args.port_vlan_priority_unmap_set.cfi); 4694 break; 4695 #ifdef INCLUDE_L3 4696 case BCMX_ASYNC_ENTRY_PROXY_CLEANUP: 4697 rv = bcmx_proxy_cleanup( 4698 ); 4699 break; 4700 case BCMX_ASYNC_ENTRY_PROXY_CLIENT_SET: 4701 rv = bcmx_proxy_client_set( 4702 req->args.proxy_client_set.client_port, 4703 req->args.proxy_client_set.proto_type, 4704 req->args.proxy_client_set.server_lport, 4705 req->args.proxy_client_set.enable); 4706 break; 4707 case BCMX_ASYNC_ENTRY_PROXY_INIT: 4708 rv = bcmx_proxy_init( 4709 ); 4710 break; 4711 case BCMX_ASYNC_ENTRY_PROXY_SERVER_GET: 4712 rv = bcmx_proxy_server_get( 4713 req->args.proxy_server_get.server_lport, 4714 req->args.proxy_server_get.mode, 4715 req->args.proxy_server_get.enable); 4716 break; 4717 case BCMX_ASYNC_ENTRY_PROXY_SERVER_SET: 4718 rv = bcmx_proxy_server_set( 4719 req->args.proxy_server_set.server_lport, 4720 req->args.proxy_server_set.mode, 4721 req->args.proxy_server_set.enable); 4722 break; 4723 #endif /* INCLUDE_L3 */ 4724 case BCMX_ASYNC_ENTRY_QOS_DETACH: 4725 rv = bcmx_qos_detach( 4726 ); 4727 break; 4728 case BCMX_ASYNC_ENTRY_QOS_INIT: 4729 rv = bcmx_qos_init( 4730 ); 4731 break; 4732 case BCMX_ASYNC_ENTRY_QOS_MAP_ADD: 4733 rv = bcmx_qos_map_add( 4734 req->args.qos_map_add.flags, 4735 req->args.qos_map_add.map, 4736 req->args.qos_map_add.map_id); 4737 break; 4738 case BCMX_ASYNC_ENTRY_QOS_MAP_CREATE: 4739 rv = bcmx_qos_map_create( 4740 req->args.qos_map_create.flags, 4741 req->args.qos_map_create.map_id); 4742 break; 4743 case BCMX_ASYNC_ENTRY_QOS_MAP_DELETE: 4744 rv = bcmx_qos_map_delete( 4745 req->args.qos_map_delete.flags, 4746 req->args.qos_map_delete.map, 4747 req->args.qos_map_delete.map_id); 4748 break; 4749 case BCMX_ASYNC_ENTRY_QOS_MAP_DESTROY: 4750 rv = bcmx_qos_map_destroy( 4751 req->args.qos_map_destroy.map_id); 4752 break; 4753 case BCMX_ASYNC_ENTRY_QOS_MAP_MULTI_GET: 4754 rv = bcmx_qos_map_multi_get( 4755 req->args.qos_map_multi_get.flags, 4756 req->args.qos_map_multi_get.map_id, 4757 req->args.qos_map_multi_get.array_size, 4758 req->args.qos_map_multi_get.array, 4759 req->args.qos_map_multi_get.array_count); 4760 break; 4761 case BCMX_ASYNC_ENTRY_QOS_MULTI_GET: 4762 rv = bcmx_qos_multi_get( 4763 req->args.qos_multi_get.array_size, 4764 req->args.qos_multi_get.map_ids_array, 4765 req->args.qos_multi_get.flags_array, 4766 req->args.qos_multi_get.array_count); 4767 break; 4768 case BCMX_ASYNC_ENTRY_QOS_PORT_MAP_GET: 4769 rv = bcmx_qos_port_map_get( 4770 req->args.qos_port_map_get.port, 4771 req->args.qos_port_map_get.ing_map, 4772 req->args.qos_port_map_get.egr_map); 4773 break; 4774 case BCMX_ASYNC_ENTRY_QOS_PORT_MAP_SET: 4775 rv = bcmx_qos_port_map_set( 4776 req->args.qos_port_map_set.port, 4777 req->args.qos_port_map_set.ing_map, 4778 req->args.qos_port_map_set.egr_map); 4779 break; 4780 case BCMX_ASYNC_ENTRY_QOS_PORT_VLAN_MAP_GET: 4781 rv = bcmx_qos_port_vlan_map_get( 4782 req->args.qos_port_vlan_map_get.port, 4783 req->args.qos_port_vlan_map_get.vid, 4784 req->args.qos_port_vlan_map_get.ing_map, 4785 req->args.qos_port_vlan_map_get.egr_map); 4786 break; 4787 case BCMX_ASYNC_ENTRY_QOS_PORT_VLAN_MAP_SET: 4788 rv = bcmx_qos_port_vlan_map_set( 4789 req->args.qos_port_vlan_map_set.port, 4790 req->args.qos_port_vlan_map_set.vid, 4791 req->args.qos_port_vlan_map_set.ing_map, 4792 req->args.qos_port_vlan_map_set.egr_map); 4793 break; 4794 case BCMX_ASYNC_ENTRY_RATE_BANDWIDTH_GET: 4795 rv = bcmx_rate_bandwidth_get( 4796 req->args.rate_bandwidth_get.port, 4797 req->args.rate_bandwidth_get.flags, 4798 req->args.rate_bandwidth_get.kbits_sec, 4799 req->args.rate_bandwidth_get.kbits_burst); 4800 break; 4801 case BCMX_ASYNC_ENTRY_RATE_BANDWIDTH_SET: 4802 rv = bcmx_rate_bandwidth_set( 4803 req->args.rate_bandwidth_set.port, 4804 req->args.rate_bandwidth_set.flags, 4805 req->args.rate_bandwidth_set.kbits_sec, 4806 req->args.rate_bandwidth_set.kbits_burst); 4807 break; 4808 case BCMX_ASYNC_ENTRY_RATE_BCAST_GET: 4809 rv = bcmx_rate_bcast_get( 4810 req->args.rate_bcast_get.limit, 4811 req->args.rate_bcast_get.flags, 4812 req->args.rate_bcast_get.port); 4813 break; 4814 case BCMX_ASYNC_ENTRY_RATE_BCAST_SET: 4815 rv = bcmx_rate_bcast_set( 4816 req->args.rate_bcast_set.limit, 4817 req->args.rate_bcast_set.flags, 4818 req->args.rate_bcast_set.port); 4819 break; 4820 case BCMX_ASYNC_ENTRY_RATE_DLFBC_GET: 4821 rv = bcmx_rate_dlfbc_get( 4822 req->args.rate_dlfbc_get.limit, 4823 req->args.rate_dlfbc_get.flags, 4824 req->args.rate_dlfbc_get.port); 4825 break; 4826 case BCMX_ASYNC_ENTRY_RATE_DLFBC_SET: 4827 rv = bcmx_rate_dlfbc_set( 4828 req->args.rate_dlfbc_set.limit, 4829 req->args.rate_dlfbc_set.flags, 4830 req->args.rate_dlfbc_set.port); 4831 break; 4832 case BCMX_ASYNC_ENTRY_RATE_GET: 4833 rv = bcmx_rate_get( 4834 req->args.rate_get.val, 4835 req->args.rate_get.flags); 4836 break; 4837 case BCMX_ASYNC_ENTRY_RATE_MCAST_GET: 4838 rv = bcmx_rate_mcast_get( 4839 req->args.rate_mcast_get.limit, 4840 req->args.rate_mcast_get.flags, 4841 req->args.rate_mcast_get.port); 4842 break; 4843 case BCMX_ASYNC_ENTRY_RATE_MCAST_SET: 4844 rv = bcmx_rate_mcast_set( 4845 req->args.rate_mcast_set.limit, 4846 req->args.rate_mcast_set.flags, 4847 req->args.rate_mcast_set.port); 4848 break; 4849 case BCMX_ASYNC_ENTRY_RATE_SET: 4850 rv = bcmx_rate_set( 4851 req->args.rate_set.val, 4852 req->args.rate_set.flags); 4853 break; 4854 case BCMX_ASYNC_ENTRY_RATE_TYPE_GET: 4855 rv = bcmx_rate_type_get( 4856 req->args.rate_type_get.rl); 4857 break; 4858 case BCMX_ASYNC_ENTRY_RATE_TYPE_SET: 4859 rv = bcmx_rate_type_set( 4860 req->args.rate_type_set.rl); 4861 break; 4862 case BCMX_ASYNC_ENTRY_RX_CONTROL_GET: 4863 rv = bcmx_rx_control_get( 4864 req->args.rx_control_get.type, 4865 req->args.rx_control_get.arg); 4866 break; 4867 case BCMX_ASYNC_ENTRY_RX_CONTROL_SET: 4868 rv = bcmx_rx_control_set( 4869 req->args.rx_control_set.type, 4870 req->args.rx_control_set.arg); 4871 break; 4872 case BCMX_ASYNC_ENTRY_RX_DEVICE_ADD: 4873 rv = bcmx_rx_device_add( 4874 req->args.rx_device_add.unit); 4875 break; 4876 case BCMX_ASYNC_ENTRY_RX_DEVICE_REMOVE: 4877 rv = bcmx_rx_device_remove( 4878 req->args.rx_device_remove.unit); 4879 break; 4880 case BCMX_ASYNC_ENTRY_RX_REGISTER: 4881 rv = bcmx_rx_register( 4882 req->args.rx_register.name, 4883 req->args.rx_register.fn, 4884 req->args.rx_register.priority, 4885 req->args.rx_register.cookie, 4886 req->args.rx_register.flags); 4887 break; 4888 case BCMX_ASYNC_ENTRY_RX_RUNNING: 4889 rv = bcmx_rx_running( 4890 ); 4891 break; 4892 case BCMX_ASYNC_ENTRY_RX_START: 4893 rv = bcmx_rx_start( 4894 ); 4895 break; 4896 case BCMX_ASYNC_ENTRY_RX_STOP: 4897 rv = bcmx_rx_stop( 4898 ); 4899 break; 4900 case BCMX_ASYNC_ENTRY_RX_UNREGISTER: 4901 rv = bcmx_rx_unregister( 4902 req->args.rx_unregister.fn, 4903 req->args.rx_unregister.pri); 4904 break; 4905 case BCMX_ASYNC_ENTRY_STAT_CLEAR: 4906 rv = bcmx_stat_clear( 4907 req->args.stat_clear.port); 4908 break; 4909 case BCMX_ASYNC_ENTRY_STAT_CUSTOM_ADD: 4910 rv = bcmx_stat_custom_add( 4911 req->args.stat_custom_add.port, 4912 req->args.stat_custom_add.type, 4913 req->args.stat_custom_add.trigger); 4914 break; 4915 case BCMX_ASYNC_ENTRY_STAT_CUSTOM_CHECK: 4916 rv = bcmx_stat_custom_check( 4917 req->args.stat_custom_check.port, 4918 req->args.stat_custom_check.type, 4919 req->args.stat_custom_check.trigger, 4920 req->args.stat_custom_check.result); 4921 break; 4922 case BCMX_ASYNC_ENTRY_STAT_CUSTOM_DELETE: 4923 rv = bcmx_stat_custom_delete( 4924 req->args.stat_custom_delete.port, 4925 req->args.stat_custom_delete.type, 4926 req->args.stat_custom_delete.trigger); 4927 break; 4928 case BCMX_ASYNC_ENTRY_STAT_CUSTOM_DELETE_ALL: 4929 rv = bcmx_stat_custom_delete_all( 4930 req->args.stat_custom_delete_all.port, 4931 req->args.stat_custom_delete_all.type); 4932 break; 4933 case BCMX_ASYNC_ENTRY_STAT_CUSTOM_GET: 4934 rv = bcmx_stat_custom_get( 4935 req->args.stat_custom_get.port, 4936 req->args.stat_custom_get.type, 4937 req->args.stat_custom_get.flags); 4938 break; 4939 case BCMX_ASYNC_ENTRY_STAT_CUSTOM_SET: 4940 rv = bcmx_stat_custom_set( 4941 req->args.stat_custom_set.port, 4942 req->args.stat_custom_set.type, 4943 req->args.stat_custom_set.flags); 4944 break; 4945 case BCMX_ASYNC_ENTRY_STAT_GET: 4946 rv = bcmx_stat_get( 4947 req->args.stat_get.port, 4948 req->args.stat_get.type, 4949 req->args.stat_get.value); 4950 break; 4951 case BCMX_ASYNC_ENTRY_STAT_GET32: 4952 rv = bcmx_stat_get32( 4953 req->args.stat_get32.port, 4954 req->args.stat_get32.type, 4955 req->args.stat_get32.value); 4956 break; 4957 case BCMX_ASYNC_ENTRY_STAT_INIT: 4958 rv = bcmx_stat_init( 4959 ); 4960 break; 4961 case BCMX_ASYNC_ENTRY_STAT_MULTI_GET: 4962 rv = bcmx_stat_multi_get( 4963 req->args.stat_multi_get.port, 4964 req->args.stat_multi_get.nstat, 4965 req->args.stat_multi_get.stat_arr, 4966 req->args.stat_multi_get.value_arr); 4967 break; 4968 case BCMX_ASYNC_ENTRY_STAT_MULTI_GET32: 4969 rv = bcmx_stat_multi_get32( 4970 req->args.stat_multi_get32.port, 4971 req->args.stat_multi_get32.nstat, 4972 req->args.stat_multi_get32.stat_arr, 4973 req->args.stat_multi_get32.value_arr); 4974 break; 4975 case BCMX_ASYNC_ENTRY_STAT_SYNC: 4976 rv = bcmx_stat_sync( 4977 ); 4978 break; 4979 case BCMX_ASYNC_ENTRY_STG_COUNT_GET: 4980 rv = bcmx_stg_count_get( 4981 req->args.stg_count_get.max_stg); 4982 break; 4983 case BCMX_ASYNC_ENTRY_STG_CREATE: 4984 rv = bcmx_stg_create( 4985 req->args.stg_create.stg_ptr); 4986 break; 4987 case BCMX_ASYNC_ENTRY_STG_CREATE_ID: 4988 rv = bcmx_stg_create_id( 4989 req->args.stg_create_id.stg); 4990 break; 4991 case BCMX_ASYNC_ENTRY_STG_DEFAULT_GET: 4992 rv = bcmx_stg_default_get( 4993 req->args.stg_default_get.stg_ptr); 4994 break; 4995 case BCMX_ASYNC_ENTRY_STG_DEFAULT_SET: 4996 rv = bcmx_stg_default_set( 4997 req->args.stg_default_set.stg); 4998 break; 4999 case BCMX_ASYNC_ENTRY_STG_DESTROY: 5000 rv = bcmx_stg_destroy( 5001 req->args.stg_destroy.stg); 5002 break; 5003 case BCMX_ASYNC_ENTRY_STG_INIT: 5004 rv = bcmx_stg_init( 5005 ); 5006 break; 5007 case BCMX_ASYNC_ENTRY_STG_LIST: 5008 rv = bcmx_stg_list( 5009 req->args.stg_list.list, 5010 req->args.stg_list.count); 5011 break; 5012 case BCMX_ASYNC_ENTRY_STG_LIST_DESTROY: 5013 rv = bcmx_stg_list_destroy( 5014 req->args.stg_list_destroy.list, 5015 req->args.stg_list_destroy.count); 5016 break; 5017 case BCMX_ASYNC_ENTRY_STG_STP_GET: 5018 rv = bcmx_stg_stp_get( 5019 req->args.stg_stp_get.stg, 5020 req->args.stg_stp_get.port, 5021 req->args.stg_stp_get.stp_state); 5022 break; 5023 case BCMX_ASYNC_ENTRY_STG_STP_SET: 5024 rv = bcmx_stg_stp_set( 5025 req->args.stg_stp_set.stg, 5026 req->args.stg_stp_set.port, 5027 req->args.stg_stp_set.stp_state); 5028 break; 5029 case BCMX_ASYNC_ENTRY_STG_VLAN_ADD: 5030 rv = bcmx_stg_vlan_add( 5031 req->args.stg_vlan_add.stg, 5032 req->args.stg_vlan_add.vid); 5033 break; 5034 case BCMX_ASYNC_ENTRY_STG_VLAN_LIST: 5035 rv = bcmx_stg_vlan_list( 5036 req->args.stg_vlan_list.stg, 5037 req->args.stg_vlan_list.list, 5038 req->args.stg_vlan_list.count); 5039 break; 5040 case BCMX_ASYNC_ENTRY_STG_VLAN_LIST_DESTROY: 5041 rv = bcmx_stg_vlan_list_destroy( 5042 req->args.stg_vlan_list_destroy.list, 5043 req->args.stg_vlan_list_destroy.count); 5044 break; 5045 case BCMX_ASYNC_ENTRY_STG_VLAN_REMOVE: 5046 rv = bcmx_stg_vlan_remove( 5047 req->args.stg_vlan_remove.stg, 5048 req->args.stg_vlan_remove.vid); 5049 break; 5050 case BCMX_ASYNC_ENTRY_STG_VLAN_REMOVE_ALL: 5051 rv = bcmx_stg_vlan_remove_all( 5052 req->args.stg_vlan_remove_all.stg); 5053 break; 5054 case BCMX_ASYNC_ENTRY_SUBPORT_CLEANUP: 5055 rv = bcmx_subport_cleanup( 5056 ); 5057 break; 5058 case BCMX_ASYNC_ENTRY_SUBPORT_GROUP_CREATE: 5059 rv = bcmx_subport_group_create( 5060 req->args.subport_group_create.config, 5061 req->args.subport_group_create.group); 5062 break; 5063 case BCMX_ASYNC_ENTRY_SUBPORT_GROUP_DESTROY: 5064 rv = bcmx_subport_group_destroy( 5065 req->args.subport_group_destroy.group); 5066 break; 5067 case BCMX_ASYNC_ENTRY_SUBPORT_GROUP_GET: 5068 rv = bcmx_subport_group_get( 5069 req->args.subport_group_get.group, 5070 req->args.subport_group_get.config); 5071 break; 5072 case BCMX_ASYNC_ENTRY_SUBPORT_INIT: 5073 rv = bcmx_subport_init( 5074 ); 5075 break; 5076 case BCMX_ASYNC_ENTRY_SUBPORT_PORT_ADD: 5077 rv = bcmx_subport_port_add( 5078 req->args.subport_port_add.config, 5079 req->args.subport_port_add.port); 5080 break; 5081 case BCMX_ASYNC_ENTRY_SUBPORT_PORT_DELETE: 5082 rv = bcmx_subport_port_delete( 5083 req->args.subport_port_delete.port); 5084 break; 5085 case BCMX_ASYNC_ENTRY_SUBPORT_PORT_GET: 5086 rv = bcmx_subport_port_get( 5087 req->args.subport_port_get.port, 5088 req->args.subport_port_get.config); 5089 break; 5090 case BCMX_ASYNC_ENTRY_SWITCH_CONTROL_GET: 5091 rv = bcmx_switch_control_get( 5092 req->args.switch_control_get.type, 5093 req->args.switch_control_get.arg); 5094 break; 5095 case BCMX_ASYNC_ENTRY_SWITCH_CONTROL_PORT_GET: 5096 rv = bcmx_switch_control_port_get( 5097 req->args.switch_control_port_get.port, 5098 req->args.switch_control_port_get.type, 5099 req->args.switch_control_port_get.arg); 5100 break; 5101 case BCMX_ASYNC_ENTRY_SWITCH_CONTROL_PORT_SET: 5102 rv = bcmx_switch_control_port_set( 5103 req->args.switch_control_port_set.port, 5104 req->args.switch_control_port_set.type, 5105 req->args.switch_control_port_set.arg); 5106 break; 5107 case BCMX_ASYNC_ENTRY_SWITCH_CONTROL_SET: 5108 rv = bcmx_switch_control_set( 5109 req->args.switch_control_set.type, 5110 req->args.switch_control_set.arg); 5111 break; 5112 case BCMX_ASYNC_ENTRY_SWITCH_RCPU_ENCAP_PRIORITY_MAP_GET: 5113 rv = bcmx_switch_rcpu_encap_priority_map_get( 5114 req->args.switch_rcpu_encap_priority_map_get.flags, 5115 req->args.switch_rcpu_encap_priority_map_get.internal_cpu_pri, 5116 req->args.switch_rcpu_encap_priority_map_get.encap_pri); 5117 break; 5118 case BCMX_ASYNC_ENTRY_SWITCH_RCPU_ENCAP_PRIORITY_MAP_SET: 5119 rv = bcmx_switch_rcpu_encap_priority_map_set( 5120 req->args.switch_rcpu_encap_priority_map_set.flags, 5121 req->args.switch_rcpu_encap_priority_map_set.internal_cpu_pri, 5122 req->args.switch_rcpu_encap_priority_map_set.encap_pri); 5123 break; 5124 #ifdef INCLUDE_L3 5125 case BCMX_ASYNC_ENTRY_TRILL_CLEANUP: 5126 rv = bcmx_trill_cleanup( 5127 ); 5128 break; 5129 case BCMX_ASYNC_ENTRY_TRILL_INIT: 5130 rv = bcmx_trill_init( 5131 ); 5132 break; 5133 case BCMX_ASYNC_ENTRY_TRILL_MULTICAST_DELETE_ALL: 5134 rv = bcmx_trill_multicast_delete_all( 5135 req->args.trill_multicast_delete_all.root_name); 5136 break; 5137 case BCMX_ASYNC_ENTRY_TRILL_MULTICAST_ENTRY_ADD: 5138 rv = bcmx_trill_multicast_entry_add( 5139 req->args.trill_multicast_entry_add.trill_mc_entry); 5140 break; 5141 case BCMX_ASYNC_ENTRY_TRILL_MULTICAST_ENTRY_DELETE: 5142 rv = bcmx_trill_multicast_entry_delete( 5143 req->args.trill_multicast_entry_delete.trill_mc_entry); 5144 break; 5145 case BCMX_ASYNC_ENTRY_TRILL_MULTICAST_ENTRY_GET: 5146 rv = bcmx_trill_multicast_entry_get( 5147 req->args.trill_multicast_entry_get.trill_mc_entry); 5148 break; 5149 case BCMX_ASYNC_ENTRY_TRILL_MULTICAST_SOURCE_ADD: 5150 rv = bcmx_trill_multicast_source_add( 5151 req->args.trill_multicast_source_add.root_name, 5152 req->args.trill_multicast_source_add.source_rbridge_name, 5153 req->args.trill_multicast_source_add.port, 5154 req->args.trill_multicast_source_add.encap_intf); 5155 break; 5156 case BCMX_ASYNC_ENTRY_TRILL_MULTICAST_SOURCE_DELETE: 5157 rv = bcmx_trill_multicast_source_delete( 5158 req->args.trill_multicast_source_delete.root_name, 5159 req->args.trill_multicast_source_delete.source_rbridge_name, 5160 req->args.trill_multicast_source_delete.port, 5161 req->args.trill_multicast_source_delete.encap_intf); 5162 break; 5163 case BCMX_ASYNC_ENTRY_TRILL_MULTICAST_SOURCE_GET: 5164 rv = bcmx_trill_multicast_source_get( 5165 req->args.trill_multicast_source_get.root_name, 5166 req->args.trill_multicast_source_get.source_rbridge_name, 5167 req->args.trill_multicast_source_get.port); 5168 break; 5169 case BCMX_ASYNC_ENTRY_TRILL_PORT_ADD: 5170 rv = bcmx_trill_port_add( 5171 req->args.trill_port_add.trill_port); 5172 break; 5173 case BCMX_ASYNC_ENTRY_TRILL_PORT_DELETE: 5174 rv = bcmx_trill_port_delete( 5175 req->args.trill_port_delete.trill_port_id); 5176 break; 5177 case BCMX_ASYNC_ENTRY_TRILL_PORT_DELETE_ALL: 5178 rv = bcmx_trill_port_delete_all( 5179 ); 5180 break; 5181 case BCMX_ASYNC_ENTRY_TRILL_PORT_GET: 5182 rv = bcmx_trill_port_get( 5183 req->args.trill_port_get.trill_port); 5184 break; 5185 case BCMX_ASYNC_ENTRY_TRILL_PORT_GET_ALL: 5186 rv = bcmx_trill_port_get_all( 5187 req->args.trill_port_get_all.port_max, 5188 req->args.trill_port_get_all.port_array, 5189 req->args.trill_port_get_all.port_count); 5190 break; 5191 case BCMX_ASYNC_ENTRY_TRILL_STAT_CLEAR: 5192 rv = bcmx_trill_stat_clear( 5193 req->args.trill_stat_clear.port, 5194 req->args.trill_stat_clear.stat); 5195 break; 5196 case BCMX_ASYNC_ENTRY_TRILL_STAT_GET: 5197 rv = bcmx_trill_stat_get( 5198 req->args.trill_stat_get.port, 5199 req->args.trill_stat_get.stat, 5200 req->args.trill_stat_get.val); 5201 break; 5202 case BCMX_ASYNC_ENTRY_TRILL_STAT_GET32: 5203 rv = bcmx_trill_stat_get32( 5204 req->args.trill_stat_get32.port, 5205 req->args.trill_stat_get32.stat, 5206 req->args.trill_stat_get32.val); 5207 break; 5208 #endif /* INCLUDE_L3 */ 5209 case BCMX_ASYNC_ENTRY_TRUNK_CHIP_INFO_GET: 5210 rv = bcmx_trunk_chip_info_get( 5211 req->args.trunk_chip_info_get.ta_info); 5212 break; 5213 case BCMX_ASYNC_ENTRY_TRUNK_CREATE: 5214 rv = bcmx_trunk_create( 5215 req->args.trunk_create.tid); 5216 break; 5217 case BCMX_ASYNC_ENTRY_TRUNK_CREATE_ID: 5218 rv = bcmx_trunk_create_id( 5219 req->args.trunk_create_id.tid); 5220 break; 5221 case BCMX_ASYNC_ENTRY_TRUNK_DESTROY: 5222 rv = bcmx_trunk_destroy( 5223 req->args.trunk_destroy.tid); 5224 break; 5225 case BCMX_ASYNC_ENTRY_TRUNK_DETACH: 5226 rv = bcmx_trunk_detach( 5227 ); 5228 break; 5229 case BCMX_ASYNC_ENTRY_TRUNK_EGRESS_GET: 5230 rv = bcmx_trunk_egress_get( 5231 req->args.trunk_egress_get.tid, 5232 req->args.trunk_egress_get.lplist); 5233 break; 5234 case BCMX_ASYNC_ENTRY_TRUNK_EGRESS_SET: 5235 rv = bcmx_trunk_egress_set( 5236 req->args.trunk_egress_set.tid, 5237 req->args.trunk_egress_set.lplist); 5238 break; 5239 case BCMX_ASYNC_ENTRY_TRUNK_FAILOVER_GET: 5240 rv = bcmx_trunk_failover_get( 5241 req->args.trunk_failover_get.tid, 5242 req->args.trunk_failover_get.failport, 5243 req->args.trunk_failover_get.psc, 5244 req->args.trunk_failover_get.flags, 5245 req->args.trunk_failover_get.array_size, 5246 req->args.trunk_failover_get.fail_to_array, 5247 req->args.trunk_failover_get.array_count); 5248 break; 5249 case BCMX_ASYNC_ENTRY_TRUNK_FAILOVER_SET: 5250 rv = bcmx_trunk_failover_set( 5251 req->args.trunk_failover_set.tid, 5252 req->args.trunk_failover_set.failport, 5253 req->args.trunk_failover_set.psc, 5254 req->args.trunk_failover_set.flags, 5255 req->args.trunk_failover_set.count, 5256 req->args.trunk_failover_set.fail_to_array); 5257 break; 5258 case BCMX_ASYNC_ENTRY_TRUNK_FIND: 5259 rv = bcmx_trunk_find( 5260 req->args.trunk_find.port, 5261 req->args.trunk_find.tid); 5262 break; 5263 case BCMX_ASYNC_ENTRY_TRUNK_GET: 5264 rv = bcmx_trunk_get( 5265 req->args.trunk_get.tid, 5266 req->args.trunk_get.t_data); 5267 break; 5268 case BCMX_ASYNC_ENTRY_TRUNK_INIT: 5269 rv = bcmx_trunk_init( 5270 ); 5271 break; 5272 case BCMX_ASYNC_ENTRY_TRUNK_MCAST_JOIN: 5273 rv = bcmx_trunk_mcast_join( 5274 req->args.trunk_mcast_join.tid, 5275 req->args.trunk_mcast_join.vid, 5276 req->args.trunk_mcast_join.mac); 5277 break; 5278 case BCMX_ASYNC_ENTRY_TRUNK_MEMBER_ADD: 5279 rv = bcmx_trunk_member_add( 5280 req->args.trunk_member_add.tid, 5281 req->args.trunk_member_add.member); 5282 break; 5283 case BCMX_ASYNC_ENTRY_TRUNK_MEMBER_DELETE: 5284 rv = bcmx_trunk_member_delete( 5285 req->args.trunk_member_delete.tid, 5286 req->args.trunk_member_delete.member); 5287 break; 5288 case BCMX_ASYNC_ENTRY_TRUNK_MEMBER_DELETE_ALL: 5289 rv = bcmx_trunk_member_delete_all( 5290 req->args.trunk_member_delete_all.tid); 5291 break; 5292 case BCMX_ASYNC_ENTRY_TRUNK_MEMBER_GET: 5293 rv = bcmx_trunk_member_get( 5294 req->args.trunk_member_get.tid, 5295 req->args.trunk_member_get.member_max, 5296 req->args.trunk_member_get.member_array, 5297 req->args.trunk_member_get.member_count); 5298 break; 5299 case BCMX_ASYNC_ENTRY_TRUNK_MEMBER_SET: 5300 rv = bcmx_trunk_member_set( 5301 req->args.trunk_member_set.tid, 5302 req->args.trunk_member_set.member_count, 5303 req->args.trunk_member_set.member_array); 5304 break; 5305 case BCMX_ASYNC_ENTRY_TRUNK_PSC_GET: 5306 rv = bcmx_trunk_psc_get( 5307 req->args.trunk_psc_get.tid, 5308 req->args.trunk_psc_get.psc); 5309 break; 5310 case BCMX_ASYNC_ENTRY_TRUNK_PSC_SET: 5311 rv = bcmx_trunk_psc_set( 5312 req->args.trunk_psc_set.tid, 5313 req->args.trunk_psc_set.psc); 5314 break; 5315 case BCMX_ASYNC_ENTRY_TRUNK_SET: 5316 rv = bcmx_trunk_set( 5317 req->args.trunk_set.tid, 5318 req->args.trunk_set.add_info); 5319 break; 5320 #ifdef INCLUDE_L3 5321 case BCMX_ASYNC_ENTRY_TUNNEL_CONFIG_GET: 5322 rv = bcmx_tunnel_config_get( 5323 req->args.tunnel_config_get.tconfig); 5324 break; 5325 case BCMX_ASYNC_ENTRY_TUNNEL_CONFIG_SET: 5326 rv = bcmx_tunnel_config_set( 5327 req->args.tunnel_config_set.tconfig); 5328 break; 5329 case BCMX_ASYNC_ENTRY_TUNNEL_DSCP_MAP_CREATE: 5330 rv = bcmx_tunnel_dscp_map_create( 5331 req->args.tunnel_dscp_map_create.flags, 5332 req->args.tunnel_dscp_map_create.dscp_map_id); 5333 break; 5334 case BCMX_ASYNC_ENTRY_TUNNEL_DSCP_MAP_DESTROY: 5335 rv = bcmx_tunnel_dscp_map_destroy( 5336 req->args.tunnel_dscp_map_destroy.dscp_map_id); 5337 break; 5338 case BCMX_ASYNC_ENTRY_TUNNEL_DSCP_MAP_GET: 5339 rv = bcmx_tunnel_dscp_map_get( 5340 req->args.tunnel_dscp_map_get.dscp_map_id, 5341 req->args.tunnel_dscp_map_get.dscp_map); 5342 break; 5343 case BCMX_ASYNC_ENTRY_TUNNEL_DSCP_MAP_PORT_GET: 5344 rv = bcmx_tunnel_dscp_map_port_get( 5345 req->args.tunnel_dscp_map_port_get.port, 5346 req->args.tunnel_dscp_map_port_get.dscp_map); 5347 break; 5348 case BCMX_ASYNC_ENTRY_TUNNEL_DSCP_MAP_PORT_SET: 5349 rv = bcmx_tunnel_dscp_map_port_set( 5350 req->args.tunnel_dscp_map_port_set.port, 5351 req->args.tunnel_dscp_map_port_set.dscp_map); 5352 break; 5353 case BCMX_ASYNC_ENTRY_TUNNEL_DSCP_MAP_SET: 5354 rv = bcmx_tunnel_dscp_map_set( 5355 req->args.tunnel_dscp_map_set.dscp_map_id, 5356 req->args.tunnel_dscp_map_set.dscp_map); 5357 break; 5358 case BCMX_ASYNC_ENTRY_TUNNEL_INITIATOR_CLEAR: 5359 rv = bcmx_tunnel_initiator_clear( 5360 req->args.tunnel_initiator_clear.intf); 5361 break; 5362 case BCMX_ASYNC_ENTRY_TUNNEL_INITIATOR_GET: 5363 rv = bcmx_tunnel_initiator_get( 5364 req->args.tunnel_initiator_get.intf, 5365 req->args.tunnel_initiator_get.tunnel); 5366 break; 5367 case BCMX_ASYNC_ENTRY_TUNNEL_INITIATOR_SET: 5368 rv = bcmx_tunnel_initiator_set( 5369 req->args.tunnel_initiator_set.intf, 5370 req->args.tunnel_initiator_set.tunnel); 5371 break; 5372 case BCMX_ASYNC_ENTRY_TUNNEL_TERMINATOR_ADD: 5373 rv = bcmx_tunnel_terminator_add( 5374 req->args.tunnel_terminator_add.info); 5375 break; 5376 case BCMX_ASYNC_ENTRY_TUNNEL_TERMINATOR_DELETE: 5377 rv = bcmx_tunnel_terminator_delete( 5378 req->args.tunnel_terminator_delete.info); 5379 break; 5380 case BCMX_ASYNC_ENTRY_TUNNEL_TERMINATOR_GET: 5381 rv = bcmx_tunnel_terminator_get( 5382 req->args.tunnel_terminator_get.info); 5383 break; 5384 case BCMX_ASYNC_ENTRY_TUNNEL_TERMINATOR_UPDATE: 5385 rv = bcmx_tunnel_terminator_update( 5386 req->args.tunnel_terminator_update.info); 5387 break; 5388 case BCMX_ASYNC_ENTRY_TUNNEL_TERMINATOR_VLAN_GET: 5389 rv = bcmx_tunnel_terminator_vlan_get( 5390 req->args.tunnel_terminator_vlan_get.tunnel, 5391 req->args.tunnel_terminator_vlan_get.vlan_vec); 5392 break; 5393 case BCMX_ASYNC_ENTRY_TUNNEL_TERMINATOR_VLAN_SET: 5394 rv = bcmx_tunnel_terminator_vlan_set( 5395 req->args.tunnel_terminator_vlan_set.tunnel, 5396 req->args.tunnel_terminator_vlan_set.vlan_vec); 5397 break; 5398 #endif /* INCLUDE_L3 */ 5399 case BCMX_ASYNC_ENTRY_TX: 5400 rv = bcmx_tx( 5401 req->args.tx.pkt, 5402 req->args.tx.flags); 5403 break; 5404 case BCMX_ASYNC_ENTRY_TX_FLOOD: 5405 rv = bcmx_tx_flood( 5406 req->args.tx_flood.pkt, 5407 req->args.tx_flood.flags); 5408 break; 5409 case BCMX_ASYNC_ENTRY_TX_LPLIST: 5410 rv = bcmx_tx_lplist( 5411 req->args.tx_lplist.pkt, 5412 req->args.tx_lplist.tx_ports, 5413 req->args.tx_lplist.untagged_ports, 5414 req->args.tx_lplist.flags); 5415 break; 5416 case BCMX_ASYNC_ENTRY_TX_PKT_L3_SET: 5417 rv = bcmx_tx_pkt_l3_set( 5418 req->args.tx_pkt_l3_set.pkt, 5419 req->args.tx_pkt_l3_set.l3); 5420 break; 5421 case BCMX_ASYNC_ENTRY_TX_PKT_UNTAGGED_SET: 5422 rv = bcmx_tx_pkt_untagged_set( 5423 req->args.tx_pkt_untagged_set.pkt, 5424 req->args.tx_pkt_untagged_set.untagged); 5425 break; 5426 case BCMX_ASYNC_ENTRY_TX_PORT_LIST: 5427 rv = bcmx_tx_port_list( 5428 req->args.tx_port_list.lplist, 5429 req->args.tx_port_list.pkt); 5430 break; 5431 case BCMX_ASYNC_ENTRY_TX_UC: 5432 rv = bcmx_tx_uc( 5433 req->args.tx_uc.pkt, 5434 req->args.tx_uc.d_port, 5435 req->args.tx_uc.flags); 5436 break; 5437 case BCMX_ASYNC_ENTRY_UPORT_CREATE_CALLBACK_SET: 5438 rv = bcmx_uport_create_callback_set( 5439 req->args.uport_create_callback_set.create_callback); 5440 break; 5441 case BCMX_ASYNC_ENTRY_VLAN_BLOCK_GET: 5442 rv = bcmx_vlan_block_get( 5443 req->args.vlan_block_get.vlan, 5444 req->args.vlan_block_get.vlan_block); 5445 break; 5446 case BCMX_ASYNC_ENTRY_VLAN_BLOCK_SET: 5447 rv = bcmx_vlan_block_set( 5448 req->args.vlan_block_set.vlan, 5449 req->args.vlan_block_set.vlan_block); 5450 break; 5451 case BCMX_ASYNC_ENTRY_VLAN_CONTROL_GET: 5452 rv = bcmx_vlan_control_get( 5453 req->args.vlan_control_get.type, 5454 req->args.vlan_control_get.arg); 5455 break; 5456 case BCMX_ASYNC_ENTRY_VLAN_CONTROL_PORT_GET: 5457 rv = bcmx_vlan_control_port_get( 5458 req->args.vlan_control_port_get.port, 5459 req->args.vlan_control_port_get.type, 5460 req->args.vlan_control_port_get.arg); 5461 break; 5462 case BCMX_ASYNC_ENTRY_VLAN_CONTROL_PORT_SET: 5463 rv = bcmx_vlan_control_port_set( 5464 req->args.vlan_control_port_set.port, 5465 req->args.vlan_control_port_set.type, 5466 req->args.vlan_control_port_set.arg); 5467 break; 5468 case BCMX_ASYNC_ENTRY_VLAN_CONTROL_SET: 5469 rv = bcmx_vlan_control_set( 5470 req->args.vlan_control_set.type, 5471 req->args.vlan_control_set.arg); 5472 break; 5473 case BCMX_ASYNC_ENTRY_VLAN_CONTROL_VLAN_GET: 5474 rv = bcmx_vlan_control_vlan_get( 5475 req->args.vlan_control_vlan_get.vlan, 5476 req->args.vlan_control_vlan_get.control); 5477 break; 5478 case BCMX_ASYNC_ENTRY_VLAN_CONTROL_VLAN_SET: 5479 rv = bcmx_vlan_control_vlan_set( 5480 req->args.vlan_control_vlan_set.vlan, 5481 req->args.vlan_control_vlan_set.control); 5482 break; 5483 case BCMX_ASYNC_ENTRY_VLAN_CREATE: 5484 rv = bcmx_vlan_create( 5485 req->args.vlan_create.vid); 5486 break; 5487 case BCMX_ASYNC_ENTRY_VLAN_CROSS_CONNECT_ADD: 5488 rv = bcmx_vlan_cross_connect_add( 5489 req->args.vlan_cross_connect_add.outer_vlan, 5490 req->args.vlan_cross_connect_add.inner_vlan, 5491 req->args.vlan_cross_connect_add.port_1, 5492 req->args.vlan_cross_connect_add.port_2); 5493 break; 5494 case BCMX_ASYNC_ENTRY_VLAN_CROSS_CONNECT_DELETE: 5495 rv = bcmx_vlan_cross_connect_delete( 5496 req->args.vlan_cross_connect_delete.outer_vlan, 5497 req->args.vlan_cross_connect_delete.inner_vlan); 5498 break; 5499 case BCMX_ASYNC_ENTRY_VLAN_CROSS_CONNECT_DELETE_ALL: 5500 rv = bcmx_vlan_cross_connect_delete_all( 5501 ); 5502 break; 5503 case BCMX_ASYNC_ENTRY_VLAN_DEFAULT_GET: 5504 rv = bcmx_vlan_default_get( 5505 req->args.vlan_default_get.vid_ptr); 5506 break; 5507 case BCMX_ASYNC_ENTRY_VLAN_DEFAULT_SET: 5508 rv = bcmx_vlan_default_set( 5509 req->args.vlan_default_set.vid); 5510 break; 5511 case BCMX_ASYNC_ENTRY_VLAN_DESTROY: 5512 rv = bcmx_vlan_destroy( 5513 req->args.vlan_destroy.vid); 5514 break; 5515 case BCMX_ASYNC_ENTRY_VLAN_DESTROY_ALL: 5516 rv = bcmx_vlan_destroy_all( 5517 ); 5518 break; 5519 case BCMX_ASYNC_ENTRY_VLAN_DTAG_ADD: 5520 rv = bcmx_vlan_dtag_add( 5521 req->args.vlan_dtag_add.port, 5522 req->args.vlan_dtag_add.old_vid, 5523 req->args.vlan_dtag_add.new_vid, 5524 req->args.vlan_dtag_add.prio); 5525 break; 5526 case BCMX_ASYNC_ENTRY_VLAN_DTAG_DELETE: 5527 rv = bcmx_vlan_dtag_delete( 5528 req->args.vlan_dtag_delete.port, 5529 req->args.vlan_dtag_delete.old_vid); 5530 break; 5531 case BCMX_ASYNC_ENTRY_VLAN_DTAG_DELETE_ALL: 5532 rv = bcmx_vlan_dtag_delete_all( 5533 ); 5534 break; 5535 case BCMX_ASYNC_ENTRY_VLAN_DTAG_GET: 5536 rv = bcmx_vlan_dtag_get( 5537 req->args.vlan_dtag_get.port, 5538 req->args.vlan_dtag_get.old_vid, 5539 req->args.vlan_dtag_get.new_vid, 5540 req->args.vlan_dtag_get.prio); 5541 break; 5542 case BCMX_ASYNC_ENTRY_VLAN_DTAG_RANGE_ADD: 5543 rv = bcmx_vlan_dtag_range_add( 5544 req->args.vlan_dtag_range_add.port, 5545 req->args.vlan_dtag_range_add.old_vid_low, 5546 req->args.vlan_dtag_range_add.old_vid_high, 5547 req->args.vlan_dtag_range_add.new_vid, 5548 req->args.vlan_dtag_range_add.int_prio); 5549 break; 5550 case BCMX_ASYNC_ENTRY_VLAN_DTAG_RANGE_DELETE: 5551 rv = bcmx_vlan_dtag_range_delete( 5552 req->args.vlan_dtag_range_delete.port, 5553 req->args.vlan_dtag_range_delete.old_vid_low, 5554 req->args.vlan_dtag_range_delete.old_vid_high); 5555 break; 5556 case BCMX_ASYNC_ENTRY_VLAN_DTAG_RANGE_DELETE_ALL: 5557 rv = bcmx_vlan_dtag_range_delete_all( 5558 ); 5559 break; 5560 case BCMX_ASYNC_ENTRY_VLAN_DTAG_RANGE_GET: 5561 rv = bcmx_vlan_dtag_range_get( 5562 req->args.vlan_dtag_range_get.port, 5563 req->args.vlan_dtag_range_get.old_vid_low, 5564 req->args.vlan_dtag_range_get.old_vid_high, 5565 req->args.vlan_dtag_range_get.new_vid, 5566 req->args.vlan_dtag_range_get.prio); 5567 break; 5568 case BCMX_ASYNC_ENTRY_VLAN_GPORT_ADD: 5569 rv = bcmx_vlan_gport_add( 5570 req->args.vlan_gport_add.vlan, 5571 req->args.vlan_gport_add.port, 5572 req->args.vlan_gport_add.flags); 5573 break; 5574 case BCMX_ASYNC_ENTRY_VLAN_GPORT_DELETE: 5575 rv = bcmx_vlan_gport_delete( 5576 req->args.vlan_gport_delete.vlan, 5577 req->args.vlan_gport_delete.port); 5578 break; 5579 case BCMX_ASYNC_ENTRY_VLAN_GPORT_DELETE_ALL: 5580 rv = bcmx_vlan_gport_delete_all( 5581 req->args.vlan_gport_delete_all.vlan); 5582 break; 5583 case BCMX_ASYNC_ENTRY_VLAN_GPORT_GET: 5584 rv = bcmx_vlan_gport_get( 5585 req->args.vlan_gport_get.vlan, 5586 req->args.vlan_gport_get.port, 5587 req->args.vlan_gport_get.flags); 5588 break; 5589 case BCMX_ASYNC_ENTRY_VLAN_GPORT_GET_ALL: 5590 rv = bcmx_vlan_gport_get_all( 5591 req->args.vlan_gport_get_all.vlan, 5592 req->args.vlan_gport_get_all.array_max, 5593 req->args.vlan_gport_get_all.gport_array, 5594 req->args.vlan_gport_get_all.flags_array, 5595 req->args.vlan_gport_get_all.array_size); 5596 break; 5597 case BCMX_ASYNC_ENTRY_VLAN_IP_ACTION_ADD: 5598 rv = bcmx_vlan_ip_action_add( 5599 req->args.vlan_ip_action_add.vlan_ip, 5600 req->args.vlan_ip_action_add.action); 5601 break; 5602 case BCMX_ASYNC_ENTRY_VLAN_IP_ACTION_DELETE: 5603 rv = bcmx_vlan_ip_action_delete( 5604 req->args.vlan_ip_action_delete.vlan_ip); 5605 break; 5606 case BCMX_ASYNC_ENTRY_VLAN_IP_ACTION_DELETE_ALL: 5607 rv = bcmx_vlan_ip_action_delete_all( 5608 ); 5609 break; 5610 case BCMX_ASYNC_ENTRY_VLAN_IP_ACTION_GET: 5611 rv = bcmx_vlan_ip_action_get( 5612 req->args.vlan_ip_action_get.vlan_ip, 5613 req->args.vlan_ip_action_get.action); 5614 break; 5615 case BCMX_ASYNC_ENTRY_VLAN_IP_ADD: 5616 rv = bcmx_vlan_ip_add( 5617 req->args.vlan_ip_add.vlan_ip); 5618 break; 5619 case BCMX_ASYNC_ENTRY_VLAN_IP_DELETE: 5620 rv = bcmx_vlan_ip_delete( 5621 req->args.vlan_ip_delete.vlan_ip); 5622 break; 5623 case BCMX_ASYNC_ENTRY_VLAN_IP_DELETE_ALL: 5624 rv = bcmx_vlan_ip_delete_all( 5625 ); 5626 break; 5627 case BCMX_ASYNC_ENTRY_VLAN_MAC_ACTION_ADD: 5628 rv = bcmx_vlan_mac_action_add( 5629 req->args.vlan_mac_action_add.mac, 5630 req->args.vlan_mac_action_add.action); 5631 break; 5632 case BCMX_ASYNC_ENTRY_VLAN_MAC_ACTION_DELETE: 5633 rv = bcmx_vlan_mac_action_delete( 5634 req->args.vlan_mac_action_delete.mac); 5635 break; 5636 case BCMX_ASYNC_ENTRY_VLAN_MAC_ACTION_DELETE_ALL: 5637 rv = bcmx_vlan_mac_action_delete_all( 5638 ); 5639 break; 5640 case BCMX_ASYNC_ENTRY_VLAN_MAC_ACTION_GET: 5641 rv = bcmx_vlan_mac_action_get( 5642 req->args.vlan_mac_action_get.mac, 5643 req->args.vlan_mac_action_get.action); 5644 break; 5645 case BCMX_ASYNC_ENTRY_VLAN_MAC_ADD: 5646 rv = bcmx_vlan_mac_add( 5647 req->args.vlan_mac_add.mac, 5648 req->args.vlan_mac_add.vid, 5649 req->args.vlan_mac_add.prio); 5650 break; 5651 case BCMX_ASYNC_ENTRY_VLAN_MAC_DELETE: 5652 rv = bcmx_vlan_mac_delete( 5653 req->args.vlan_mac_delete.mac); 5654 break; 5655 case BCMX_ASYNC_ENTRY_VLAN_MAC_DELETE_ALL: 5656 rv = bcmx_vlan_mac_delete_all( 5657 ); 5658 break; 5659 case BCMX_ASYNC_ENTRY_VLAN_MCAST_FLOOD_GET: 5660 rv = bcmx_vlan_mcast_flood_get( 5661 req->args.vlan_mcast_flood_get.vlan, 5662 req->args.vlan_mcast_flood_get.mode); 5663 break; 5664 case BCMX_ASYNC_ENTRY_VLAN_MCAST_FLOOD_SET: 5665 rv = bcmx_vlan_mcast_flood_set( 5666 req->args.vlan_mcast_flood_set.vlan, 5667 req->args.vlan_mcast_flood_set.mode); 5668 break; 5669 case BCMX_ASYNC_ENTRY_VLAN_PORT_ADD: 5670 rv = bcmx_vlan_port_add( 5671 req->args.vlan_port_add.vid, 5672 req->args.vlan_port_add.lplist, 5673 req->args.vlan_port_add.ubmp); 5674 break; 5675 case BCMX_ASYNC_ENTRY_VLAN_PORT_CREATE: 5676 rv = bcmx_vlan_port_create( 5677 req->args.vlan_port_create.vlan_port); 5678 break; 5679 case BCMX_ASYNC_ENTRY_VLAN_PORT_DEFAULT_ACTION_DELETE: 5680 rv = bcmx_vlan_port_default_action_delete( 5681 req->args.vlan_port_default_action_delete.port); 5682 break; 5683 case BCMX_ASYNC_ENTRY_VLAN_PORT_DEFAULT_ACTION_GET: 5684 rv = bcmx_vlan_port_default_action_get( 5685 req->args.vlan_port_default_action_get.port, 5686 req->args.vlan_port_default_action_get.action); 5687 break; 5688 case BCMX_ASYNC_ENTRY_VLAN_PORT_DEFAULT_ACTION_SET: 5689 rv = bcmx_vlan_port_default_action_set( 5690 req->args.vlan_port_default_action_set.port, 5691 req->args.vlan_port_default_action_set.action); 5692 break; 5693 case BCMX_ASYNC_ENTRY_VLAN_PORT_DESTROY: 5694 rv = bcmx_vlan_port_destroy( 5695 req->args.vlan_port_destroy.gport); 5696 break; 5697 case BCMX_ASYNC_ENTRY_VLAN_PORT_EGRESS_DEFAULT_ACTION_DELETE: 5698 rv = bcmx_vlan_port_egress_default_action_delete( 5699 req->args.vlan_port_egress_default_action_delete.port); 5700 break; 5701 case BCMX_ASYNC_ENTRY_VLAN_PORT_EGRESS_DEFAULT_ACTION_GET: 5702 rv = bcmx_vlan_port_egress_default_action_get( 5703 req->args.vlan_port_egress_default_action_get.port, 5704 req->args.vlan_port_egress_default_action_get.action); 5705 break; 5706 case BCMX_ASYNC_ENTRY_VLAN_PORT_EGRESS_DEFAULT_ACTION_SET: 5707 rv = bcmx_vlan_port_egress_default_action_set( 5708 req->args.vlan_port_egress_default_action_set.port, 5709 req->args.vlan_port_egress_default_action_set.action); 5710 break; 5711 case BCMX_ASYNC_ENTRY_VLAN_PORT_FIND: 5712 rv = bcmx_vlan_port_find( 5713 req->args.vlan_port_find.vlan_port); 5714 break; 5715 case BCMX_ASYNC_ENTRY_VLAN_PORT_GET: 5716 rv = bcmx_vlan_port_get( 5717 req->args.vlan_port_get.vid, 5718 req->args.vlan_port_get.lplist, 5719 req->args.vlan_port_get.ubmp); 5720 break; 5721 case BCMX_ASYNC_ENTRY_VLAN_PORT_PROTOCOL_ACTION_ADD: 5722 rv = bcmx_vlan_port_protocol_action_add( 5723 req->args.vlan_port_protocol_action_add.port, 5724 req->args.vlan_port_protocol_action_add.frame, 5725 req->args.vlan_port_protocol_action_add.ether, 5726 req->args.vlan_port_protocol_action_add.action); 5727 break; 5728 case BCMX_ASYNC_ENTRY_VLAN_PORT_PROTOCOL_ACTION_DELETE: 5729 rv = bcmx_vlan_port_protocol_action_delete( 5730 req->args.vlan_port_protocol_action_delete.port, 5731 req->args.vlan_port_protocol_action_delete.frame, 5732 req->args.vlan_port_protocol_action_delete.ether); 5733 break; 5734 case BCMX_ASYNC_ENTRY_VLAN_PORT_PROTOCOL_ACTION_DELETE_ALL: 5735 rv = bcmx_vlan_port_protocol_action_delete_all( 5736 req->args.vlan_port_protocol_action_delete_all.port); 5737 break; 5738 case BCMX_ASYNC_ENTRY_VLAN_PORT_PROTOCOL_ACTION_GET: 5739 rv = bcmx_vlan_port_protocol_action_get( 5740 req->args.vlan_port_protocol_action_get.port, 5741 req->args.vlan_port_protocol_action_get.frame, 5742 req->args.vlan_port_protocol_action_get.ether, 5743 req->args.vlan_port_protocol_action_get.action); 5744 break; 5745 case BCMX_ASYNC_ENTRY_VLAN_PORT_REMOVE: 5746 rv = bcmx_vlan_port_remove( 5747 req->args.vlan_port_remove.vid, 5748 req->args.vlan_port_remove.lplist); 5749 break; 5750 case BCMX_ASYNC_ENTRY_VLAN_QUEUE_MAP_ATTACH: 5751 rv = bcmx_vlan_queue_map_attach( 5752 req->args.vlan_queue_map_attach.vlan, 5753 req->args.vlan_queue_map_attach.qmid); 5754 break; 5755 case BCMX_ASYNC_ENTRY_VLAN_QUEUE_MAP_ATTACH_GET: 5756 rv = bcmx_vlan_queue_map_attach_get( 5757 req->args.vlan_queue_map_attach_get.vlan, 5758 req->args.vlan_queue_map_attach_get.qmid); 5759 break; 5760 case BCMX_ASYNC_ENTRY_VLAN_QUEUE_MAP_CREATE: 5761 rv = bcmx_vlan_queue_map_create( 5762 req->args.vlan_queue_map_create.flags, 5763 req->args.vlan_queue_map_create.qmid); 5764 break; 5765 case BCMX_ASYNC_ENTRY_VLAN_QUEUE_MAP_DESTROY: 5766 rv = bcmx_vlan_queue_map_destroy( 5767 req->args.vlan_queue_map_destroy.qmid); 5768 break; 5769 case BCMX_ASYNC_ENTRY_VLAN_QUEUE_MAP_DESTROY_ALL: 5770 rv = bcmx_vlan_queue_map_destroy_all( 5771 ); 5772 break; 5773 case BCMX_ASYNC_ENTRY_VLAN_QUEUE_MAP_DETACH: 5774 rv = bcmx_vlan_queue_map_detach( 5775 req->args.vlan_queue_map_detach.vlan); 5776 break; 5777 case BCMX_ASYNC_ENTRY_VLAN_QUEUE_MAP_DETACH_ALL: 5778 rv = bcmx_vlan_queue_map_detach_all( 5779 ); 5780 break; 5781 case BCMX_ASYNC_ENTRY_VLAN_QUEUE_MAP_GET: 5782 rv = bcmx_vlan_queue_map_get( 5783 req->args.vlan_queue_map_get.qmid, 5784 req->args.vlan_queue_map_get.pkt_pri, 5785 req->args.vlan_queue_map_get.cfi, 5786 req->args.vlan_queue_map_get.queue, 5787 req->args.vlan_queue_map_get.color); 5788 break; 5789 case BCMX_ASYNC_ENTRY_VLAN_QUEUE_MAP_SET: 5790 rv = bcmx_vlan_queue_map_set( 5791 req->args.vlan_queue_map_set.qmid, 5792 req->args.vlan_queue_map_set.pkt_pri, 5793 req->args.vlan_queue_map_set.cfi, 5794 req->args.vlan_queue_map_set.queue, 5795 req->args.vlan_queue_map_set.color); 5796 break; 5797 case BCMX_ASYNC_ENTRY_VLAN_STAT_ENABLE_SET: 5798 rv = bcmx_vlan_stat_enable_set( 5799 req->args.vlan_stat_enable_set.vlan, 5800 req->args.vlan_stat_enable_set.enable); 5801 break; 5802 case BCMX_ASYNC_ENTRY_VLAN_STAT_MULTI_GET: 5803 rv = bcmx_vlan_stat_multi_get( 5804 req->args.vlan_stat_multi_get.vlan, 5805 req->args.vlan_stat_multi_get.cos, 5806 req->args.vlan_stat_multi_get.nstat, 5807 req->args.vlan_stat_multi_get.stat_arr, 5808 req->args.vlan_stat_multi_get.value_arr); 5809 break; 5810 case BCMX_ASYNC_ENTRY_VLAN_STAT_MULTI_GET32: 5811 rv = bcmx_vlan_stat_multi_get32( 5812 req->args.vlan_stat_multi_get32.vlan, 5813 req->args.vlan_stat_multi_get32.cos, 5814 req->args.vlan_stat_multi_get32.nstat, 5815 req->args.vlan_stat_multi_get32.stat_arr, 5816 req->args.vlan_stat_multi_get32.value_arr); 5817 break; 5818 case BCMX_ASYNC_ENTRY_VLAN_STAT_MULTI_SET: 5819 rv = bcmx_vlan_stat_multi_set( 5820 req->args.vlan_stat_multi_set.vlan, 5821 req->args.vlan_stat_multi_set.cos, 5822 req->args.vlan_stat_multi_set.nstat, 5823 req->args.vlan_stat_multi_set.stat_arr, 5824 req->args.vlan_stat_multi_set.value_arr); 5825 break; 5826 case BCMX_ASYNC_ENTRY_VLAN_STAT_MULTI_SET32: 5827 rv = bcmx_vlan_stat_multi_set32( 5828 req->args.vlan_stat_multi_set32.vlan, 5829 req->args.vlan_stat_multi_set32.cos, 5830 req->args.vlan_stat_multi_set32.nstat, 5831 req->args.vlan_stat_multi_set32.stat_arr, 5832 req->args.vlan_stat_multi_set32.value_arr); 5833 break; 5834 case BCMX_ASYNC_ENTRY_VLAN_STG_GET: 5835 rv = bcmx_vlan_stg_get( 5836 req->args.vlan_stg_get.vid, 5837 req->args.vlan_stg_get.stg_ptr); 5838 break; 5839 case BCMX_ASYNC_ENTRY_VLAN_STG_SET: 5840 rv = bcmx_vlan_stg_set( 5841 req->args.vlan_stg_set.vid, 5842 req->args.vlan_stg_set.stg); 5843 break; 5844 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_ACTION_ADD: 5845 rv = bcmx_vlan_translate_action_add( 5846 req->args.vlan_translate_action_add.port, 5847 req->args.vlan_translate_action_add.key_type, 5848 req->args.vlan_translate_action_add.outer_vlan, 5849 req->args.vlan_translate_action_add.inner_vlan, 5850 req->args.vlan_translate_action_add.action); 5851 break; 5852 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_ACTION_DELETE: 5853 rv = bcmx_vlan_translate_action_delete( 5854 req->args.vlan_translate_action_delete.port, 5855 req->args.vlan_translate_action_delete.key_type, 5856 req->args.vlan_translate_action_delete.outer_vlan, 5857 req->args.vlan_translate_action_delete.inner_vlan); 5858 break; 5859 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_ACTION_GET: 5860 rv = bcmx_vlan_translate_action_get( 5861 req->args.vlan_translate_action_get.port, 5862 req->args.vlan_translate_action_get.key_type, 5863 req->args.vlan_translate_action_get.outer_vlan, 5864 req->args.vlan_translate_action_get.inner_vlan, 5865 req->args.vlan_translate_action_get.action); 5866 break; 5867 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_ACTION_RANGE_ADD: 5868 rv = bcmx_vlan_translate_action_range_add( 5869 req->args.vlan_translate_action_range_add.port, 5870 req->args.vlan_translate_action_range_add.outer_vlan_low, 5871 req->args.vlan_translate_action_range_add.outer_vlan_high, 5872 req->args.vlan_translate_action_range_add.inner_vlan_low, 5873 req->args.vlan_translate_action_range_add.inner_vlan_high, 5874 req->args.vlan_translate_action_range_add.action); 5875 break; 5876 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_ACTION_RANGE_DELETE: 5877 rv = bcmx_vlan_translate_action_range_delete( 5878 req->args.vlan_translate_action_range_delete.port, 5879 req->args.vlan_translate_action_range_delete.outer_vlan_low, 5880 req->args.vlan_translate_action_range_delete.outer_vlan_high, 5881 req->args.vlan_translate_action_range_delete.inner_vlan_low, 5882 req->args.vlan_translate_action_range_delete.inner_vlan_high); 5883 break; 5884 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_ACTION_RANGE_DELETE_ALL: 5885 rv = bcmx_vlan_translate_action_range_delete_all( 5886 ); 5887 break; 5888 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_ACTION_RANGE_GET: 5889 rv = bcmx_vlan_translate_action_range_get( 5890 req->args.vlan_translate_action_range_get.port, 5891 req->args.vlan_translate_action_range_get.outer_vlan_low, 5892 req->args.vlan_translate_action_range_get.outer_vlan_high, 5893 req->args.vlan_translate_action_range_get.inner_vlan_low, 5894 req->args.vlan_translate_action_range_get.inner_vlan_high, 5895 req->args.vlan_translate_action_range_get.action); 5896 break; 5897 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_ADD: 5898 rv = bcmx_vlan_translate_add( 5899 req->args.vlan_translate_add.port, 5900 req->args.vlan_translate_add.old_vid, 5901 req->args.vlan_translate_add.new_vid, 5902 req->args.vlan_translate_add.prio); 5903 break; 5904 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_DELETE: 5905 rv = bcmx_vlan_translate_delete( 5906 req->args.vlan_translate_delete.port, 5907 req->args.vlan_translate_delete.old_vid); 5908 break; 5909 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_DELETE_ALL: 5910 rv = bcmx_vlan_translate_delete_all( 5911 ); 5912 break; 5913 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_ACTION_ADD: 5914 rv = bcmx_vlan_translate_egress_action_add( 5915 req->args.vlan_translate_egress_action_add.port_class, 5916 req->args.vlan_translate_egress_action_add.outer_vlan, 5917 req->args.vlan_translate_egress_action_add.inner_vlan, 5918 req->args.vlan_translate_egress_action_add.action); 5919 break; 5920 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_ACTION_DELETE: 5921 rv = bcmx_vlan_translate_egress_action_delete( 5922 req->args.vlan_translate_egress_action_delete.port_class, 5923 req->args.vlan_translate_egress_action_delete.outer_vlan, 5924 req->args.vlan_translate_egress_action_delete.inner_vlan); 5925 break; 5926 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_ACTION_GET: 5927 rv = bcmx_vlan_translate_egress_action_get( 5928 req->args.vlan_translate_egress_action_get.port_class, 5929 req->args.vlan_translate_egress_action_get.outer_vlan, 5930 req->args.vlan_translate_egress_action_get.inner_vlan, 5931 req->args.vlan_translate_egress_action_get.action); 5932 break; 5933 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_ADD: 5934 rv = bcmx_vlan_translate_egress_add( 5935 req->args.vlan_translate_egress_add.port, 5936 req->args.vlan_translate_egress_add.old_vid, 5937 req->args.vlan_translate_egress_add.new_vid, 5938 req->args.vlan_translate_egress_add.prio); 5939 break; 5940 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_DELETE: 5941 rv = bcmx_vlan_translate_egress_delete( 5942 req->args.vlan_translate_egress_delete.port, 5943 req->args.vlan_translate_egress_delete.old_vid); 5944 break; 5945 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_DELETE_ALL: 5946 rv = bcmx_vlan_translate_egress_delete_all( 5947 ); 5948 break; 5949 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_GET: 5950 rv = bcmx_vlan_translate_egress_get( 5951 req->args.vlan_translate_egress_get.port, 5952 req->args.vlan_translate_egress_get.old_vid, 5953 req->args.vlan_translate_egress_get.new_vid, 5954 req->args.vlan_translate_egress_get.prio); 5955 break; 5956 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_STAT_ENABLE_SET: 5957 rv = bcmx_vlan_translate_egress_stat_enable_set( 5958 req->args.vlan_translate_egress_stat_enable_set.port_class, 5959 req->args.vlan_translate_egress_stat_enable_set.outer_vlan, 5960 req->args.vlan_translate_egress_stat_enable_set.inner_vlan, 5961 req->args.vlan_translate_egress_stat_enable_set.enable); 5962 break; 5963 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_STAT_GET: 5964 rv = bcmx_vlan_translate_egress_stat_get( 5965 req->args.vlan_translate_egress_stat_get.port_class, 5966 req->args.vlan_translate_egress_stat_get.outer_vlan, 5967 req->args.vlan_translate_egress_stat_get.inner_vlan, 5968 req->args.vlan_translate_egress_stat_get.stat, 5969 req->args.vlan_translate_egress_stat_get.val); 5970 break; 5971 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_STAT_GET32: 5972 rv = bcmx_vlan_translate_egress_stat_get32( 5973 req->args.vlan_translate_egress_stat_get32.port_class, 5974 req->args.vlan_translate_egress_stat_get32.outer_vlan, 5975 req->args.vlan_translate_egress_stat_get32.inner_vlan, 5976 req->args.vlan_translate_egress_stat_get32.stat, 5977 req->args.vlan_translate_egress_stat_get32.val); 5978 break; 5979 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_STAT_MULTI_GET: 5980 rv = bcmx_vlan_translate_egress_stat_multi_get( 5981 req->args.vlan_translate_egress_stat_multi_get.port_class, 5982 req->args.vlan_translate_egress_stat_multi_get.outer_vlan, 5983 req->args.vlan_translate_egress_stat_multi_get.inner_vlan, 5984 req->args.vlan_translate_egress_stat_multi_get.nstat, 5985 req->args.vlan_translate_egress_stat_multi_get.stat_arr, 5986 req->args.vlan_translate_egress_stat_multi_get.value_arr); 5987 break; 5988 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_STAT_MULTI_GET32: 5989 rv = bcmx_vlan_translate_egress_stat_multi_get32( 5990 req->args.vlan_translate_egress_stat_multi_get32.port_class, 5991 req->args.vlan_translate_egress_stat_multi_get32.outer_vlan, 5992 req->args.vlan_translate_egress_stat_multi_get32.inner_vlan, 5993 req->args.vlan_translate_egress_stat_multi_get32.nstat, 5994 req->args.vlan_translate_egress_stat_multi_get32.stat_arr, 5995 req->args.vlan_translate_egress_stat_multi_get32.value_arr); 5996 break; 5997 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_STAT_MULTI_SET: 5998 rv = bcmx_vlan_translate_egress_stat_multi_set( 5999 req->args.vlan_translate_egress_stat_multi_set.port_class, 6000 req->args.vlan_translate_egress_stat_multi_set.outer_vlan, 6001 req->args.vlan_translate_egress_stat_multi_set.inner_vlan, 6002 req->args.vlan_translate_egress_stat_multi_set.nstat, 6003 req->args.vlan_translate_egress_stat_multi_set.stat_arr, 6004 req->args.vlan_translate_egress_stat_multi_set.value_arr); 6005 break; 6006 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_STAT_MULTI_SET32: 6007 rv = bcmx_vlan_translate_egress_stat_multi_set32( 6008 req->args.vlan_translate_egress_stat_multi_set32.port_class, 6009 req->args.vlan_translate_egress_stat_multi_set32.outer_vlan, 6010 req->args.vlan_translate_egress_stat_multi_set32.inner_vlan, 6011 req->args.vlan_translate_egress_stat_multi_set32.nstat, 6012 req->args.vlan_translate_egress_stat_multi_set32.stat_arr, 6013 req->args.vlan_translate_egress_stat_multi_set32.value_arr); 6014 break; 6015 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_STAT_SET: 6016 rv = bcmx_vlan_translate_egress_stat_set( 6017 req->args.vlan_translate_egress_stat_set.port_class, 6018 req->args.vlan_translate_egress_stat_set.outer_vlan, 6019 req->args.vlan_translate_egress_stat_set.inner_vlan, 6020 req->args.vlan_translate_egress_stat_set.stat, 6021 req->args.vlan_translate_egress_stat_set.val); 6022 break; 6023 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_EGRESS_STAT_SET32: 6024 rv = bcmx_vlan_translate_egress_stat_set32( 6025 req->args.vlan_translate_egress_stat_set32.port_class, 6026 req->args.vlan_translate_egress_stat_set32.outer_vlan, 6027 req->args.vlan_translate_egress_stat_set32.inner_vlan, 6028 req->args.vlan_translate_egress_stat_set32.stat, 6029 req->args.vlan_translate_egress_stat_set32.val); 6030 break; 6031 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_GET: 6032 rv = bcmx_vlan_translate_get( 6033 req->args.vlan_translate_get.port, 6034 req->args.vlan_translate_get.old_vid, 6035 req->args.vlan_translate_get.new_vid, 6036 req->args.vlan_translate_get.prio); 6037 break; 6038 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_RANGE_ADD: 6039 rv = bcmx_vlan_translate_range_add( 6040 req->args.vlan_translate_range_add.port, 6041 req->args.vlan_translate_range_add.old_vid_low, 6042 req->args.vlan_translate_range_add.old_vid_high, 6043 req->args.vlan_translate_range_add.new_vid, 6044 req->args.vlan_translate_range_add.int_prio); 6045 break; 6046 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_RANGE_DELETE: 6047 rv = bcmx_vlan_translate_range_delete( 6048 req->args.vlan_translate_range_delete.port, 6049 req->args.vlan_translate_range_delete.old_vid_low, 6050 req->args.vlan_translate_range_delete.old_vid_high); 6051 break; 6052 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_RANGE_DELETE_ALL: 6053 rv = bcmx_vlan_translate_range_delete_all( 6054 ); 6055 break; 6056 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_RANGE_GET: 6057 rv = bcmx_vlan_translate_range_get( 6058 req->args.vlan_translate_range_get.port, 6059 req->args.vlan_translate_range_get.old_vid_low, 6060 req->args.vlan_translate_range_get.old_vid_high, 6061 req->args.vlan_translate_range_get.new_vid, 6062 req->args.vlan_translate_range_get.int_prio); 6063 break; 6064 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_STAT_ENABLE_SET: 6065 rv = bcmx_vlan_translate_stat_enable_set( 6066 req->args.vlan_translate_stat_enable_set.port, 6067 req->args.vlan_translate_stat_enable_set.key_type, 6068 req->args.vlan_translate_stat_enable_set.outer_vlan, 6069 req->args.vlan_translate_stat_enable_set.inner_vlan, 6070 req->args.vlan_translate_stat_enable_set.enable); 6071 break; 6072 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_STAT_GET: 6073 rv = bcmx_vlan_translate_stat_get( 6074 req->args.vlan_translate_stat_get.port, 6075 req->args.vlan_translate_stat_get.key_type, 6076 req->args.vlan_translate_stat_get.outer_vlan, 6077 req->args.vlan_translate_stat_get.inner_vlan, 6078 req->args.vlan_translate_stat_get.stat, 6079 req->args.vlan_translate_stat_get.val); 6080 break; 6081 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_STAT_GET32: 6082 rv = bcmx_vlan_translate_stat_get32( 6083 req->args.vlan_translate_stat_get32.port, 6084 req->args.vlan_translate_stat_get32.key_type, 6085 req->args.vlan_translate_stat_get32.outer_vlan, 6086 req->args.vlan_translate_stat_get32.inner_vlan, 6087 req->args.vlan_translate_stat_get32.stat, 6088 req->args.vlan_translate_stat_get32.val); 6089 break; 6090 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_STAT_MULTI_GET: 6091 rv = bcmx_vlan_translate_stat_multi_get( 6092 req->args.vlan_translate_stat_multi_get.port, 6093 req->args.vlan_translate_stat_multi_get.key_type, 6094 req->args.vlan_translate_stat_multi_get.outer_vlan, 6095 req->args.vlan_translate_stat_multi_get.inner_vlan, 6096 req->args.vlan_translate_stat_multi_get.nstat, 6097 req->args.vlan_translate_stat_multi_get.stat_arr, 6098 req->args.vlan_translate_stat_multi_get.value_arr); 6099 break; 6100 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_STAT_MULTI_GET32: 6101 rv = bcmx_vlan_translate_stat_multi_get32( 6102 req->args.vlan_translate_stat_multi_get32.port, 6103 req->args.vlan_translate_stat_multi_get32.key_type, 6104 req->args.vlan_translate_stat_multi_get32.outer_vlan, 6105 req->args.vlan_translate_stat_multi_get32.inner_vlan, 6106 req->args.vlan_translate_stat_multi_get32.nstat, 6107 req->args.vlan_translate_stat_multi_get32.stat_arr, 6108 req->args.vlan_translate_stat_multi_get32.value_arr); 6109 break; 6110 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_STAT_MULTI_SET: 6111 rv = bcmx_vlan_translate_stat_multi_set( 6112 req->args.vlan_translate_stat_multi_set.port, 6113 req->args.vlan_translate_stat_multi_set.key_type, 6114 req->args.vlan_translate_stat_multi_set.outer_vlan, 6115 req->args.vlan_translate_stat_multi_set.inner_vlan, 6116 req->args.vlan_translate_stat_multi_set.nstat, 6117 req->args.vlan_translate_stat_multi_set.stat_arr, 6118 req->args.vlan_translate_stat_multi_set.value_arr); 6119 break; 6120 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_STAT_MULTI_SET32: 6121 rv = bcmx_vlan_translate_stat_multi_set32( 6122 req->args.vlan_translate_stat_multi_set32.port, 6123 req->args.vlan_translate_stat_multi_set32.key_type, 6124 req->args.vlan_translate_stat_multi_set32.outer_vlan, 6125 req->args.vlan_translate_stat_multi_set32.inner_vlan, 6126 req->args.vlan_translate_stat_multi_set32.nstat, 6127 req->args.vlan_translate_stat_multi_set32.stat_arr, 6128 req->args.vlan_translate_stat_multi_set32.value_arr); 6129 break; 6130 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_STAT_SET: 6131 rv = bcmx_vlan_translate_stat_set( 6132 req->args.vlan_translate_stat_set.port, 6133 req->args.vlan_translate_stat_set.key_type, 6134 req->args.vlan_translate_stat_set.outer_vlan, 6135 req->args.vlan_translate_stat_set.inner_vlan, 6136 req->args.vlan_translate_stat_set.stat, 6137 req->args.vlan_translate_stat_set.val); 6138 break; 6139 case BCMX_ASYNC_ENTRY_VLAN_TRANSLATE_STAT_SET32: 6140 rv = bcmx_vlan_translate_stat_set32( 6141 req->args.vlan_translate_stat_set32.port, 6142 req->args.vlan_translate_stat_set32.key_type, 6143 req->args.vlan_translate_stat_set32.outer_vlan, 6144 req->args.vlan_translate_stat_set32.inner_vlan, 6145 req->args.vlan_translate_stat_set32.stat, 6146 req->args.vlan_translate_stat_set32.val); 6147 break; 6148 case BCMX_ASYNC_ENTRY_VLAN_VECTOR_FLAGS_SET: 6149 rv = bcmx_vlan_vector_flags_set( 6150 req->args.vlan_vector_flags_set.vlan_vector, 6151 req->args.vlan_vector_flags_set.flags_mask, 6152 req->args.vlan_vector_flags_set.flags_value); 6153 break; 6154 #ifdef INCLUDE_L3 6155 case BCMX_ASYNC_ENTRY_WLAN_CLIENT_ADD: 6156 rv = bcmx_wlan_client_add( 6157 req->args.wlan_client_add.info); 6158 break; 6159 case BCMX_ASYNC_ENTRY_WLAN_CLIENT_DELETE: 6160 rv = bcmx_wlan_client_delete( 6161 req->args.wlan_client_delete.mac); 6162 break; 6163 case BCMX_ASYNC_ENTRY_WLAN_CLIENT_DELETE_ALL: 6164 rv = bcmx_wlan_client_delete_all( 6165 ); 6166 break; 6167 case BCMX_ASYNC_ENTRY_WLAN_CLIENT_GET: 6168 rv = bcmx_wlan_client_get( 6169 req->args.wlan_client_get.mac, 6170 req->args.wlan_client_get.info); 6171 break; 6172 case BCMX_ASYNC_ENTRY_WLAN_DETACH: 6173 rv = bcmx_wlan_detach( 6174 ); 6175 break; 6176 case BCMX_ASYNC_ENTRY_WLAN_INIT: 6177 rv = bcmx_wlan_init( 6178 ); 6179 break; 6180 case BCMX_ASYNC_ENTRY_WLAN_PORT_ADD: 6181 rv = bcmx_wlan_port_add( 6182 req->args.wlan_port_add.info); 6183 break; 6184 case BCMX_ASYNC_ENTRY_WLAN_PORT_DELETE: 6185 rv = bcmx_wlan_port_delete( 6186 req->args.wlan_port_delete.wlan_port_id); 6187 break; 6188 case BCMX_ASYNC_ENTRY_WLAN_PORT_DELETE_ALL: 6189 rv = bcmx_wlan_port_delete_all( 6190 ); 6191 break; 6192 case BCMX_ASYNC_ENTRY_WLAN_PORT_GET: 6193 rv = bcmx_wlan_port_get( 6194 req->args.wlan_port_get.wlan_port_id, 6195 req->args.wlan_port_get.info); 6196 break; 6197 case BCMX_ASYNC_ENTRY_WLAN_TUNNEL_INITIATOR_CREATE: 6198 rv = bcmx_wlan_tunnel_initiator_create( 6199 req->args.wlan_tunnel_initiator_create.info); 6200 break; 6201 case BCMX_ASYNC_ENTRY_WLAN_TUNNEL_INITIATOR_DESTROY: 6202 rv = bcmx_wlan_tunnel_initiator_destroy( 6203 req->args.wlan_tunnel_initiator_destroy.wlan_tunnel_id); 6204 break; 6205 case BCMX_ASYNC_ENTRY_WLAN_TUNNEL_INITIATOR_GET: 6206 rv = bcmx_wlan_tunnel_initiator_get( 6207 req->args.wlan_tunnel_initiator_get.info); 6208 break; 6209 #endif /* INCLUDE_L3 */ 6210 default: 6211 rv = BCM_E_UNAVAIL; 6212 } 6213 if (req->callback != 0) { 6214 (*req->callback)(req->cookie, rv); 6215 } 6216 sal_free(req); 6217 } 6218 6219 #endif /* BCM_ASYNC_SUPPORT */