field.h (59138B)
1 /* 2 * 3 * 4 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 5 * 6 * Copyright 2007-2020 Broadcom Inc. All rights reserved. 7 * 8 * DO NOT EDIT THIS FILE! 9 * This file is auto-generated. 10 * Edits to this file will be lost when it is regenerated. 11 */ 12 13 #ifndef __BCMX_FIELD_H__ 14 #define __BCMX_FIELD_H__ 15 16 #include <bcm/types.h> 17 #include <bcmx/bcmx.h> 18 #include <bcmx/lplist.h> 19 #include <bcm/field.h> 20 #include <bcmx/policer.h> 21 22 /* DATA qualifier object, used for creation of custom data qualifiers. */ 23 typedef bcm_field_data_qualifier_t bcmx_field_data_qualifier_t; 24 25 /* Ethertype based DATA packet qualifier structure. */ 26 typedef bcm_field_data_ethertype_t bcmx_field_data_ethertype_t; 27 28 /* Ip protocol/Next header based DATA packet qualifier structure. */ 29 typedef bcm_field_data_ip_protocol_t bcmx_field_data_ip_protocol_t; 30 31 /* Packet format based DATA qualifier specification structure. */ 32 typedef bcm_field_data_packet_format_t bcmx_field_data_packet_format_t; 33 34 /* Initialize Field Data Qualifier structure. */ 35 extern void bcmx_field_data_qualifier_t_init( 36 bcmx_field_data_qualifier_t *data_qual); 37 38 /* Initialize ethertype based field data qualifier. */ 39 extern void bcmx_field_data_ethertype_t_init( 40 bcmx_field_data_ethertype_t *etype); 41 42 /* Initialize ip protocol based field data qualifier. */ 43 extern void bcmx_field_data_ip_protocol_t_init( 44 bcmx_field_data_ip_protocol_t *ip_protocol); 45 46 /* Initialize packet format based field data qualifier. */ 47 extern void bcmx_field_data_packet_format_t_init( 48 bcmx_field_data_packet_format_t *packet_format); 49 50 /* Initialize field software subsystem. */ 51 extern int bcmx_field_init(void); 52 53 /* Get a field control value. */ 54 extern int bcmx_field_control_get( 55 bcm_field_control_t control, 56 uint32 *state); 57 58 /* Set a field control value. */ 59 extern int bcmx_field_control_set( 60 bcm_field_control_t control, 61 uint32 state); 62 63 /* 64 * Traverse all the fp groups in the system, calling a specified callback 65 * for each one 66 */ 67 extern int bcmx_field_group_traverse( 68 bcm_field_group_traverse_cb callback, 69 void *user_data); 70 71 /* Create a field group. */ 72 extern int bcmx_field_group_create( 73 bcm_field_qset_t qset, 74 int pri, 75 bcm_field_group_t *group); 76 77 /* Create a field group. */ 78 extern int bcmx_field_group_create_id( 79 bcm_field_qset_t qset, 80 int pri, 81 bcm_field_group_t group); 82 83 /* Create a field group. */ 84 extern int bcmx_field_group_create_mode( 85 bcm_field_qset_t qset, 86 int pri, 87 bcm_field_group_mode_t mode, 88 bcm_field_group_t *group); 89 90 /* Create a field group. */ 91 extern int bcmx_field_group_create_mode_id( 92 bcm_field_qset_t qset, 93 int pri, 94 bcm_field_group_mode_t mode, 95 bcm_field_group_t group); 96 97 /* Create a field group. */ 98 extern int bcmx_field_group_port_create_mode( 99 bcmx_lport_t port, 100 bcm_field_qset_t qset, 101 int pri, 102 bcm_field_group_mode_t mode, 103 bcm_field_group_t *group); 104 105 /* Create a field group. */ 106 extern int bcmx_field_group_port_create_mode_id( 107 bcmx_lport_t port, 108 bcm_field_qset_t qset, 109 int pri, 110 bcm_field_group_mode_t mode, 111 bcm_field_group_t group); 112 113 /* Create a field group. */ 114 extern int bcmx_field_group_ports_create_mode( 115 bcmx_lplist_t lplist, 116 bcm_field_qset_t qset, 117 int pri, 118 bcm_field_group_mode_t mode, 119 bcm_field_group_t *group); 120 121 /* Create a field group. */ 122 extern int bcmx_field_group_ports_create_mode_id( 123 bcmx_lplist_t lplist, 124 bcm_field_qset_t qset, 125 int pri, 126 bcm_field_group_mode_t mode, 127 bcm_field_group_t group); 128 129 /* Create a wlan field group. */ 130 extern int bcmx_field_group_wlan_create_mode( 131 bcm_field_qset_t qset, 132 int pri, 133 bcm_field_group_mode_t mode, 134 bcm_field_group_t *group); 135 136 /* Create a wlan field group. */ 137 extern int bcmx_field_group_wlan_create_mode_id( 138 bcm_field_qset_t qset, 139 int pri, 140 bcm_field_group_mode_t mode, 141 bcm_field_group_t group); 142 143 /* Get the mode of a group. */ 144 extern int bcmx_field_group_mode_get( 145 bcm_field_group_t group, 146 bcm_field_group_mode_t *mode); 147 148 /* Change or retrieve the qualifiers for a field group. */ 149 extern int bcmx_field_group_set( 150 bcm_field_group_t group, 151 bcm_field_qset_t qset); 152 153 /* Change or retrieve the qualifiers for a field group. */ 154 extern int bcmx_field_group_get( 155 bcm_field_group_t group, 156 bcm_field_qset_t *qset); 157 158 /* Deallocates a field group. */ 159 extern int bcmx_field_group_destroy( 160 bcm_field_group_t group); 161 162 /* Compress field group entries. */ 163 extern int bcmx_field_group_compress( 164 bcm_field_group_t group); 165 166 /* Set field group priority. */ 167 extern int bcmx_field_group_priority_set( 168 bcm_field_group_t group, 169 int priority); 170 171 /* Get field group priority. */ 172 extern int bcmx_field_group_priority_get( 173 bcm_field_group_t group, 174 int *priority); 175 176 /* Set the group enable state. */ 177 extern int bcmx_field_group_enable_set( 178 bcm_field_group_t group, 179 int enable); 180 181 /* Get the group enable state. */ 182 extern int bcmx_field_group_enable_get( 183 bcm_field_group_t group, 184 int *enable); 185 186 /* Allocate a range checker with specified configuration. */ 187 extern int bcmx_field_range_create( 188 bcm_field_range_t *range, 189 uint32 flags, 190 bcm_l4_port_t min, 191 bcm_l4_port_t max); 192 193 /* 194 * Install all entries of a field group into the hardware tables (will 195 * silently reinstall entries already in the hardware tables) 196 */ 197 extern int bcmx_field_group_install( 198 bcm_field_group_t group); 199 200 /* 201 * Remove all entries of a field group from the hardware tables (will 202 * silently ignore entries not in the hardware tables) 203 */ 204 extern int bcmx_field_group_remove( 205 bcm_field_group_t group); 206 207 /* Allocate a range checker with specified configuration. */ 208 extern int bcmx_field_range_create_id( 209 bcm_field_range_t range, 210 uint32 flags, 211 bcm_l4_port_t min, 212 bcm_l4_port_t max); 213 214 /* 215 * Allocate a range checker with specified configuration associated with 216 * an interface group. 217 */ 218 extern int bcmx_field_range_group_create( 219 bcm_field_range_t *range, 220 uint32 flags, 221 bcm_l4_port_t min, 222 bcm_l4_port_t max, 223 bcm_if_group_t group); 224 225 /* 226 * Allocate a range checker with specified configuration associated with 227 * an interface group. 228 */ 229 extern int bcmx_field_range_group_create_id( 230 bcm_field_range_t range, 231 uint32 flags, 232 bcm_l4_port_t min, 233 bcm_l4_port_t max, 234 bcm_if_group_t group); 235 236 /* Retrieve parameters associated with an existing range checker. */ 237 extern int bcmx_field_range_get( 238 bcm_field_range_t range, 239 uint32 *flags, 240 bcm_l4_port_t *min, 241 bcm_l4_port_t *max); 242 243 /* Destroy a virtual range checker. */ 244 extern int bcmx_field_range_destroy( 245 bcm_field_range_t range); 246 247 /* Create an data/offset based qualifier. */ 248 extern int bcmx_field_data_qualifier_create( 249 bcmx_field_data_qualifier_t *data_qualifier); 250 251 /* Return list of ids of defined data qualifiers. */ 252 extern int bcmx_field_data_qualifier_multi_get( 253 int qual_size, 254 int *qual_array, 255 int *qual_count); 256 257 /* Return configuration of given data qualifier. */ 258 extern int bcmx_field_data_qualifier_get( 259 int qual_id, 260 bcmx_field_data_qualifier_t *qual); 261 262 /* Destroy an data/offset based qualifier. */ 263 extern int bcmx_field_data_qualifier_destroy( 264 int qual_id); 265 266 /* Delete all data/offset based qualifiers. */ 267 extern int bcmx_field_data_qualifier_destroy_all(void); 268 269 /* Add ethertype based offset to data qualifier object. */ 270 extern int bcmx_field_data_qualifier_ethertype_add( 271 int qual_id, 272 bcmx_field_data_ethertype_t *etype); 273 274 /* Remove ethertype based offset from data qualifier object. */ 275 extern int bcmx_field_data_qualifier_ethertype_delete( 276 int qual_id, 277 bcmx_field_data_ethertype_t *etype); 278 279 /* Add ip protocol based offset to data qualifier object. */ 280 extern int bcmx_field_data_qualifier_ip_protocol_add( 281 int qual_id, 282 bcmx_field_data_ip_protocol_t *ip_protocol); 283 284 /* Remove ip protocol based offset from data qualifier object. */ 285 extern int bcmx_field_data_qualifier_ip_protocol_delete( 286 int qual_id, 287 bcmx_field_data_ip_protocol_t *ip_protocol); 288 289 /* Add packet format based offset/s to data qualifier object. */ 290 extern int bcmx_field_data_qualifier_packet_format_add( 291 int qual_id, 292 bcmx_field_data_packet_format_t *packet_format); 293 294 /* Remove packet format based offset/s from data qualifier object. */ 295 extern int bcmx_field_data_qualifier_packet_format_delete( 296 int qual_id, 297 bcmx_field_data_packet_format_t *packet_format); 298 299 /* Add field data qualifier to group qset. */ 300 extern int bcmx_field_qset_data_qualifier_add( 301 bcm_field_qset_t *qset, 302 int qual_id); 303 304 /* Get field data qualifiers included in group qset. */ 305 extern int bcmx_field_qset_data_qualifier_get( 306 bcm_field_qset_t *qset, 307 int qual_max, 308 int *qual_arr, 309 int *qual_count); 310 311 /* Create a blank field entry. */ 312 extern int bcmx_field_entry_create( 313 bcm_field_group_t group, 314 bcm_field_entry_t *entry); 315 316 /* Create a blank field entry. */ 317 extern int bcmx_field_entry_create_id( 318 bcm_field_group_t group, 319 bcm_field_entry_t entry); 320 321 /* Get field entries. */ 322 extern int bcmx_field_entry_multi_get( 323 bcm_field_group_t group, 324 int entry_size, 325 bcm_field_entry_t *entry_array, 326 int *entry_count); 327 328 /* Destroy a field entry. */ 329 extern int bcmx_field_entry_destroy( 330 bcm_field_entry_t entry); 331 332 /* Destroy all field entries. */ 333 extern int bcmx_field_entry_destroy_all(void); 334 335 /* Create a copy of an existing field entry. */ 336 extern int bcmx_field_entry_copy( 337 bcm_field_entry_t src_entry, 338 bcm_field_entry_t *dst_entry); 339 340 /* Install a field entry into the hardware tables. */ 341 extern int bcmx_field_entry_install( 342 bcm_field_entry_t entry); 343 344 /* Re-install a field entry into the hardware tables. */ 345 extern int bcmx_field_entry_reinstall( 346 bcm_field_entry_t entry); 347 348 /* Remove a field entry from the hardware tables. */ 349 extern int bcmx_field_entry_remove( 350 bcm_field_entry_t entry); 351 352 /* Attach a policer to a field entry. */ 353 extern int bcmx_field_entry_policer_attach( 354 bcm_field_entry_t entry_id, 355 int level, 356 bcm_policer_t policer_id); 357 358 /* Detach a policer from a field entry. */ 359 extern int bcmx_field_entry_policer_detach( 360 bcm_field_entry_t entry_id, 361 int level); 362 363 /* Detach all policers from a field entry. */ 364 extern int bcmx_field_entry_policer_detach_all( 365 bcm_field_entry_t entry_id); 366 367 /* Get the policer(s) attached to a field entry. */ 368 extern int bcmx_field_entry_policer_get( 369 bcm_field_entry_t entry_id, 370 int level, 371 bcm_policer_t *policer_id); 372 373 /* Get/Set the priority for an entry within a group. */ 374 extern int bcmx_field_entry_prio_get( 375 bcm_field_entry_t entry, 376 int *prio); 377 378 /* Get/Set the priority for an entry within a group. */ 379 extern int bcmx_field_entry_prio_set( 380 bcm_field_entry_t entry, 381 int prio); 382 383 /* Invalidate HW FP entries that have not been replayed after warm boot. */ 384 extern int bcmx_field_resync(void); 385 386 /* Remove all qualifications from a field entry. */ 387 extern int bcmx_field_qualify_clear( 388 bcm_field_entry_t entry); 389 390 /* Add data field that the packet must match to trigger qualifier. */ 391 extern int bcmx_field_qualify_data( 392 bcm_field_entry_t eid, 393 int qual_id, 394 uint8 *data, 395 uint8 *mask, 396 uint16 length); 397 398 /* Remove match criteria from a field processor entry. */ 399 extern int bcmx_field_qualifier_delete( 400 bcm_field_entry_t entry, 401 bcm_field_qualify_t qual_id); 402 403 extern int bcmx_field_qualify_InPort( 404 bcm_field_entry_t entry, 405 bcmx_lport_t port); 406 407 extern int bcmx_field_qualify_OutPort( 408 bcm_field_entry_t entry, 409 bcmx_lport_t port); 410 411 extern int bcmx_field_qualify_InPorts( 412 bcm_field_entry_t entry, 413 bcmx_lplist_t lplist); 414 415 extern int bcmx_field_qualify_OutPorts( 416 bcm_field_entry_t entry, 417 bcmx_lplist_t lplist); 418 419 extern int bcmx_field_qualify_Drop( 420 bcm_field_entry_t entry, 421 uint8 data, 422 uint8 mask); 423 424 extern int bcmx_field_qualify_SrcPort( 425 bcm_field_entry_t entry, 426 bcmx_lport_t port); 427 428 extern int bcmx_field_qualify_SrcTrunk( 429 bcm_field_entry_t entry, 430 bcm_trunk_t tid); 431 432 extern int bcmx_field_qualify_DstPort( 433 bcm_field_entry_t entry, 434 bcmx_lport_t port); 435 436 extern int bcmx_field_qualify_DstTrunk( 437 bcm_field_entry_t entry, 438 bcm_trunk_t tid); 439 440 extern int bcmx_field_qualify_InnerL4SrcPort( 441 bcm_field_entry_t entry, 442 bcm_l4_port_t data, 443 bcm_l4_port_t mask); 444 445 extern int bcmx_field_qualify_InnerL4DstPort( 446 bcm_field_entry_t entry, 447 bcm_l4_port_t data, 448 bcm_l4_port_t mask); 449 450 extern int bcmx_field_qualify_L4SrcPort( 451 bcm_field_entry_t entry, 452 bcm_l4_port_t data, 453 bcm_l4_port_t mask); 454 455 extern int bcmx_field_qualify_L4DstPort( 456 bcm_field_entry_t entry, 457 bcm_l4_port_t data, 458 bcm_l4_port_t mask); 459 460 extern int bcmx_field_qualify_OuterVlan( 461 bcm_field_entry_t entry, 462 bcm_vlan_t data, 463 bcm_vlan_t mask); 464 465 /* 466 * Set match criteria for bcmFieldQualifyOuterVlanId 467 * qualifier in the field entry. 468 */ 469 extern int bcmx_field_qualify_OuterVlanId( 470 bcm_field_entry_t entry, 471 bcm_vlan_t data, 472 bcm_vlan_t mask); 473 474 /* 475 * Set match criteria for bcmFieldQualifyOuterVlanPri 476 * qualifier in the field entry. 477 */ 478 extern int bcmx_field_qualify_OuterVlanPri( 479 bcm_field_entry_t entry, 480 uint8 data, 481 uint8 mask); 482 483 /* 484 * Set match criteria for bcmFieldQualifyOuterVlanCfi 485 * qualifier in the field entry. 486 */ 487 extern int bcmx_field_qualify_OuterVlanCfi( 488 bcm_field_entry_t entry, 489 uint8 data, 490 uint8 mask); 491 492 extern int bcmx_field_qualify_InnerVlan( 493 bcm_field_entry_t entry, 494 bcm_vlan_t data, 495 bcm_vlan_t mask); 496 497 /* 498 * Set match criteria for bcmFieldQualifyInnerVlanId 499 * qualifier in the field entry. 500 */ 501 extern int bcmx_field_qualify_InnerVlanId( 502 bcm_field_entry_t entry, 503 bcm_vlan_t data, 504 bcm_vlan_t mask); 505 506 /* 507 * Set match criteria for bcmFieldQualifyInnerVlanPri 508 * qualifier in the field entry. 509 */ 510 extern int bcmx_field_qualify_InnerVlanPri( 511 bcm_field_entry_t entry, 512 uint8 data, 513 uint8 mask); 514 515 /* 516 * Set match criteria for bcmFieldQualifyInnerVlanCfi 517 * qualifier in the field entry. 518 */ 519 extern int bcmx_field_qualify_InnerVlanCfi( 520 bcm_field_entry_t entry, 521 uint8 data, 522 uint8 mask); 523 524 extern int bcmx_field_qualify_EtherType( 525 bcm_field_entry_t entry, 526 uint16 data, 527 uint16 mask); 528 529 /* Add loopback field qualification to a field entry. */ 530 extern int bcmx_field_qualify_Loopback( 531 bcm_field_entry_t entry, 532 uint8 data, 533 uint8 mask); 534 535 /* Add loopback type field qualification to a field entry. */ 536 extern int bcmx_field_qualify_LoopbackType( 537 bcm_field_entry_t entry, 538 bcm_field_LoopbackType_t loopback_type); 539 540 /* Add tunnel type field qualification to a field entry. */ 541 extern int bcmx_field_qualify_TunnelType( 542 bcm_field_entry_t entry, 543 bcm_field_TunnelType_t tunnel_type); 544 545 extern int bcmx_field_qualify_DstL3Egress( 546 bcm_field_entry_t entry, 547 bcm_if_t if_id); 548 549 extern int bcmx_field_qualify_DstMulticastGroup( 550 bcm_field_entry_t entry, 551 bcm_gport_t group); 552 553 extern int bcmx_field_qualify_SrcMplsGport( 554 bcm_field_entry_t entry, 555 bcm_gport_t mpls_port_id); 556 557 extern int bcmx_field_qualify_DstMplsGport( 558 bcm_field_entry_t entry, 559 bcm_gport_t mpls_port_id); 560 561 extern int bcmx_field_qualify_SrcMimGport( 562 bcm_field_entry_t entry, 563 bcm_gport_t mim_port_id); 564 565 extern int bcmx_field_qualify_DstMimGport( 566 bcm_field_entry_t entry, 567 bcm_gport_t mim_port_id); 568 569 extern int bcmx_field_qualify_SrcWlanGport( 570 bcm_field_entry_t entry, 571 bcm_gport_t wlan_port_id); 572 573 extern int bcmx_field_qualify_DstWlanGport( 574 bcm_field_entry_t entry, 575 bcm_gport_t wlan_port_id); 576 577 /* 578 * Set match criteria for bcmFieldQualifyIntPriority 579 * qualifier in the field entry. 580 */ 581 extern int bcmx_field_qualify_IntPriority( 582 bcm_field_entry_t entry, 583 uint8 data, 584 uint8 mask); 585 586 /* 587 * Set match criteria for bcmFieldQualifyForwardingVlanId 588 * qualifier in the field entry. 589 */ 590 extern int bcmx_field_qualify_ForwardingVlanId( 591 bcm_field_entry_t entry, 592 bcm_vlan_t data, 593 bcm_vlan_t mask); 594 595 /* 596 * Get match criteria for bcmFieldQualifyForwardingVlanId 597 * qualifier from the field entry. 598 */ 599 extern int bcmx_field_qualify_ForwardingVlanId_get( 600 bcm_field_entry_t entry, 601 bcm_vlan_t *data, 602 bcm_vlan_t *mask); 603 604 /* 605 * Set match criteria for bcmFieldQualifyVpn 606 * qualifier in the field entry. 607 */ 608 extern int bcmx_field_qualify_Vpn( 609 bcm_field_entry_t entry, 610 bcm_vpn_t data, 611 bcm_vpn_t mask); 612 613 /* 614 * Get match criteria for bcmFieldQualifyVpn 615 * qualifier from the field entry. 616 */ 617 extern int bcmx_field_qualify_Vpn_get( 618 bcm_field_entry_t entry, 619 bcm_vpn_t *data, 620 bcm_vpn_t *mask); 621 622 /* 623 * Set match criteria for bcmFieldQualifyColor 624 * qualifier in the field entry. 625 */ 626 extern int bcmx_field_qualify_Color( 627 bcm_field_entry_t entry, 628 uint8 color); 629 630 /* 631 * Set match criteria for bcmFieldQualifySrcModPortGport 632 * qualifier in the field entry. 633 */ 634 extern int bcmx_field_qualify_SrcModPortGport( 635 bcm_field_entry_t entry, 636 bcm_gport_t data); 637 638 /* 639 * Set match criteria for bcmFieldQualifySrcModuleGport 640 * qualifier in the field entry. 641 */ 642 extern int bcmx_field_qualify_SrcModuleGport( 643 bcm_field_entry_t entry, 644 bcm_gport_t data); 645 646 extern int bcmx_field_qualify_IpProtocol( 647 bcm_field_entry_t entry, 648 uint8 data, 649 uint8 mask); 650 651 extern int bcmx_field_qualify_IpInfo( 652 bcm_field_entry_t entry, 653 uint32 data, 654 uint32 mask); 655 656 extern int bcmx_field_qualify_PacketRes( 657 bcm_field_entry_t entry, 658 uint32 data, 659 uint32 mask); 660 661 extern int bcmx_field_qualify_SrcIp( 662 bcm_field_entry_t entry, 663 bcm_ip_t data, 664 bcm_ip_t mask); 665 666 extern int bcmx_field_qualify_DstIp( 667 bcm_field_entry_t entry, 668 bcm_ip_t data, 669 bcm_ip_t mask); 670 671 extern int bcmx_field_qualify_DSCP( 672 bcm_field_entry_t entry, 673 uint8 data, 674 uint8 mask); 675 676 extern int bcmx_field_qualify_Tos( 677 bcm_field_entry_t entry, 678 uint8 data, 679 uint8 mask); 680 681 extern int bcmx_field_qualify_IpFlags( 682 bcm_field_entry_t entry, 683 uint8 data, 684 uint8 mask); 685 686 extern int bcmx_field_qualify_TcpControl( 687 bcm_field_entry_t entry, 688 uint8 data, 689 uint8 mask); 690 691 extern int bcmx_field_qualify_TcpSequenceZero( 692 bcm_field_entry_t entry, 693 uint32 flag); 694 695 extern int bcmx_field_qualify_TcpHeaderSize( 696 bcm_field_entry_t entry, 697 uint8 data, 698 uint8 mask); 699 700 extern int bcmx_field_qualify_Ttl( 701 bcm_field_entry_t entry, 702 uint8 data, 703 uint8 mask); 704 705 extern int bcmx_field_qualify_RangeCheck( 706 bcm_field_entry_t entry, 707 int range, 708 int result); 709 710 extern int bcmx_field_qualify_SrcIp6( 711 bcm_field_entry_t entry, 712 bcm_ip6_t data, 713 bcm_ip6_t mask); 714 715 extern int bcmx_field_qualify_DstIp6( 716 bcm_field_entry_t entry, 717 bcm_ip6_t data, 718 bcm_ip6_t mask); 719 720 extern int bcmx_field_qualify_SrcIp6High( 721 bcm_field_entry_t entry, 722 bcm_ip6_t data, 723 bcm_ip6_t mask); 724 725 extern int bcmx_field_qualify_DstIp6High( 726 bcm_field_entry_t entry, 727 bcm_ip6_t data, 728 bcm_ip6_t mask); 729 730 extern int bcmx_field_qualify_DstIp6Low( 731 bcm_field_entry_t entry, 732 bcm_ip6_t data, 733 bcm_ip6_t mask); 734 735 extern int bcmx_field_qualify_SrcIp6Low( 736 bcm_field_entry_t entry, 737 bcm_ip6_t data, 738 bcm_ip6_t mask); 739 740 extern int bcmx_field_qualify_Ip6NextHeader( 741 bcm_field_entry_t entry, 742 uint8 data, 743 uint8 mask); 744 745 extern int bcmx_field_qualify_Ip6TrafficClass( 746 bcm_field_entry_t entry, 747 uint8 data, 748 uint8 mask); 749 750 extern int bcmx_field_qualify_InnerIp6FlowLabel( 751 bcm_field_entry_t entry, 752 uint32 data, 753 uint32 mask); 754 755 extern int bcmx_field_qualify_Ip6FlowLabel( 756 bcm_field_entry_t entry, 757 uint32 data, 758 uint32 mask); 759 760 extern int bcmx_field_qualify_Ip6HopLimit( 761 bcm_field_entry_t entry, 762 uint8 data, 763 uint8 mask); 764 765 extern int bcmx_field_qualify_SrcMac( 766 bcm_field_entry_t entry, 767 bcm_mac_t data, 768 bcm_mac_t mask); 769 770 extern int bcmx_field_qualify_DstMac( 771 bcm_field_entry_t entry, 772 bcm_mac_t data, 773 bcm_mac_t mask); 774 775 extern int bcmx_field_qualify_InnerIpType( 776 bcm_field_entry_t entry, 777 bcm_field_IpType_t type); 778 779 extern int bcmx_field_qualify_ForwardingType( 780 bcm_field_entry_t entry, 781 bcm_field_ForwardingType_t type); 782 783 extern int bcmx_field_qualify_IpType( 784 bcm_field_entry_t entry, 785 bcm_field_IpType_t type); 786 787 extern int bcmx_field_qualify_L2Format( 788 bcm_field_entry_t entry, 789 bcm_field_L2Format_t type); 790 791 extern int bcmx_field_qualify_VlanFormat( 792 bcm_field_entry_t entry, 793 uint8 data, 794 uint8 mask); 795 796 extern int bcmx_field_qualify_MHOpcode( 797 bcm_field_entry_t entry, 798 uint8 data, 799 uint8 mask); 800 801 extern int bcmx_field_qualify_Decap( 802 bcm_field_entry_t entry, 803 bcm_field_decap_t decap); 804 805 extern int bcmx_field_qualify_HiGig( 806 bcm_field_entry_t entry, 807 uint8 data, 808 uint8 mask); 809 810 /* Qualify on HiGig destination packets. */ 811 extern int bcmx_field_qualify_DstHiGig( 812 bcm_field_entry_t entry, 813 uint8 data, 814 uint8 mask); 815 816 extern int bcmx_field_qualify_InterfaceClassPort( 817 bcm_field_entry_t entry, 818 uint32 data, 819 uint32 mask); 820 821 extern int bcmx_field_qualify_InterfaceClassL2( 822 bcm_field_entry_t entry, 823 uint32 data, 824 uint32 mask); 825 826 extern int bcmx_field_qualify_InterfaceClassL3( 827 bcm_field_entry_t entry, 828 uint32 data, 829 uint32 mask); 830 831 extern int bcmx_field_qualify_SrcClassL2( 832 bcm_field_entry_t entry, 833 uint32 data, 834 uint32 mask); 835 836 extern int bcmx_field_qualify_SrcClassL3( 837 bcm_field_entry_t entry, 838 uint32 data, 839 uint32 mask); 840 841 extern int bcmx_field_qualify_SrcClassField( 842 bcm_field_entry_t entry, 843 uint32 data, 844 uint32 mask); 845 846 extern int bcmx_field_qualify_DstClassL2( 847 bcm_field_entry_t entry, 848 uint32 data, 849 uint32 mask); 850 851 extern int bcmx_field_qualify_DstClassL3( 852 bcm_field_entry_t entry, 853 uint32 data, 854 uint32 mask); 855 856 extern int bcmx_field_qualify_DstClassField( 857 bcm_field_entry_t entry, 858 uint32 data, 859 uint32 mask); 860 861 extern int bcmx_field_qualify_IpProtocolCommon( 862 bcm_field_entry_t entry, 863 bcm_field_IpProtocolCommon_t protocol); 864 865 extern int bcmx_field_qualify_InnerIpProtocolCommon( 866 bcm_field_entry_t entry, 867 bcm_field_IpProtocolCommon_t protocol); 868 869 extern int bcmx_field_qualify_Snap( 870 bcm_field_entry_t entry, 871 bcm_field_snap_header_t data, 872 bcm_field_snap_header_t mask); 873 874 extern int bcmx_field_qualify_Llc( 875 bcm_field_entry_t entry, 876 bcm_field_llc_header_t data, 877 bcm_field_llc_header_t mask); 878 879 extern int bcmx_field_qualify_InnerTpid( 880 bcm_field_entry_t entry, 881 uint16 tpid); 882 883 extern int bcmx_field_qualify_OuterTpid( 884 bcm_field_entry_t entry, 885 uint16 tpid); 886 887 extern int bcmx_field_qualify_L3Routable( 888 bcm_field_entry_t entry, 889 uint8 data, 890 uint8 mask); 891 892 extern int bcmx_field_qualify_IpFrag( 893 bcm_field_entry_t entry, 894 bcm_field_IpFrag_t frag_info); 895 896 extern int bcmx_field_qualify_Vrf( 897 bcm_field_entry_t entry, 898 uint32 data, 899 uint32 mask); 900 901 extern int bcmx_field_qualify_L3Ingress( 902 bcm_field_entry_t entry, 903 uint32 data, 904 uint32 mask); 905 906 extern int bcmx_field_qualify_ExtensionHeaderType( 907 bcm_field_entry_t entry, 908 uint8 data, 909 uint8 mask); 910 911 extern int bcmx_field_qualify_ExtensionHeaderSubCode( 912 bcm_field_entry_t entry, 913 uint8 data, 914 uint8 mask); 915 916 extern int bcmx_field_qualify_ExtensionHeader2Type( 917 bcm_field_entry_t entry, 918 uint8 data, 919 uint8 mask); 920 921 extern int bcmx_field_qualify_L4Ports( 922 bcm_field_entry_t entry, 923 uint8 data, 924 uint8 mask); 925 926 extern int bcmx_field_qualify_MirrorCopy( 927 bcm_field_entry_t entry, 928 uint8 data, 929 uint8 mask); 930 931 extern int bcmx_field_qualify_TunnelTerminated( 932 bcm_field_entry_t entry, 933 uint8 data, 934 uint8 mask); 935 936 extern int bcmx_field_qualify_MplsTerminated( 937 bcm_field_entry_t entry, 938 uint8 data, 939 uint8 mask); 940 941 extern int bcmx_field_qualify_InnerSrcIp( 942 bcm_field_entry_t entry, 943 bcm_ip_t data, 944 bcm_ip_t mask); 945 946 extern int bcmx_field_qualify_InnerDstIp( 947 bcm_field_entry_t entry, 948 bcm_ip_t data, 949 bcm_ip_t mask); 950 951 extern int bcmx_field_qualify_InnerSrcIp6( 952 bcm_field_entry_t entry, 953 bcm_ip6_t data, 954 bcm_ip6_t mask); 955 956 extern int bcmx_field_qualify_InnerDstIp6( 957 bcm_field_entry_t entry, 958 bcm_ip6_t data, 959 bcm_ip6_t mask); 960 961 extern int bcmx_field_qualify_InnerSrcIp6High( 962 bcm_field_entry_t entry, 963 bcm_ip6_t data, 964 bcm_ip6_t mask); 965 966 extern int bcmx_field_qualify_InnerDstIp6High( 967 bcm_field_entry_t entry, 968 bcm_ip6_t data, 969 bcm_ip6_t mask); 970 971 extern int bcmx_field_qualify_InnerTtl( 972 bcm_field_entry_t entry, 973 uint8 data, 974 uint8 mask); 975 976 extern int bcmx_field_qualify_InnerTos( 977 bcm_field_entry_t entry, 978 uint8 data, 979 uint8 mask); 980 981 extern int bcmx_field_qualify_InnerDSCP( 982 bcm_field_entry_t entry, 983 uint8 data, 984 uint8 mask); 985 986 extern int bcmx_field_qualify_InnerIpProtocol( 987 bcm_field_entry_t entry, 988 uint8 data, 989 uint8 mask); 990 991 extern int bcmx_field_qualify_InnerIpFrag( 992 bcm_field_entry_t entry, 993 bcm_field_IpFrag_t frag_info); 994 995 extern int bcmx_field_qualify_DosAttack( 996 bcm_field_entry_t entry, 997 uint8 data, 998 uint8 mask); 999 1000 extern int bcmx_field_qualify_IpmcStarGroupHit( 1001 bcm_field_entry_t entry, 1002 uint8 data, 1003 uint8 mask); 1004 1005 extern int bcmx_field_qualify_MyStationHit( 1006 bcm_field_entry_t entry, 1007 uint8 data, 1008 uint8 mask); 1009 1010 extern int bcmx_field_qualify_L2PayloadFirstEightBytes( 1011 bcm_field_entry_t entry, 1012 uint32 data1, 1013 uint32 data2, 1014 uint32 mask1, 1015 uint32 mask2); 1016 1017 extern int bcmx_field_qualify_L3DestRouteHit( 1018 bcm_field_entry_t entry, 1019 uint8 data, 1020 uint8 mask); 1021 1022 extern int bcmx_field_qualify_L3DestHostHit( 1023 bcm_field_entry_t entry, 1024 uint8 data, 1025 uint8 mask); 1026 1027 extern int bcmx_field_qualify_L3SrcHostHit( 1028 bcm_field_entry_t entry, 1029 uint8 data, 1030 uint8 mask); 1031 1032 extern int bcmx_field_qualify_L2CacheHit( 1033 bcm_field_entry_t entry, 1034 uint8 data, 1035 uint8 mask); 1036 1037 extern int bcmx_field_qualify_L2StationMove( 1038 bcm_field_entry_t entry, 1039 uint8 data, 1040 uint8 mask); 1041 1042 extern int bcmx_field_qualify_L2DestHit( 1043 bcm_field_entry_t entry, 1044 uint8 data, 1045 uint8 mask); 1046 1047 extern int bcmx_field_qualify_L2SrcStatic( 1048 bcm_field_entry_t entry, 1049 uint8 data, 1050 uint8 mask); 1051 1052 extern int bcmx_field_qualify_L2SrcHit( 1053 bcm_field_entry_t entry, 1054 uint8 data, 1055 uint8 mask); 1056 1057 extern int bcmx_field_qualify_IngressStpState( 1058 bcm_field_entry_t entry, 1059 uint8 data, 1060 uint8 mask); 1061 1062 extern int bcmx_field_qualify_ForwardingVlanValid( 1063 bcm_field_entry_t entry, 1064 uint8 data, 1065 uint8 mask); 1066 1067 extern int bcmx_field_qualify_SrcVirtualPortValid( 1068 bcm_field_entry_t entry, 1069 uint8 data, 1070 uint8 mask); 1071 1072 extern int bcmx_field_qualify_VlanTranslationHit( 1073 bcm_field_entry_t entry, 1074 uint8 data, 1075 uint8 mask); 1076 1077 extern int bcmx_field_qualify_TranslatedVlanFormat( 1078 bcm_field_entry_t entry, 1079 uint8 data, 1080 uint8 mask); 1081 1082 extern int bcmx_field_qualify_FibreChanOuter( 1083 bcm_field_entry_t entry, 1084 bcm_field_FibreChan_t fibre_chan_type); 1085 1086 extern int bcmx_field_qualify_FibreChanInner( 1087 bcm_field_entry_t entry, 1088 bcm_field_FibreChan_t fibre_chan_type); 1089 1090 extern int bcmx_field_qualify_VnTag( 1091 bcm_field_entry_t entry, 1092 uint32 data, 1093 uint32 mask); 1094 1095 extern int bcmx_field_qualify_CnTag( 1096 bcm_field_entry_t entry, 1097 uint32 data, 1098 uint32 mask); 1099 1100 extern int bcmx_field_qualify_FabricQueueTag( 1101 bcm_field_entry_t entry, 1102 uint32 data, 1103 uint32 mask); 1104 1105 extern int bcmx_field_qualify_DstMultipath( 1106 bcm_field_entry_t entry, 1107 bcm_if_t mpintf); 1108 1109 extern int bcmx_field_qualify_IntPriority_get( 1110 bcm_field_entry_t entry, 1111 uint8 *data, 1112 uint8 *mask); 1113 1114 extern int bcmx_field_qualify_Color_get( 1115 bcm_field_entry_t entry, 1116 uint8 *color); 1117 1118 extern int bcmx_field_qualify_SrcModPortGport_get( 1119 bcm_field_entry_t entry, 1120 bcm_gport_t *data); 1121 1122 extern int bcmx_field_qualify_SrcModuleGport_get( 1123 bcm_field_entry_t entry, 1124 bcm_gport_t *data); 1125 1126 extern int bcmx_field_qualify_LoopbackType_get( 1127 bcm_field_entry_t entry, 1128 bcm_field_LoopbackType_t *loopback_type); 1129 1130 extern int bcmx_field_qualify_TunnelType_get( 1131 bcm_field_entry_t entry, 1132 bcm_field_TunnelType_t *tunnel_type); 1133 1134 extern int bcmx_field_qualify_DstL3Egress_get( 1135 bcm_field_entry_t entry, 1136 bcm_if_t *if_id); 1137 1138 extern int bcmx_field_qualify_DstMulticastGroup_get( 1139 bcm_field_entry_t entry, 1140 bcm_gport_t *group); 1141 1142 extern int bcmx_field_qualify_SrcMplsGport_get( 1143 bcm_field_entry_t entry, 1144 bcm_gport_t *mpls_port_id); 1145 1146 extern int bcmx_field_qualify_DstMplsGport_get( 1147 bcm_field_entry_t entry, 1148 bcm_gport_t *mpls_port_id); 1149 1150 extern int bcmx_field_qualify_SrcMimGport_get( 1151 bcm_field_entry_t entry, 1152 bcm_gport_t *mim_port_id); 1153 1154 extern int bcmx_field_qualify_DstMimGport_get( 1155 bcm_field_entry_t entry, 1156 bcm_gport_t *mim_port_id); 1157 1158 extern int bcmx_field_qualify_SrcWlanGport_get( 1159 bcm_field_entry_t entry, 1160 bcm_gport_t *wlan_port_id); 1161 1162 extern int bcmx_field_qualify_DstWlanGport_get( 1163 bcm_field_entry_t entry, 1164 bcm_gport_t *wlan_port_id); 1165 1166 extern int bcmx_field_qualify_Loopback_get( 1167 bcm_field_entry_t entry, 1168 uint8 *data, 1169 uint8 *mask); 1170 1171 extern int bcmx_field_qualify_InPort_get( 1172 bcm_field_entry_t entry, 1173 bcm_port_t *data, 1174 bcm_port_t *mask); 1175 1176 extern int bcmx_field_qualify_OutPort_get( 1177 bcm_field_entry_t entry, 1178 bcm_port_t *data, 1179 bcm_port_t *mask); 1180 1181 extern int bcmx_field_qualify_InPorts_get( 1182 bcm_field_entry_t entry, 1183 bcm_pbmp_t *data, 1184 bcm_pbmp_t *mask); 1185 1186 extern int bcmx_field_qualify_OutPorts_get( 1187 bcm_field_entry_t entry, 1188 bcm_pbmp_t *data, 1189 bcm_pbmp_t *mask); 1190 1191 extern int bcmx_field_qualify_Drop_get( 1192 bcm_field_entry_t entry, 1193 uint8 *data, 1194 uint8 *mask); 1195 1196 extern int bcmx_field_qualify_SrcPort_get( 1197 bcm_field_entry_t entry, 1198 bcm_module_t *data_modid, 1199 bcm_module_t *mask_modid, 1200 bcm_port_t *data_port, 1201 bcm_port_t *mask_port); 1202 1203 extern int bcmx_field_qualify_SrcTrunk_get( 1204 bcm_field_entry_t entry, 1205 bcm_trunk_t *data, 1206 bcm_trunk_t *mask); 1207 1208 extern int bcmx_field_qualify_DstPort_get( 1209 bcm_field_entry_t entry, 1210 bcm_module_t *data_modid, 1211 bcm_module_t *mask_modid, 1212 bcm_port_t *data_port, 1213 bcm_port_t *mask_port); 1214 1215 extern int bcmx_field_qualify_DstTrunk_get( 1216 bcm_field_entry_t entry, 1217 bcm_trunk_t *data, 1218 bcm_trunk_t *mask); 1219 1220 extern int bcmx_field_qualify_InnerL4SrcPort_get( 1221 bcm_field_entry_t entry, 1222 bcm_l4_port_t *data, 1223 bcm_l4_port_t *mask); 1224 1225 extern int bcmx_field_qualify_InnerL4DstPort_get( 1226 bcm_field_entry_t entry, 1227 bcm_l4_port_t *data, 1228 bcm_l4_port_t *mask); 1229 1230 extern int bcmx_field_qualify_L4SrcPort_get( 1231 bcm_field_entry_t entry, 1232 bcm_l4_port_t *data, 1233 bcm_l4_port_t *mask); 1234 1235 extern int bcmx_field_qualify_L4DstPort_get( 1236 bcm_field_entry_t entry, 1237 bcm_l4_port_t *data, 1238 bcm_l4_port_t *mask); 1239 1240 extern int bcmx_field_qualify_OuterVlan_get( 1241 bcm_field_entry_t entry, 1242 bcm_vlan_t *data, 1243 bcm_vlan_t *mask); 1244 1245 extern int bcmx_field_qualify_OuterVlanId_get( 1246 bcm_field_entry_t entry, 1247 bcm_vlan_t *data, 1248 bcm_vlan_t *mask); 1249 1250 /* 1251 * Get match criteria for bcmFieldQualifyOuterVlanPri 1252 * qualifier from the field entry. 1253 */ 1254 extern int bcmx_field_qualify_OuterVlanPri_get( 1255 bcm_field_entry_t entry, 1256 uint8 *data, 1257 uint8 *mask); 1258 1259 /* 1260 * Get match criteria for bcmFieldQualifyOuterVlanCfi_get 1261 * qualifier from the field entry. 1262 */ 1263 extern int bcmx_field_qualify_OuterVlanCfi_get( 1264 bcm_field_entry_t entry, 1265 uint8 *data, 1266 uint8 *mask); 1267 1268 /* 1269 * Get match criteria for bcmFieldQualifyInnerVlan 1270 * qualifier from the field entry. 1271 */ 1272 extern int bcmx_field_qualify_InnerVlan_get( 1273 bcm_field_entry_t entry, 1274 bcm_vlan_t *data, 1275 bcm_vlan_t *mask); 1276 1277 /* 1278 * Get match criteria for bcmFieldQualifyInnerVlanId 1279 * qualifier from the field entry. 1280 */ 1281 extern int bcmx_field_qualify_InnerVlanId_get( 1282 bcm_field_entry_t entry, 1283 bcm_vlan_t *data, 1284 bcm_vlan_t *mask); 1285 1286 /* 1287 * Get match criteria for bcmFieldQualifyInnerVlanPri 1288 * qualifier from the field entry. 1289 */ 1290 extern int bcmx_field_qualify_InnerVlanPri_get( 1291 bcm_field_entry_t entry, 1292 uint8 *data, 1293 uint8 *mask); 1294 1295 /* 1296 * Get match criteria for bcmFieldQualifyInnerVlanCfi_get 1297 * qualifier from the field entry. 1298 */ 1299 extern int bcmx_field_qualify_InnerVlanCfi_get( 1300 bcm_field_entry_t entry, 1301 uint8 *data, 1302 uint8 *mask); 1303 1304 /* 1305 * Get match criteria for bcmFieldQualifyEtherType 1306 * qualifier from the field entry. 1307 */ 1308 extern int bcmx_field_qualify_EtherType_get( 1309 bcm_field_entry_t entry, 1310 uint16 *data, 1311 uint16 *mask); 1312 1313 /* 1314 * Get match criteria for bcmFieldQualifyIpProtocol 1315 * qualifier from the field entry. 1316 */ 1317 extern int bcmx_field_qualify_IpProtocol_get( 1318 bcm_field_entry_t entry, 1319 uint8 *data, 1320 uint8 *mask); 1321 1322 /* 1323 * Get match criteria for bcmFieldQualifyIpInfo 1324 * qualifier from the field entry. 1325 */ 1326 extern int bcmx_field_qualify_IpInfo_get( 1327 bcm_field_entry_t entry, 1328 uint32 *data, 1329 uint32 *mask); 1330 1331 /* 1332 * Get match criteria for bcmFieldQualifyPacketRes 1333 * qualifier from the field entry. 1334 */ 1335 extern int bcmx_field_qualify_PacketRes_get( 1336 bcm_field_entry_t entry, 1337 uint32 *data, 1338 uint32 *mask); 1339 1340 /* 1341 * Get match criteria for bcmFieldQualifySrcIp 1342 * qualifier from the field entry. 1343 */ 1344 extern int bcmx_field_qualify_SrcIp_get( 1345 bcm_field_entry_t entry, 1346 bcm_ip_t *data, 1347 bcm_ip_t *mask); 1348 1349 /* 1350 * Get match criteria for bcmFieldQualifyDstIp 1351 * qualifier from the field entry. 1352 */ 1353 extern int bcmx_field_qualify_DstIp_get( 1354 bcm_field_entry_t entry, 1355 bcm_ip_t *data, 1356 bcm_ip_t *mask); 1357 1358 /* 1359 * Get match criteria for bcmFieldQualifyDSCP 1360 * qualifier from the field entry. 1361 */ 1362 extern int bcmx_field_qualify_DSCP_get( 1363 bcm_field_entry_t entry, 1364 uint8 *data, 1365 uint8 *mask); 1366 1367 extern int bcmx_field_qualify_Tos_get( 1368 bcm_field_entry_t entry, 1369 uint8 *data, 1370 uint8 *mask); 1371 1372 /* 1373 * Get match criteria for bcmFieldQualifyIpFlags 1374 * qualifier from the field entry. 1375 */ 1376 extern int bcmx_field_qualify_IpFlags_get( 1377 bcm_field_entry_t entry, 1378 uint8 *data, 1379 uint8 *mask); 1380 1381 /* 1382 * Get match criteria for bcmFieldQualifyTcpControl 1383 * qualifier from the field entry. 1384 */ 1385 extern int bcmx_field_qualify_TcpControl_get( 1386 bcm_field_entry_t entry, 1387 uint8 *data, 1388 uint8 *mask); 1389 1390 /* 1391 * Get match criteria for bcmFieldQualifyTcpSequenceZero 1392 * qualifier from the field entry. 1393 */ 1394 extern int bcmx_field_qualify_TcpSequenceZero_get( 1395 bcm_field_entry_t entry, 1396 uint32 *flag); 1397 1398 /* 1399 * Get match criteria for bcmFieldQualifyTcpHeaderSize 1400 * qualifier from the field entry. 1401 */ 1402 extern int bcmx_field_qualify_TcpHeaderSize_get( 1403 bcm_field_entry_t entry, 1404 uint8 *data, 1405 uint8 *mask); 1406 1407 /* 1408 * Get match criteria for bcmFieldQualifyTtl 1409 * qualifier from the field entry. 1410 */ 1411 extern int bcmx_field_qualify_Ttl_get( 1412 bcm_field_entry_t entry, 1413 uint8 *data, 1414 uint8 *mask); 1415 1416 /* 1417 * Get match criteria for bcmFieldQualifyRangeCheck 1418 * qualifier from the field entry. 1419 */ 1420 extern int bcmx_field_qualify_RangeCheck_get( 1421 bcm_field_entry_t entry, 1422 int max_count, 1423 bcm_field_range_t *range, 1424 int *invert, 1425 int *count); 1426 1427 /* 1428 * Get match criteria for bcmFieldQualifySrcIp6 1429 * qualifier from the field entry. 1430 */ 1431 extern int bcmx_field_qualify_SrcIp6_get( 1432 bcm_field_entry_t entry, 1433 bcm_ip6_t *data, 1434 bcm_ip6_t *mask); 1435 1436 /* 1437 * Get match criteria for bcmFieldQualifyDstIp6 1438 * qualifier from the field entry. 1439 */ 1440 extern int bcmx_field_qualify_DstIp6_get( 1441 bcm_field_entry_t entry, 1442 bcm_ip6_t *data, 1443 bcm_ip6_t *mask); 1444 1445 /* 1446 * Get match criteria for bcmFieldQualifySrcIp6High 1447 * qualifier from the field entry. 1448 */ 1449 extern int bcmx_field_qualify_SrcIp6High_get( 1450 bcm_field_entry_t entry, 1451 bcm_ip6_t *data, 1452 bcm_ip6_t *mask); 1453 1454 /* 1455 * Get match criteria for bcmFieldQualifyDstIp6High 1456 * qualifier from the field entry. 1457 */ 1458 extern int bcmx_field_qualify_DstIp6High_get( 1459 bcm_field_entry_t entry, 1460 bcm_ip6_t *data, 1461 bcm_ip6_t *mask); 1462 1463 /* 1464 * Get match criteria for bcmFieldQualifyDstIp6Low 1465 * qualifier from the field entry. 1466 */ 1467 extern int bcmx_field_qualify_DstIp6Low_get( 1468 bcm_field_entry_t entry, 1469 bcm_ip6_t *data, 1470 bcm_ip6_t *mask); 1471 1472 /* 1473 * Get match criteria for bcmFieldQualifySrcIp6Low 1474 * qualifier from the field entry. 1475 */ 1476 extern int bcmx_field_qualify_SrcIp6Low_get( 1477 bcm_field_entry_t entry, 1478 bcm_ip6_t *data, 1479 bcm_ip6_t *mask); 1480 1481 /* 1482 * Get match criteria for bcmFieldQualifyIp6NextHeader 1483 * qualifier from the field entry. 1484 */ 1485 extern int bcmx_field_qualify_Ip6NextHeader_get( 1486 bcm_field_entry_t entry, 1487 uint8 *data, 1488 uint8 *mask); 1489 1490 /* 1491 * Get match criteria for bcmFieldQualifyIp6TrafficClass 1492 * qualifier from the field entry. 1493 */ 1494 extern int bcmx_field_qualify_Ip6TrafficClass_get( 1495 bcm_field_entry_t entry, 1496 uint8 *data, 1497 uint8 *mask); 1498 1499 /* 1500 * Get match criteria for bcmFieldQualifyInnerIp6FlowLabel 1501 * qualifier from the field entry. 1502 */ 1503 extern int bcmx_field_qualify_InnerIp6FlowLabel_get( 1504 bcm_field_entry_t entry, 1505 uint32 *data, 1506 uint32 *mask); 1507 1508 /* 1509 * Get match criteria for bcmFieldQualifyIp6FlowLabel 1510 * qualifier from the field entry. 1511 */ 1512 extern int bcmx_field_qualify_Ip6FlowLabel_get( 1513 bcm_field_entry_t entry, 1514 uint32 *data, 1515 uint32 *mask); 1516 1517 /* 1518 * Get match criteria for bcmFieldQualifyIp6HopLimit 1519 * qualifier from the field entry. 1520 */ 1521 extern int bcmx_field_qualify_Ip6HopLimit_get( 1522 bcm_field_entry_t entry, 1523 uint8 *data, 1524 uint8 *mask); 1525 1526 /* 1527 * Get match criteria for bcmFieldQualifySrcMac 1528 * qualifier from the field entry. 1529 */ 1530 extern int bcmx_field_qualify_SrcMac_get( 1531 bcm_field_entry_t entry, 1532 bcm_mac_t *data, 1533 bcm_mac_t *mask); 1534 1535 /* 1536 * Get match criteria for bcmFieldQualifyDstMac 1537 * qualifier from the field entry. 1538 */ 1539 extern int bcmx_field_qualify_DstMac_get( 1540 bcm_field_entry_t entry, 1541 bcm_mac_t *data, 1542 bcm_mac_t *mask); 1543 1544 /* 1545 * Get match criteria for bcmFieldQualifyInnerIpType 1546 * qualifier from the field entry. 1547 */ 1548 extern int bcmx_field_qualify_InnerIpType_get( 1549 bcm_field_entry_t entry, 1550 bcm_field_IpType_t *type); 1551 1552 /* 1553 * Get match criteria for bcmFieldQualifyForwardingType 1554 * qualifier from the field entry. 1555 */ 1556 extern int bcmx_field_qualify_ForwardingType_get( 1557 bcm_field_entry_t entry, 1558 bcm_field_ForwardingType_t *type); 1559 1560 /* 1561 * Get match criteria for bcmFieldQualifyIpType 1562 * qualifier from the field entry. 1563 */ 1564 extern int bcmx_field_qualify_IpType_get( 1565 bcm_field_entry_t entry, 1566 bcm_field_IpType_t *type); 1567 1568 /* 1569 * Get match criteria for bcmFieldQualifyL2Format 1570 * qualifier from the field entry. 1571 */ 1572 extern int bcmx_field_qualify_L2Format_get( 1573 bcm_field_entry_t entry, 1574 bcm_field_L2Format_t *type); 1575 1576 /* 1577 * Get match criteria for bcmFieldQualifyTranslatedVlanFormat 1578 * qualifier from the field entry. 1579 */ 1580 extern int bcmx_field_qualify_TranslatedVlanFormat_get( 1581 bcm_field_entry_t entry, 1582 uint8 *data, 1583 uint8 *mask); 1584 1585 /* 1586 * Get match criteria for bcmFieldQualifyVlanFormat 1587 * qualifier from the field entry. 1588 */ 1589 extern int bcmx_field_qualify_VlanFormat_get( 1590 bcm_field_entry_t entry, 1591 uint8 *data, 1592 uint8 *mask); 1593 1594 /* 1595 * Get match criteria for bcmFieldQualifyMHOpcode 1596 * qualifier from the field entry. 1597 */ 1598 extern int bcmx_field_qualify_MHOpcode_get( 1599 bcm_field_entry_t entry, 1600 uint8 *data, 1601 uint8 *mask); 1602 1603 /* 1604 * Get match criteria for bcmFieldQualifyDstHiGig 1605 * qualifier from the field entry. 1606 */ 1607 extern int bcmx_field_qualify_DstHiGig_get( 1608 bcm_field_entry_t entry, 1609 uint8 *data, 1610 uint8 *mask); 1611 1612 /* 1613 * Get match criteria for bcmFieldQualifyHiGig 1614 * qualifier from the field entry. 1615 */ 1616 extern int bcmx_field_qualify_HiGig_get( 1617 bcm_field_entry_t entry, 1618 uint8 *data, 1619 uint8 *mask); 1620 1621 /* 1622 * Get match criteria for bcmFieldQualifyInterfaceClassPort 1623 * qualifier from the field entry. 1624 */ 1625 extern int bcmx_field_qualify_InterfaceClassPort_get( 1626 bcm_field_entry_t entry, 1627 uint32 *data, 1628 uint32 *mask); 1629 1630 /* 1631 * Get match criteria for bcmFieldQualifyInterfaceClassL2 1632 * qualifier from the field entry. 1633 */ 1634 extern int bcmx_field_qualify_InterfaceClassL2_get( 1635 bcm_field_entry_t entry, 1636 uint32 *data, 1637 uint32 *mask); 1638 1639 /* 1640 * Get match criteria for bcmFieldQualifyInterfaceClassL3 1641 * qualifier from the field entry. 1642 */ 1643 extern int bcmx_field_qualify_InterfaceClassL3_get( 1644 bcm_field_entry_t entry, 1645 uint32 *data, 1646 uint32 *mask); 1647 1648 /* 1649 * Get match criteria for bcmFieldQualifySrcClassL2 1650 * qualifier from the field entry. 1651 */ 1652 extern int bcmx_field_qualify_SrcClassL2_get( 1653 bcm_field_entry_t entry, 1654 uint32 *data, 1655 uint32 *mask); 1656 1657 /* 1658 * Get match criteria for bcmFieldQualifySrcClassL3 1659 * qualifier from the field entry. 1660 */ 1661 extern int bcmx_field_qualify_SrcClassL3_get( 1662 bcm_field_entry_t entry, 1663 uint32 *data, 1664 uint32 *mask); 1665 1666 /* 1667 * Get match criteria for bcmFieldQualifySrcClassField 1668 * qualifier from the field entry. 1669 */ 1670 extern int bcmx_field_qualify_SrcClassField_get( 1671 bcm_field_entry_t entry, 1672 uint32 *data, 1673 uint32 *mask); 1674 1675 /* 1676 * Get match criteria for bcmFieldQualifyDstClassL2 1677 * qualifier from the field entry. 1678 */ 1679 extern int bcmx_field_qualify_DstClassL2_get( 1680 bcm_field_entry_t entry, 1681 uint32 *data, 1682 uint32 *mask); 1683 1684 /* 1685 * Get match criteria for bcmFieldQualifyDstClassL3 1686 * qualifier from the field entry. 1687 */ 1688 extern int bcmx_field_qualify_DstClassL3_get( 1689 bcm_field_entry_t entry, 1690 uint32 *data, 1691 uint32 *mask); 1692 1693 /* 1694 * Get match criteria for bcmFieldQualifyDstClassField 1695 * qualifier from the field entry. 1696 */ 1697 extern int bcmx_field_qualify_DstClassField_get( 1698 bcm_field_entry_t entry, 1699 uint32 *data, 1700 uint32 *mask); 1701 1702 /* 1703 * Get match criteria for bcmFieldQualifyIpProtocolCommon 1704 * qualifier from the field entry. 1705 */ 1706 extern int bcmx_field_qualify_IpProtocolCommon_get( 1707 bcm_field_entry_t entry, 1708 bcm_field_IpProtocolCommon_t *protocol); 1709 1710 /* 1711 * Get match criteria for bcmFieldQualifyInnerIpProtocolCommon 1712 * qualifier from the field entry. 1713 */ 1714 extern int bcmx_field_qualify_InnerIpProtocolCommon_get( 1715 bcm_field_entry_t entry, 1716 bcm_field_IpProtocolCommon_t *protocol); 1717 1718 /* 1719 * Get match criteria for bcmFieldQualifySnap 1720 * qualifier from the field entry. 1721 */ 1722 extern int bcmx_field_qualify_Snap_get( 1723 bcm_field_entry_t entry, 1724 bcm_field_snap_header_t *data, 1725 bcm_field_snap_header_t *mask); 1726 1727 /* 1728 * Get match criteria for bcmFieldQualifyLlc 1729 * qualifier from the field entry. 1730 */ 1731 extern int bcmx_field_qualify_Llc_get( 1732 bcm_field_entry_t entry, 1733 bcm_field_llc_header_t *data, 1734 bcm_field_llc_header_t *mask); 1735 1736 /* 1737 * Get match criteria for bcmFieldQualifyInnerTpid 1738 * qualifier from the field entry. 1739 */ 1740 extern int bcmx_field_qualify_InnerTpid_get( 1741 bcm_field_entry_t entry, 1742 uint16 *tpid); 1743 1744 /* 1745 * Get match criteria for bcmFieldQualifyOuterTpid 1746 * qualifier from the field entry. 1747 */ 1748 extern int bcmx_field_qualify_OuterTpid_get( 1749 bcm_field_entry_t entry, 1750 uint16 *tpid); 1751 1752 /* 1753 * Get match criteria for bcmFieldQualifyL3Routable 1754 * qualifier from the field entry. 1755 */ 1756 extern int bcmx_field_qualify_L3Routable_get( 1757 bcm_field_entry_t entry, 1758 uint8 *data, 1759 uint8 *mask); 1760 1761 /* 1762 * Get match criteria for bcmFieldQualifyIpFrag 1763 * qualifier from the field entry. 1764 */ 1765 extern int bcmx_field_qualify_IpFrag_get( 1766 bcm_field_entry_t entry, 1767 bcm_field_IpFrag_t *frag_info); 1768 1769 /* 1770 * Get match criteria for bcmFieldQualifyVrf 1771 * qualifier from the field entry. 1772 */ 1773 extern int bcmx_field_qualify_Vrf_get( 1774 bcm_field_entry_t entry, 1775 uint32 *data, 1776 uint32 *mask); 1777 1778 /* 1779 * Get match criteria for bcmFieldQualifyL3Ingress 1780 * qualifier from the field entry. 1781 */ 1782 extern int bcmx_field_qualify_L3Ingress_get( 1783 bcm_field_entry_t entry, 1784 uint32 *data, 1785 uint32 *mask); 1786 1787 /* 1788 * Get match criteria for bcmFieldQualifyExtensionHeaderType 1789 * qualifier from the field entry. 1790 */ 1791 extern int bcmx_field_qualify_ExtensionHeaderType_get( 1792 bcm_field_entry_t entry, 1793 uint8 *data, 1794 uint8 *mask); 1795 1796 /* 1797 * Get match criteria for bcmFieldQualifyExtensionHeaderSubCode 1798 * qualifier from the field entry. 1799 */ 1800 extern int bcmx_field_qualify_ExtensionHeaderSubCode_get( 1801 bcm_field_entry_t entry, 1802 uint8 *data, 1803 uint8 *mask); 1804 1805 extern int bcmx_field_qualify_ExtensionHeader2Type_get( 1806 bcm_field_entry_t entry, 1807 uint8 *data, 1808 uint8 *mask); 1809 1810 /* 1811 * Get match criteria for bcmFieldQualifyL4Ports 1812 * qualifier from the field entry. 1813 */ 1814 extern int bcmx_field_qualify_L4Ports_get( 1815 bcm_field_entry_t entry, 1816 uint8 *data, 1817 uint8 *mask); 1818 1819 /* 1820 * Get match criteria for bcmFieldQualifyMirrorCopy 1821 * qualifier from the field entry. 1822 */ 1823 extern int bcmx_field_qualify_MirrorCopy_get( 1824 bcm_field_entry_t entry, 1825 uint8 *data, 1826 uint8 *mask); 1827 1828 /* 1829 * Get match criteria for bcmFieldQualifyTunnelTerminated 1830 * qualifier from the field entry. 1831 */ 1832 extern int bcmx_field_qualify_TunnelTerminated_get( 1833 bcm_field_entry_t entry, 1834 uint8 *data, 1835 uint8 *mask); 1836 1837 /* 1838 * Get match criteria for bcmFieldQualifyMplsTerminated 1839 * qualifier from the field entry. 1840 */ 1841 extern int bcmx_field_qualify_MplsTerminated_get( 1842 bcm_field_entry_t entry, 1843 uint8 *data, 1844 uint8 *mask); 1845 1846 /* 1847 * Get match criteria for bcmFieldQualifyInnerSrcIp 1848 * qualifier from the field entry. 1849 */ 1850 extern int bcmx_field_qualify_InnerSrcIp_get( 1851 bcm_field_entry_t entry, 1852 bcm_ip_t *data, 1853 bcm_ip_t *mask); 1854 1855 /* 1856 * Get match criteria for bcmFieldQualifyInnerDstIp 1857 * qualifier from the field entry. 1858 */ 1859 extern int bcmx_field_qualify_InnerDstIp_get( 1860 bcm_field_entry_t entry, 1861 bcm_ip_t *data, 1862 bcm_ip_t *mask); 1863 1864 /* 1865 * Get match criteria for bcmFieldQualifyInnerSrcIp6 1866 * qualifier from the field entry. 1867 */ 1868 extern int bcmx_field_qualify_InnerSrcIp6_get( 1869 bcm_field_entry_t entry, 1870 bcm_ip6_t *data, 1871 bcm_ip6_t *mask); 1872 1873 /* 1874 * Get match criteria for bcmFieldQualifyInnerDstIp6 1875 * qualifier from the field entry. 1876 */ 1877 extern int bcmx_field_qualify_InnerDstIp6_get( 1878 bcm_field_entry_t entry, 1879 bcm_ip6_t *data, 1880 bcm_ip6_t *mask); 1881 1882 /* 1883 * Get match criteria for bcmFieldQualifyInnerSrcIp6High 1884 * qualifier from the field entry. 1885 */ 1886 extern int bcmx_field_qualify_InnerSrcIp6High_get( 1887 bcm_field_entry_t entry, 1888 bcm_ip6_t *data, 1889 bcm_ip6_t *mask); 1890 1891 /* 1892 * Get match criteria for bcmFieldQualifyInnerDstIp6High 1893 * qualifier from the field entry. 1894 */ 1895 extern int bcmx_field_qualify_InnerDstIp6High_get( 1896 bcm_field_entry_t entry, 1897 bcm_ip6_t *data, 1898 bcm_ip6_t *mask); 1899 1900 /* 1901 * Get match criteria for bcmFieldQualifyInnerTtl 1902 * qualifier from the field entry. 1903 */ 1904 extern int bcmx_field_qualify_InnerTtl_get( 1905 bcm_field_entry_t entry, 1906 uint8 *data, 1907 uint8 *mask); 1908 1909 extern int bcmx_field_qualify_InnerTos_get( 1910 bcm_field_entry_t entry, 1911 uint8 *data, 1912 uint8 *mask); 1913 1914 /* 1915 * Get match criteria for bcmFieldQualifyInnerDSCP 1916 * qualifier from the field entry. 1917 */ 1918 extern int bcmx_field_qualify_InnerDSCP_get( 1919 bcm_field_entry_t entry, 1920 uint8 *data, 1921 uint8 *mask); 1922 1923 /* 1924 * Get match criteria for bcmFieldQualifyInnerIpProtocol 1925 * qualifier from the field entry. 1926 */ 1927 extern int bcmx_field_qualify_InnerIpProtocol_get( 1928 bcm_field_entry_t entry, 1929 uint8 *data, 1930 uint8 *mask); 1931 1932 /* 1933 * Get match criteria for bcmFieldQualifyInnerIpFrag 1934 * qualifier from the field entry. 1935 */ 1936 extern int bcmx_field_qualify_InnerIpFrag_get( 1937 bcm_field_entry_t entry, 1938 bcm_field_IpFrag_t *frag_info); 1939 1940 /* 1941 * Get match criteria for bcmFieldQualifyDosAttack 1942 * qualifier from the field entry. 1943 */ 1944 extern int bcmx_field_qualify_DosAttack_get( 1945 bcm_field_entry_t entry, 1946 uint8 *data, 1947 uint8 *mask); 1948 1949 /* 1950 * Get match criteria for bcmFieldQualifyIpmcStarGroupHit 1951 * qualifier from the field entry. 1952 */ 1953 extern int bcmx_field_qualify_IpmcStarGroupHit_get( 1954 bcm_field_entry_t entry, 1955 uint8 *data, 1956 uint8 *mask); 1957 1958 /* 1959 * Get match criteria for bcmFieldQualifyMyStationHit 1960 * qualifier from the field entry. 1961 */ 1962 extern int bcmx_field_qualify_MyStationHit_get( 1963 bcm_field_entry_t entry, 1964 uint8 *data, 1965 uint8 *mask); 1966 1967 /* 1968 * Get match criteria for bcmFieldQualifyL2PayloadFirstEightBytes 1969 * qualifier from the field entry. 1970 */ 1971 extern int bcmx_field_qualify_L2PayloadFirstEightBytes_get( 1972 bcm_field_entry_t entry, 1973 uint32 *data1, 1974 uint32 *data2, 1975 uint32 *mask1, 1976 uint32 *mask2); 1977 1978 /* 1979 * Get match criteria for bcmFieldQualifyL3DestRouteHit 1980 * qualifier from the field entry. 1981 */ 1982 extern int bcmx_field_qualify_L3DestRouteHit_get( 1983 bcm_field_entry_t entry, 1984 uint8 *data, 1985 uint8 *mask); 1986 1987 /* 1988 * Get match criteria for bcmFieldQualifyL3DestHostHit 1989 * qualifier from the field entry. 1990 */ 1991 extern int bcmx_field_qualify_L3DestHostHit_get( 1992 bcm_field_entry_t entry, 1993 uint8 *data, 1994 uint8 *mask); 1995 1996 /* 1997 * Get match criteria for bcmFieldQualifyL3SrcHostHit 1998 * qualifier from the field entry. 1999 */ 2000 extern int bcmx_field_qualify_L3SrcHostHit_get( 2001 bcm_field_entry_t entry, 2002 uint8 *data, 2003 uint8 *mask); 2004 2005 /* 2006 * Get match criteria for bcmFieldQualifyL2CacheHit 2007 * qualifier from the field entry. 2008 */ 2009 extern int bcmx_field_qualify_L2CacheHit_get( 2010 bcm_field_entry_t entry, 2011 uint8 *data, 2012 uint8 *mask); 2013 2014 /* 2015 * Get match criteria for bcmFieldQualifyL2StationMove 2016 * qualifier from the field entry. 2017 */ 2018 extern int bcmx_field_qualify_L2StationMove_get( 2019 bcm_field_entry_t entry, 2020 uint8 *data, 2021 uint8 *mask); 2022 2023 /* 2024 * Get match criteria for bcmFieldQualifyL2DestHit 2025 * qualifier from the field entry. 2026 */ 2027 extern int bcmx_field_qualify_L2DestHit_get( 2028 bcm_field_entry_t entry, 2029 uint8 *data, 2030 uint8 *mask); 2031 2032 /* 2033 * Get match criteria for bcmFieldQualifyL2SrcStatic 2034 * qualifier from the field entry. 2035 */ 2036 extern int bcmx_field_qualify_L2SrcStatic_get( 2037 bcm_field_entry_t entry, 2038 uint8 *data, 2039 uint8 *mask); 2040 2041 /* 2042 * Get match criteria for bcmFieldQualifyL2SrcHit 2043 * qualifier from the field entry. 2044 */ 2045 extern int bcmx_field_qualify_L2SrcHit_get( 2046 bcm_field_entry_t entry, 2047 uint8 *data, 2048 uint8 *mask); 2049 2050 /* 2051 * Get match criteria for bcmFieldQualifyIngressStpState 2052 * qualifier from the field entry. 2053 */ 2054 extern int bcmx_field_qualify_IngressStpState_get( 2055 bcm_field_entry_t entry, 2056 uint8 *data, 2057 uint8 *mask); 2058 2059 /* 2060 * Get match criteria for bcmFieldQualifyForwardingVlanValid 2061 * qualifier from the field entry. 2062 */ 2063 extern int bcmx_field_qualify_ForwardingVlanValid_get( 2064 bcm_field_entry_t entry, 2065 uint8 *data, 2066 uint8 *mask); 2067 2068 /* 2069 * Get match criteria for bcmFieldQualifySrcVirtualPortValid 2070 * qualifier from the field entry. 2071 */ 2072 extern int bcmx_field_qualify_SrcVirtualPortValid_get( 2073 bcm_field_entry_t entry, 2074 uint8 *data, 2075 uint8 *mask); 2076 2077 /* 2078 * Get match criteria for bcmFieldQualifyVlanTranslationHit 2079 * qualifier from the field entry. 2080 */ 2081 extern int bcmx_field_qualify_VlanTranslationHit_get( 2082 bcm_field_entry_t entry, 2083 uint8 *data, 2084 uint8 *mask); 2085 2086 /* 2087 * Get match criteria for bcmFieldQualifyIcmpTypeCode 2088 * qualifier from the field entry. 2089 */ 2090 extern int bcmx_field_qualify_IcmpTypeCode_get( 2091 bcm_field_entry_t entry, 2092 uint16 *data, 2093 uint16 *mask); 2094 2095 /* 2096 * Get Fibre Channel outer header type field qualification from a field 2097 * entry. 2098 */ 2099 extern int bcmx_field_qualify_FibreChanOuter_get( 2100 bcm_field_entry_t entry, 2101 bcm_field_FibreChan_t *fibre_chan_type); 2102 2103 /* 2104 * Get Fibre Channel inner header type field qualification from a field 2105 * entry. 2106 */ 2107 extern int bcmx_field_qualify_FibreChanInner_get( 2108 bcm_field_entry_t entry, 2109 bcm_field_FibreChan_t *fibre_chan_type); 2110 2111 /* 2112 * Get match criteria for bcmFieldQualifyVnTag 2113 * qualifier from the field entry. 2114 */ 2115 extern int bcmx_field_qualify_VnTag_get( 2116 bcm_field_entry_t entry, 2117 uint32 *data, 2118 uint32 *mask); 2119 2120 /* 2121 * Get match criteria for bcmFieldQualifyCnTag 2122 * qualifier from the field entry. 2123 */ 2124 extern int bcmx_field_qualify_CnTag_get( 2125 bcm_field_entry_t entry, 2126 uint32 *data, 2127 uint32 *mask); 2128 2129 /* 2130 * Get match criteria for bcmFieldQualifyFabricQueueTag 2131 * qualifier from the field entry. 2132 */ 2133 extern int bcmx_field_qualify_FabricQueueTag_get( 2134 bcm_field_entry_t entry, 2135 uint32 *data, 2136 uint32 *mask); 2137 2138 /* 2139 * Get match criteria for bcmFieldQualifyDstMultipath 2140 * qualifier from the field entry. 2141 */ 2142 extern int bcmx_field_qualify_DstMultipath_get( 2143 bcm_field_entry_t entry, 2144 bcm_if_t *mpintf); 2145 2146 /* Add an action to a field entry. */ 2147 extern int bcmx_field_action_add( 2148 bcm_field_entry_t entry, 2149 bcm_field_action_t action, 2150 uint32 param0, 2151 uint32 param1); 2152 2153 /* Delete an action from a field entry. */ 2154 extern int bcmx_field_action_delete( 2155 bcm_field_entry_t entry, 2156 bcm_field_action_t action, 2157 uint32 param0, 2158 uint32 param1); 2159 2160 /* Add an action to a field entry. */ 2161 extern int bcmx_field_action_mac_add( 2162 bcm_field_entry_t entry, 2163 bcm_field_action_t action, 2164 bcm_mac_t mac); 2165 2166 /* Add an action to a field entry. */ 2167 extern int bcmx_field_action_ports_add( 2168 bcm_field_entry_t entry, 2169 bcm_field_action_t action, 2170 bcmx_lplist_t lplist); 2171 2172 /* 2173 * Retrieve the parameters for an action previously added to a field 2174 * entry. 2175 */ 2176 extern int bcmx_field_action_get( 2177 bcm_field_entry_t entry, 2178 bcm_field_action_t action, 2179 uint32 *param0, 2180 uint32 *param1); 2181 2182 /* 2183 * Retrieve the parameters for an action previously added to a field 2184 * entry. 2185 */ 2186 extern int bcmx_field_action_mac_get( 2187 bcm_field_entry_t entry, 2188 bcm_field_action_t action, 2189 bcm_mac_t *mac); 2190 2191 /* 2192 * Retrieve the parameters for an action previously added to a field 2193 * entry. 2194 */ 2195 extern int bcmx_field_action_ports_get( 2196 bcm_field_entry_t entry, 2197 bcm_field_action_t action, 2198 bcmx_lplist_t *lplist); 2199 2200 /* Remove an action from a field entry. */ 2201 extern int bcmx_field_action_remove( 2202 bcm_field_entry_t entry, 2203 bcm_field_action_t action); 2204 2205 /* Remove all actions from a field entry. */ 2206 extern int bcmx_field_action_remove_all( 2207 bcm_field_entry_t entry); 2208 2209 /* Create stat collection entity. */ 2210 extern int bcmx_field_stat_create( 2211 bcm_field_group_t group, 2212 int nstat, 2213 bcm_field_stat_t *stat_arr, 2214 int *stat_id); 2215 2216 /* Create stat collection entity with given ID. */ 2217 extern int bcmx_field_stat_create_id( 2218 bcm_field_group_t group, 2219 int nstat, 2220 bcm_field_stat_t *stat_arr, 2221 int stat_id); 2222 2223 /* Destroy stat collection entity. */ 2224 extern int bcmx_field_stat_destroy( 2225 int stat_id); 2226 2227 /* 2228 * Get number of different statistics associated with stat collection 2229 * entity. 2230 */ 2231 extern int bcmx_field_stat_size( 2232 int stat_id, 2233 int *stat_size); 2234 2235 /* Get enabled statistics for specific collection entity. */ 2236 extern int bcmx_field_stat_config_get( 2237 int stat_id, 2238 int nstat, 2239 bcm_field_stat_t *stat_arr); 2240 2241 /* Set 64 bit counter value for specific statistic type. */ 2242 extern int bcmx_field_stat_set( 2243 int stat_id, 2244 bcm_field_stat_t stat, 2245 uint64 value); 2246 2247 /* Set lower 32 bit counter value for specific statistic type. */ 2248 extern int bcmx_field_stat_set32( 2249 int stat_id, 2250 bcm_field_stat_t stat, 2251 uint32 value); 2252 2253 /* Set 64 bit counter value for all statistics types. */ 2254 extern int bcmx_field_stat_all_set( 2255 int stat_id, 2256 uint64 value); 2257 2258 /* Set lower 32 bit counter value for all statistic types. */ 2259 extern int bcmx_field_stat_all_set32( 2260 int stat_id, 2261 uint32 value); 2262 2263 /* Get 64 bit counter value for specific statistic type. */ 2264 extern int bcmx_field_stat_get( 2265 int stat_id, 2266 bcm_field_stat_t stat, 2267 uint64 *value); 2268 2269 /* Get lower 32 bit counter value for specific statistic type. */ 2270 extern int bcmx_field_stat_get32( 2271 int stat_id, 2272 bcm_field_stat_t stat, 2273 uint32 *value); 2274 2275 /* Get 64 bit counter values for multiple statistic types. */ 2276 extern int bcmx_field_stat_multi_get( 2277 int stat_id, 2278 int nstat, 2279 bcm_field_stat_t *stat_arr, 2280 uint64 *value_arr); 2281 2282 /* Get lower 32 bit counter values for multiple statistic types. */ 2283 extern int bcmx_field_stat_multi_get32( 2284 int stat_id, 2285 int nstat, 2286 bcm_field_stat_t *stat_arr, 2287 uint32 *value_arr); 2288 2289 /* Attach statistics entity to Field Processor entry. */ 2290 extern int bcmx_field_entry_stat_attach( 2291 bcm_field_entry_t entry, 2292 int stat_id); 2293 2294 /* Detach statistics entity from Field Processor entry. */ 2295 extern int bcmx_field_entry_stat_detach( 2296 bcm_field_entry_t entry, 2297 int stat_id); 2298 2299 /* Get statistics entity attached to Field Processor entry. */ 2300 extern int bcmx_field_entry_stat_get( 2301 bcm_field_entry_t entry, 2302 int *stat_id); 2303 2304 /* SDK 5.2.0 backward compatibility. */ 2305 #define bcmx_field_qualify_OutVlan bcmx_field_qualify_OuterVlan 2306 #define bcmx_field_qualify_InVlan bcmx_field_qualify_InnerVlan 2307 2308 #endif /* __BCMX_FIELD_H__ */