openbcm

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

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