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

cprimod_dispatch.c (345671B)


      1 /*
      2  *         
      3  * 
      4  * 
      5  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      6  * 
      7  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
      8  *         
      9  *     
     10  * DO NOT EDIT THIS FILE!
     11  */
     12 
     13 #include <soc/types.h>
     14 #include <soc/error.h>
     15 #include <soc/cprimod/cprimod_internal.h>
     16 #include <soc/cprimod/cprimod.h>
     17 #include <soc/cprimod/cprimod_dispatch.h>
     18 
     19 
     20         
     21 #ifdef _ERR_MSG_MODULE_NAME 
     22 #error "_ERR_MSG_MODULE_NAME redefined" 
     23 #endif
     24 #define _ERR_MSG_MODULE_NAME BSL_LS_SOC_PORT
     25 #ifdef CPRIMOD_SUPPORT
     26 
     27 #ifdef CPRIMOD_CPRI_FALCON_SUPPORT
     28 extern __cprimod__dispatch__t__ cprimod_cprif_driver;
     29 #endif
     30 
     31 __cprimod__dispatch__t__* __cprimod__dispatch__[cprimodDispatchTypeCount] = {
     32 #ifdef CPRIMOD_CPRI_FALCON_SUPPORT
     33     &cprimod_cprif_driver,
     34 #endif
     35 
     36 };
     37 
     38 int cprimod_dispatch_type_t_validate(cprimod_dispatch_type_t cprimod_dispatch_type)
     39 {        
     40     SOC_INIT_FUNC_DEFS;
     41     if(cprimod_dispatch_type >= cprimodDispatchTypeCount) {
     42         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
     43     }
     44         
     45 exit:
     46     SOC_FUNC_RETURN; 
     47     
     48 }
     49 
     50 int cprimod_test_api_dispatch(int unit, int port, int* value)
     51 {
     52 
     53     cprimod_dispatch_type_t __type__;
     54     int __rv__;        
     55     SOC_INIT_FUNC_DEFS;
     56     
     57     if(value == NULL) {
     58         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("value NULL parameter"));
     59     }
     60     /* Dispatch */
     61     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
     62     if(__type__ >= cprimodDispatchTypeCount) { 
     63         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
     64     }
     65 
     66     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_test_api_dispatch) {
     67         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_test_api_dispatch(unit, port, value);
     68         _SOC_IF_ERR_EXIT(__rv__);
     69     } else { 
     70         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_test_api_dispatch isn't implemented for driver type"));
     71     }
     72         
     73 exit:
     74     SOC_FUNC_RETURN; 
     75     
     76 }
     77 
     78 
     79 int cprimod_basic_frame_table_id_t_validate(cprimod_basic_frame_table_id_t cprimod_basic_frame_table_id)
     80 {        
     81     SOC_INIT_FUNC_DEFS;
     82     if(cprimod_basic_frame_table_id >= cprimod_basic_frame_table_Count) {
     83         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
     84     }
     85         
     86 exit:
     87     SOC_FUNC_RETURN; 
     88     
     89 }
     90 
     91 int cprimod_basic_frame_usage_entry_t_validate(const cprimod_basic_frame_usage_entry_t* cprimod_basic_frame_usage_entry)
     92 {        
     93     SOC_INIT_FUNC_DEFS;
     94     if(cprimod_basic_frame_usage_entry == NULL) {
     95         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
     96     }
     97 
     98 
     99         
    100 exit:
    101     SOC_FUNC_RETURN; 
    102     
    103 }
    104 
    105 int cprimod_basic_frame_usage_entry_t_init(cprimod_basic_frame_usage_entry_t* cprimod_basic_frame_usage_entry)
    106 {        
    107     SOC_INIT_FUNC_DEFS;
    108     
    109     if(cprimod_basic_frame_usage_entry == NULL){
    110         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_basic_frame_usage_entry NULL parameter"));
    111     }
    112     sal_memset(cprimod_basic_frame_usage_entry, 0, sizeof(cprimod_basic_frame_usage_entry_t));
    113     cprimod_basic_frame_usage_entry->axc_id = 0;
    114     cprimod_basic_frame_usage_entry->start_bit = 0;
    115     cprimod_basic_frame_usage_entry->num_bits = 0;
    116 
    117         
    118 exit:
    119     SOC_FUNC_RETURN; 
    120     
    121 }
    122 
    123 int cprimod_basic_frame_parser_active_table_set(int unit, int port, cprimod_basic_frame_table_id_t table, int sync_enable)
    124 {
    125 
    126     cprimod_dispatch_type_t __type__;
    127     int __rv__;        
    128     SOC_INIT_FUNC_DEFS;
    129     
    130     if(SOC_E_NONE != cprimod_basic_frame_table_id_t_validate(table)) {
    131         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table validation failed"));
    132     }
    133 
    134     /* Dispatch */
    135     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    136     if(__type__ >= cprimodDispatchTypeCount) { 
    137         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    138     }
    139 
    140     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_parser_active_table_set) {
    141         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_parser_active_table_set(unit, port, table, sync_enable);
    142         _SOC_IF_ERR_EXIT(__rv__);
    143     } else { 
    144         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_basic_frame_parser_active_table_set isn't implemented for driver type"));
    145     }
    146         
    147 exit:
    148     SOC_FUNC_RETURN; 
    149     
    150 }
    151 
    152 
    153 int cprimod_basic_frame_parser_active_table_get(int unit, int port, cprimod_basic_frame_table_id_t* table)
    154 {
    155 
    156     cprimod_dispatch_type_t __type__;
    157     int __rv__;        
    158     SOC_INIT_FUNC_DEFS;
    159     
    160     if(table == NULL) {
    161         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table NULL parameter"));
    162     }
    163     /* Dispatch */
    164     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    165     if(__type__ >= cprimodDispatchTypeCount) { 
    166         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    167     }
    168 
    169     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_parser_active_table_get) {
    170         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_parser_active_table_get(unit, port, table);
    171         _SOC_IF_ERR_EXIT(__rv__);
    172     } else { 
    173         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_basic_frame_parser_active_table_get isn't implemented for driver type"));
    174     }
    175         
    176 exit:
    177     SOC_FUNC_RETURN; 
    178     
    179 }
    180 
    181 
    182 int cprimod_basic_frame_parser_table_num_entries_set(int unit, int port, cprimod_basic_frame_table_id_t table, uint32 num_entries)
    183 {
    184 
    185     cprimod_dispatch_type_t __type__;
    186     int __rv__;        
    187     SOC_INIT_FUNC_DEFS;
    188     
    189     if(SOC_E_NONE != cprimod_basic_frame_table_id_t_validate(table)) {
    190         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table validation failed"));
    191     }
    192 
    193     /* Dispatch */
    194     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    195     if(__type__ >= cprimodDispatchTypeCount) { 
    196         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    197     }
    198 
    199     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_parser_table_num_entries_set) {
    200         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_parser_table_num_entries_set(unit, port, table, num_entries);
    201         _SOC_IF_ERR_EXIT(__rv__);
    202     } else { 
    203         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_basic_frame_parser_table_num_entries_set isn't implemented for driver type"));
    204     }
    205         
    206 exit:
    207     SOC_FUNC_RETURN; 
    208     
    209 }
    210 
    211 
    212 int cprimod_basic_frame_parser_table_num_entries_get(int unit, int port, cprimod_basic_frame_table_id_t table, uint32* num_entries)
    213 {
    214 
    215     cprimod_dispatch_type_t __type__;
    216     int __rv__;        
    217     SOC_INIT_FUNC_DEFS;
    218     
    219     if(SOC_E_NONE != cprimod_basic_frame_table_id_t_validate(table)) {
    220         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table validation failed"));
    221     }
    222 
    223     if(num_entries == NULL) {
    224         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("num_entries NULL parameter"));
    225     }
    226     /* Dispatch */
    227     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    228     if(__type__ >= cprimodDispatchTypeCount) { 
    229         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    230     }
    231 
    232     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_parser_table_num_entries_get) {
    233         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_parser_table_num_entries_get(unit, port, table, num_entries);
    234         _SOC_IF_ERR_EXIT(__rv__);
    235     } else { 
    236         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_basic_frame_parser_table_num_entries_get isn't implemented for driver type"));
    237     }
    238         
    239 exit:
    240     SOC_FUNC_RETURN; 
    241     
    242 }
    243 
    244 
    245 int cprimod_basic_frame_assembly_active_table_set(int unit, int port, cprimod_basic_frame_table_id_t table, int sync_enable)
    246 {
    247 
    248     cprimod_dispatch_type_t __type__;
    249     int __rv__;        
    250     SOC_INIT_FUNC_DEFS;
    251     
    252     if(SOC_E_NONE != cprimod_basic_frame_table_id_t_validate(table)) {
    253         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table validation failed"));
    254     }
    255 
    256     /* Dispatch */
    257     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    258     if(__type__ >= cprimodDispatchTypeCount) { 
    259         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    260     }
    261 
    262     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_assembly_active_table_set) {
    263         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_assembly_active_table_set(unit, port, table, sync_enable);
    264         _SOC_IF_ERR_EXIT(__rv__);
    265     } else { 
    266         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_basic_frame_assembly_active_table_set isn't implemented for driver type"));
    267     }
    268         
    269 exit:
    270     SOC_FUNC_RETURN; 
    271     
    272 }
    273 
    274 
    275 int cprimod_basic_frame_assembly_active_table_get(int unit, int port, cprimod_basic_frame_table_id_t* table)
    276 {
    277 
    278     cprimod_dispatch_type_t __type__;
    279     int __rv__;        
    280     SOC_INIT_FUNC_DEFS;
    281     
    282     if(table == NULL) {
    283         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table NULL parameter"));
    284     }
    285     /* Dispatch */
    286     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    287     if(__type__ >= cprimodDispatchTypeCount) { 
    288         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    289     }
    290 
    291     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_assembly_active_table_get) {
    292         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_assembly_active_table_get(unit, port, table);
    293         _SOC_IF_ERR_EXIT(__rv__);
    294     } else { 
    295         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_basic_frame_assembly_active_table_get isn't implemented for driver type"));
    296     }
    297         
    298 exit:
    299     SOC_FUNC_RETURN; 
    300     
    301 }
    302 
    303 
    304 int cprimod_basic_frame_assembly_table_num_entries_set(int unit, int port, cprimod_basic_frame_table_id_t table, uint32 num_entries)
    305 {
    306 
    307     cprimod_dispatch_type_t __type__;
    308     int __rv__;        
    309     SOC_INIT_FUNC_DEFS;
    310     
    311     if(SOC_E_NONE != cprimod_basic_frame_table_id_t_validate(table)) {
    312         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table validation failed"));
    313     }
    314 
    315     /* Dispatch */
    316     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    317     if(__type__ >= cprimodDispatchTypeCount) { 
    318         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    319     }
    320 
    321     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_assembly_table_num_entries_set) {
    322         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_assembly_table_num_entries_set(unit, port, table, num_entries);
    323         _SOC_IF_ERR_EXIT(__rv__);
    324     } else { 
    325         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_basic_frame_assembly_table_num_entries_set isn't implemented for driver type"));
    326     }
    327         
    328 exit:
    329     SOC_FUNC_RETURN; 
    330     
    331 }
    332 
    333 
    334 int cprimod_basic_frame_assembly_table_num_entries_get(int unit, int port, cprimod_basic_frame_table_id_t table, uint32* num_entries)
    335 {
    336 
    337     cprimod_dispatch_type_t __type__;
    338     int __rv__;        
    339     SOC_INIT_FUNC_DEFS;
    340     
    341     if(SOC_E_NONE != cprimod_basic_frame_table_id_t_validate(table)) {
    342         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table validation failed"));
    343     }
    344 
    345     if(num_entries == NULL) {
    346         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("num_entries NULL parameter"));
    347     }
    348     /* Dispatch */
    349     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    350     if(__type__ >= cprimodDispatchTypeCount) { 
    351         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    352     }
    353 
    354     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_assembly_table_num_entries_get) {
    355         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_assembly_table_num_entries_get(unit, port, table, num_entries);
    356         _SOC_IF_ERR_EXIT(__rv__);
    357     } else { 
    358         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_basic_frame_assembly_table_num_entries_get isn't implemented for driver type"));
    359     }
    360         
    361 exit:
    362     SOC_FUNC_RETURN; 
    363     
    364 }
    365 
    366 
    367 int cprimod_basic_frame_parser_switch_active_table(int unit, int port)
    368 {
    369 
    370     cprimod_dispatch_type_t __type__;
    371     int __rv__;        
    372     SOC_INIT_FUNC_DEFS;
    373     
    374     /* Dispatch */
    375     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    376     if(__type__ >= cprimodDispatchTypeCount) { 
    377         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    378     }
    379 
    380     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_parser_switch_active_table) {
    381         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_parser_switch_active_table(unit, port);
    382         _SOC_IF_ERR_EXIT(__rv__);
    383     } else { 
    384         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_basic_frame_parser_switch_active_table isn't implemented for driver type"));
    385     }
    386         
    387 exit:
    388     SOC_FUNC_RETURN; 
    389     
    390 }
    391 
    392 
    393 int cprimod_basic_frame_assembly_switch_active_table(int unit, int port)
    394 {
    395 
    396     cprimod_dispatch_type_t __type__;
    397     int __rv__;        
    398     SOC_INIT_FUNC_DEFS;
    399     
    400     /* Dispatch */
    401     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    402     if(__type__ >= cprimodDispatchTypeCount) { 
    403         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    404     }
    405 
    406     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_assembly_switch_active_table) {
    407         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_assembly_switch_active_table(unit, port);
    408         _SOC_IF_ERR_EXIT(__rv__);
    409     } else { 
    410         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_basic_frame_assembly_switch_active_table isn't implemented for driver type"));
    411     }
    412         
    413 exit:
    414     SOC_FUNC_RETURN; 
    415     
    416 }
    417 
    418 
    419 int cprimod_rx_axc_basic_frame_add(int unit, int port, uint32 axc_id, uint32 start_bit, uint32 num_bit)
    420 {
    421 
    422     cprimod_dispatch_type_t __type__;
    423     int __rv__;        
    424     SOC_INIT_FUNC_DEFS;
    425     
    426     /* Dispatch */
    427     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    428     if(__type__ >= cprimodDispatchTypeCount) { 
    429         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    430     }
    431 
    432     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rx_axc_basic_frame_add) {
    433         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rx_axc_basic_frame_add(unit, port, axc_id, start_bit, num_bit);
    434         _SOC_IF_ERR_EXIT(__rv__);
    435     } else { 
    436         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rx_axc_basic_frame_add isn't implemented for driver type"));
    437     }
    438         
    439 exit:
    440     SOC_FUNC_RETURN; 
    441     
    442 }
    443 
    444 
    445 int cprimod_rx_axc_basic_frame_delete(int unit, int port, uint32 axc_id)
    446 {
    447 
    448     cprimod_dispatch_type_t __type__;
    449     int __rv__;        
    450     SOC_INIT_FUNC_DEFS;
    451     
    452     /* Dispatch */
    453     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    454     if(__type__ >= cprimodDispatchTypeCount) { 
    455         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    456     }
    457 
    458     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rx_axc_basic_frame_delete) {
    459         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rx_axc_basic_frame_delete(unit, port, axc_id);
    460         _SOC_IF_ERR_EXIT(__rv__);
    461     } else { 
    462         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rx_axc_basic_frame_delete isn't implemented for driver type"));
    463     }
    464         
    465 exit:
    466     SOC_FUNC_RETURN; 
    467     
    468 }
    469 
    470 
    471 int cprimod_rx_axc_basic_frame_clear(int unit, int port)
    472 {
    473 
    474     cprimod_dispatch_type_t __type__;
    475     int __rv__;        
    476     SOC_INIT_FUNC_DEFS;
    477     
    478     /* Dispatch */
    479     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    480     if(__type__ >= cprimodDispatchTypeCount) { 
    481         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    482     }
    483 
    484     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rx_axc_basic_frame_clear) {
    485         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rx_axc_basic_frame_clear(unit, port);
    486         _SOC_IF_ERR_EXIT(__rv__);
    487     } else { 
    488         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rx_axc_basic_frame_clear isn't implemented for driver type"));
    489     }
    490         
    491 exit:
    492     SOC_FUNC_RETURN; 
    493     
    494 }
    495 
    496 
    497 int cprimod_rx_axc_basic_frame_get(int unit, int port, uint32 axc_id, cprimod_basic_frame_table_id_t table, cprimod_basic_frame_usage_entry_t* usage_table, int* num_entries)
    498 {
    499 
    500     cprimod_dispatch_type_t __type__;
    501     int __rv__;        
    502     SOC_INIT_FUNC_DEFS;
    503     
    504     if(SOC_E_NONE != cprimod_basic_frame_table_id_t_validate(table)) {
    505         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table validation failed"));
    506     }
    507 
    508     if(usage_table == NULL) {
    509         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("usage_table NULL parameter"));
    510     }
    511     if(SOC_E_NONE != cprimod_basic_frame_usage_entry_t_init(usage_table)) {
    512         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("usage_table initialization failed"));
    513     }
    514 
    515     if(num_entries == NULL) {
    516         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("num_entries NULL parameter"));
    517     }
    518     /* Dispatch */
    519     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    520     if(__type__ >= cprimodDispatchTypeCount) { 
    521         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    522     }
    523 
    524     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rx_axc_basic_frame_get) {
    525         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rx_axc_basic_frame_get(unit, port, axc_id, table, usage_table, num_entries);
    526         _SOC_IF_ERR_EXIT(__rv__);
    527     } else { 
    528         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rx_axc_basic_frame_get isn't implemented for driver type"));
    529     }
    530         
    531 exit:
    532     SOC_FUNC_RETURN; 
    533     
    534 }
    535 
    536 
    537 int cprimod_tx_axc_basic_frame_add(int unit, int port, uint32 axc_id, uint32 start_bit, uint32 num_bit)
    538 {
    539 
    540     cprimod_dispatch_type_t __type__;
    541     int __rv__;        
    542     SOC_INIT_FUNC_DEFS;
    543     
    544     /* Dispatch */
    545     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    546     if(__type__ >= cprimodDispatchTypeCount) { 
    547         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    548     }
    549 
    550     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_axc_basic_frame_add) {
    551         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_axc_basic_frame_add(unit, port, axc_id, start_bit, num_bit);
    552         _SOC_IF_ERR_EXIT(__rv__);
    553     } else { 
    554         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_axc_basic_frame_add isn't implemented for driver type"));
    555     }
    556         
    557 exit:
    558     SOC_FUNC_RETURN; 
    559     
    560 }
    561 
    562 
    563 int cprimod_tx_axc_basic_frame_delete(int unit, int port, uint32 axc_id)
    564 {
    565 
    566     cprimod_dispatch_type_t __type__;
    567     int __rv__;        
    568     SOC_INIT_FUNC_DEFS;
    569     
    570     /* Dispatch */
    571     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    572     if(__type__ >= cprimodDispatchTypeCount) { 
    573         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    574     }
    575 
    576     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_axc_basic_frame_delete) {
    577         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_axc_basic_frame_delete(unit, port, axc_id);
    578         _SOC_IF_ERR_EXIT(__rv__);
    579     } else { 
    580         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_axc_basic_frame_delete isn't implemented for driver type"));
    581     }
    582         
    583 exit:
    584     SOC_FUNC_RETURN; 
    585     
    586 }
    587 
    588 
    589 int cprimod_tx_axc_basic_frame_clear(int unit, int port)
    590 {
    591 
    592     cprimod_dispatch_type_t __type__;
    593     int __rv__;        
    594     SOC_INIT_FUNC_DEFS;
    595     
    596     /* Dispatch */
    597     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    598     if(__type__ >= cprimodDispatchTypeCount) { 
    599         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    600     }
    601 
    602     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_axc_basic_frame_clear) {
    603         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_axc_basic_frame_clear(unit, port);
    604         _SOC_IF_ERR_EXIT(__rv__);
    605     } else { 
    606         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_axc_basic_frame_clear isn't implemented for driver type"));
    607     }
    608         
    609 exit:
    610     SOC_FUNC_RETURN; 
    611     
    612 }
    613 
    614 
    615 int cprimod_tx_axc_basic_frame_get(int unit, int port, uint32 axc_id, cprimod_basic_frame_table_id_t table, cprimod_basic_frame_usage_entry_t* usage_table, int* num_entries)
    616 {
    617 
    618     cprimod_dispatch_type_t __type__;
    619     int __rv__;        
    620     SOC_INIT_FUNC_DEFS;
    621     
    622     if(SOC_E_NONE != cprimod_basic_frame_table_id_t_validate(table)) {
    623         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table validation failed"));
    624     }
    625 
    626     if(usage_table == NULL) {
    627         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("usage_table NULL parameter"));
    628     }
    629     if(SOC_E_NONE != cprimod_basic_frame_usage_entry_t_init(usage_table)) {
    630         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("usage_table initialization failed"));
    631     }
    632 
    633     if(num_entries == NULL) {
    634         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("num_entries NULL parameter"));
    635     }
    636     /* Dispatch */
    637     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    638     if(__type__ >= cprimodDispatchTypeCount) { 
    639         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    640     }
    641 
    642     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_axc_basic_frame_get) {
    643         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_axc_basic_frame_get(unit, port, axc_id, table, usage_table, num_entries);
    644         _SOC_IF_ERR_EXIT(__rv__);
    645     } else { 
    646         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_axc_basic_frame_get isn't implemented for driver type"));
    647     }
    648         
    649 exit:
    650     SOC_FUNC_RETURN; 
    651     
    652 }
    653 
    654 
    655 int cprimod_basic_frame_debug(int unit, int port, uint32 axc_id, cprimod_basic_frame_table_id_t rx_table, cprimod_basic_frame_table_id_t tx_table, uint32 flags)
    656 {
    657 
    658     cprimod_dispatch_type_t __type__;
    659     int __rv__;        
    660     SOC_INIT_FUNC_DEFS;
    661     
    662     if(SOC_E_NONE != cprimod_basic_frame_table_id_t_validate(rx_table)) {
    663         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("rx_table validation failed"));
    664     }
    665 
    666     if(SOC_E_NONE != cprimod_basic_frame_table_id_t_validate(tx_table)) {
    667         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tx_table validation failed"));
    668     }
    669 
    670     /* Dispatch */
    671     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    672     if(__type__ >= cprimodDispatchTypeCount) { 
    673         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    674     }
    675 
    676     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_debug) {
    677         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_basic_frame_debug(unit, port, axc_id, rx_table, tx_table, flags);
    678         _SOC_IF_ERR_EXIT(__rv__);
    679     } else { 
    680         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_basic_frame_debug isn't implemented for driver type"));
    681     }
    682         
    683 exit:
    684     SOC_FUNC_RETURN; 
    685     
    686 }
    687 
    688 
    689 int cprimod_cpri_frame_map_method_t_validate(cprimod_cpri_frame_map_method_t cprimod_cpri_frame_map_method)
    690 {        
    691     SOC_INIT_FUNC_DEFS;
    692     if(cprimod_cpri_frame_map_method >= cprimod_cpri_frame_map_method_Count) {
    693         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
    694     }
    695         
    696 exit:
    697     SOC_FUNC_RETURN; 
    698     
    699 }
    700 
    701 int cprimod_cpri_container_config_t_validate(const cprimod_cpri_container_config_t* cprimod_cpri_container_config)
    702 {        
    703     SOC_INIT_FUNC_DEFS;
    704     if(cprimod_cpri_container_config == NULL) {
    705         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
    706     }
    707 
    708     if(SOC_E_NONE != cprimod_cpri_frame_map_method_t_validate(cprimod_cpri_container_config->map_method)) {
    709         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("map_method validation failed"));
    710     }
    711 
    712 
    713         
    714 exit:
    715     SOC_FUNC_RETURN; 
    716     
    717 }
    718 
    719 int cprimod_cpri_container_config_t_init(cprimod_cpri_container_config_t* cprimod_cpri_container_config)
    720 {        
    721     SOC_INIT_FUNC_DEFS;
    722     
    723     if(cprimod_cpri_container_config == NULL){
    724         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_container_config NULL parameter"));
    725     }
    726     sal_memset(cprimod_cpri_container_config, 0, sizeof(cprimod_cpri_container_config_t));
    727     cprimod_cpri_container_config->map_method = 0;
    728     cprimod_cpri_container_config->Naxc = 0;
    729     cprimod_cpri_container_config->K = 0;
    730     cprimod_cpri_container_config->Nst = 0;
    731     cprimod_cpri_container_config->Na = 0;
    732     cprimod_cpri_container_config->Nc = 0;
    733     cprimod_cpri_container_config->Nv = 0;
    734     cprimod_cpri_container_config->frame_sync_mode = 0;
    735     cprimod_cpri_container_config->basic_frame_offset = 0;
    736     cprimod_cpri_container_config->radio_frame_offset = 0;
    737     cprimod_cpri_container_config->hyper_frame_offset = 0;
    738     cprimod_cpri_container_config->cblk_cnt = 0;
    739 
    740         
    741 exit:
    742     SOC_FUNC_RETURN; 
    743     
    744 }
    745 
    746 int cprimod_rsvd4_container_config_t_validate(const cprimod_rsvd4_container_config_t* cprimod_rsvd4_container_config)
    747 {        
    748     SOC_INIT_FUNC_DEFS;
    749     if(cprimod_rsvd4_container_config == NULL) {
    750         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
    751     }
    752 
    753 
    754         
    755 exit:
    756     SOC_FUNC_RETURN; 
    757     
    758 }
    759 
    760 int cprimod_rsvd4_container_config_t_init(cprimod_rsvd4_container_config_t* cprimod_rsvd4_container_config)
    761 {        
    762     SOC_INIT_FUNC_DEFS;
    763     
    764     if(cprimod_rsvd4_container_config == NULL){
    765         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_rsvd4_container_config NULL parameter"));
    766     }
    767     sal_memset(cprimod_rsvd4_container_config, 0, sizeof(cprimod_rsvd4_container_config_t));
    768     cprimod_rsvd4_container_config->stuffing_cnt = 0;
    769     cprimod_rsvd4_container_config->msg_ts_mode = 0;
    770     cprimod_rsvd4_container_config->msg_ts_cnt = 0;
    771     cprimod_rsvd4_container_config->frame_sync_mode = 0;
    772     cprimod_rsvd4_container_config->master_frame_offset = 0;
    773     cprimod_rsvd4_container_config->message_number_offset = 0;
    774     cprimod_rsvd4_container_config->container_block_cnt = 0;
    775     cprimod_rsvd4_container_config->use_ts_dbm = 0;
    776     cprimod_rsvd4_container_config->ts_dbm_prof_num = 0;
    777     cprimod_rsvd4_container_config->num_active_slots = 0;
    778     cprimod_rsvd4_container_config->msg_addr = 0;
    779     cprimod_rsvd4_container_config->msg_type = 0;
    780     cprimod_rsvd4_container_config->msg_ts_offset = 0;
    781 
    782         
    783 exit:
    784     SOC_FUNC_RETURN; 
    785     
    786 }
    787 
    788 int cprimod_cpri_rx_axc_container_config_set(int unit, int port, uint32 axc_id, const cprimod_cpri_container_config_t* config_info)
    789 {
    790 
    791     cprimod_dispatch_type_t __type__;
    792     int __rv__;        
    793     SOC_INIT_FUNC_DEFS;
    794     
    795     if(SOC_E_NONE != cprimod_cpri_container_config_t_validate(config_info)) {
    796         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
    797     }
    798 
    799     /* Dispatch */
    800     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    801     if(__type__ >= cprimodDispatchTypeCount) { 
    802         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    803     }
    804 
    805     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_axc_container_config_set) {
    806         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_axc_container_config_set(unit, port, axc_id, config_info);
    807         _SOC_IF_ERR_EXIT(__rv__);
    808     } else { 
    809         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_rx_axc_container_config_set isn't implemented for driver type"));
    810     }
    811         
    812 exit:
    813     SOC_FUNC_RETURN; 
    814     
    815 }
    816 
    817 
    818 int cprimod_cpri_rx_axc_container_config_get(int unit, int port, uint32 axc_id, cprimod_cpri_container_config_t* config_info)
    819 {
    820 
    821     cprimod_dispatch_type_t __type__;
    822     int __rv__;        
    823     SOC_INIT_FUNC_DEFS;
    824     
    825     if(config_info == NULL) {
    826         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
    827     }
    828     if(SOC_E_NONE != cprimod_cpri_container_config_t_init(config_info)) {
    829         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
    830     }
    831 
    832     /* Dispatch */
    833     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    834     if(__type__ >= cprimodDispatchTypeCount) { 
    835         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    836     }
    837 
    838     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_axc_container_config_get) {
    839         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_axc_container_config_get(unit, port, axc_id, config_info);
    840         _SOC_IF_ERR_EXIT(__rv__);
    841     } else { 
    842         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_rx_axc_container_config_get isn't implemented for driver type"));
    843     }
    844         
    845 exit:
    846     SOC_FUNC_RETURN; 
    847     
    848 }
    849 
    850 
    851 int cprimod_cpri_tx_axc_container_config_set(int unit, int port, uint32 axc_id, const cprimod_cpri_container_config_t* config_info)
    852 {
    853 
    854     cprimod_dispatch_type_t __type__;
    855     int __rv__;        
    856     SOC_INIT_FUNC_DEFS;
    857     
    858     if(SOC_E_NONE != cprimod_cpri_container_config_t_validate(config_info)) {
    859         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
    860     }
    861 
    862     /* Dispatch */
    863     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    864     if(__type__ >= cprimodDispatchTypeCount) { 
    865         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    866     }
    867 
    868     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_tx_axc_container_config_set) {
    869         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_tx_axc_container_config_set(unit, port, axc_id, config_info);
    870         _SOC_IF_ERR_EXIT(__rv__);
    871     } else { 
    872         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_tx_axc_container_config_set isn't implemented for driver type"));
    873     }
    874         
    875 exit:
    876     SOC_FUNC_RETURN; 
    877     
    878 }
    879 
    880 
    881 int cprimod_cpri_tx_axc_container_config_get(int unit, int port, uint32 axc_id, cprimod_cpri_container_config_t* config_info)
    882 {
    883 
    884     cprimod_dispatch_type_t __type__;
    885     int __rv__;        
    886     SOC_INIT_FUNC_DEFS;
    887     
    888     if(config_info == NULL) {
    889         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
    890     }
    891     if(SOC_E_NONE != cprimod_cpri_container_config_t_init(config_info)) {
    892         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
    893     }
    894 
    895     /* Dispatch */
    896     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    897     if(__type__ >= cprimodDispatchTypeCount) { 
    898         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    899     }
    900 
    901     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_tx_axc_container_config_get) {
    902         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_tx_axc_container_config_get(unit, port, axc_id, config_info);
    903         _SOC_IF_ERR_EXIT(__rv__);
    904     } else { 
    905         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_tx_axc_container_config_get isn't implemented for driver type"));
    906     }
    907         
    908 exit:
    909     SOC_FUNC_RETURN; 
    910     
    911 }
    912 
    913 
    914 int cprimod_rsvd4_rx_axc_container_config_set(int unit, int port, uint32 flow_id, const cprimod_rsvd4_container_config_t* config_info)
    915 {
    916 
    917     cprimod_dispatch_type_t __type__;
    918     int __rv__;        
    919     SOC_INIT_FUNC_DEFS;
    920     
    921     if(SOC_E_NONE != cprimod_rsvd4_container_config_t_validate(config_info)) {
    922         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
    923     }
    924 
    925     /* Dispatch */
    926     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    927     if(__type__ >= cprimodDispatchTypeCount) { 
    928         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    929     }
    930 
    931     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_axc_container_config_set) {
    932         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_axc_container_config_set(unit, port, flow_id, config_info);
    933         _SOC_IF_ERR_EXIT(__rv__);
    934     } else { 
    935         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_rx_axc_container_config_set isn't implemented for driver type"));
    936     }
    937         
    938 exit:
    939     SOC_FUNC_RETURN; 
    940     
    941 }
    942 
    943 
    944 int cprimod_rsvd4_rx_axc_container_config_get(int unit, int port, uint32 flow_id, cprimod_rsvd4_container_config_t* config_info)
    945 {
    946 
    947     cprimod_dispatch_type_t __type__;
    948     int __rv__;        
    949     SOC_INIT_FUNC_DEFS;
    950     
    951     if(config_info == NULL) {
    952         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
    953     }
    954     if(SOC_E_NONE != cprimod_rsvd4_container_config_t_init(config_info)) {
    955         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
    956     }
    957 
    958     /* Dispatch */
    959     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    960     if(__type__ >= cprimodDispatchTypeCount) { 
    961         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    962     }
    963 
    964     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_axc_container_config_get) {
    965         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_axc_container_config_get(unit, port, flow_id, config_info);
    966         _SOC_IF_ERR_EXIT(__rv__);
    967     } else { 
    968         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_rx_axc_container_config_get isn't implemented for driver type"));
    969     }
    970         
    971 exit:
    972     SOC_FUNC_RETURN; 
    973     
    974 }
    975 
    976 
    977 int cprimod_rsvd4_tx_axc_container_config_set(int unit, int port, uint32 flow_id, const cprimod_rsvd4_container_config_t* config_info)
    978 {
    979 
    980     cprimod_dispatch_type_t __type__;
    981     int __rv__;        
    982     SOC_INIT_FUNC_DEFS;
    983     
    984     if(SOC_E_NONE != cprimod_rsvd4_container_config_t_validate(config_info)) {
    985         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
    986     }
    987 
    988     /* Dispatch */
    989     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
    990     if(__type__ >= cprimodDispatchTypeCount) { 
    991         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
    992     }
    993 
    994     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_axc_container_config_set) {
    995         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_axc_container_config_set(unit, port, flow_id, config_info);
    996         _SOC_IF_ERR_EXIT(__rv__);
    997     } else { 
    998         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_axc_container_config_set isn't implemented for driver type"));
    999     }
   1000         
   1001 exit:
   1002     SOC_FUNC_RETURN; 
   1003     
   1004 }
   1005 
   1006 
   1007 int cprimod_rsvd4_tx_axc_container_config_get(int unit, int port, uint32 flow_id, cprimod_rsvd4_container_config_t* config_info)
   1008 {
   1009 
   1010     cprimod_dispatch_type_t __type__;
   1011     int __rv__;        
   1012     SOC_INIT_FUNC_DEFS;
   1013     
   1014     if(config_info == NULL) {
   1015         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   1016     }
   1017     if(SOC_E_NONE != cprimod_rsvd4_container_config_t_init(config_info)) {
   1018         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   1019     }
   1020 
   1021     /* Dispatch */
   1022     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1023     if(__type__ >= cprimodDispatchTypeCount) { 
   1024         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1025     }
   1026 
   1027     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_axc_container_config_get) {
   1028         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_axc_container_config_get(unit, port, flow_id, config_info);
   1029         _SOC_IF_ERR_EXIT(__rv__);
   1030     } else { 
   1031         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_axc_container_config_get isn't implemented for driver type"));
   1032     }
   1033         
   1034 exit:
   1035     SOC_FUNC_RETURN; 
   1036     
   1037 }
   1038 
   1039 
   1040 int cprimod_payload_size_info_t_validate(const cprimod_payload_size_info_t* cprimod_payload_size_info)
   1041 {        
   1042     SOC_INIT_FUNC_DEFS;
   1043     if(cprimod_payload_size_info == NULL) {
   1044         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   1045     }
   1046 
   1047 
   1048         
   1049 exit:
   1050     SOC_FUNC_RETURN; 
   1051     
   1052 }
   1053 
   1054 int cprimod_payload_size_info_t_init(cprimod_payload_size_info_t* cprimod_payload_size_info)
   1055 {        
   1056     SOC_INIT_FUNC_DEFS;
   1057     
   1058     if(cprimod_payload_size_info == NULL){
   1059         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_payload_size_info NULL parameter"));
   1060     }
   1061     sal_memset(cprimod_payload_size_info, 0, sizeof(cprimod_payload_size_info_t));
   1062     cprimod_payload_size_info->packet_size = 0;
   1063     cprimod_payload_size_info->last_packet_num = 0;
   1064     cprimod_payload_size_info->last_packet_size = 0;
   1065 
   1066         
   1067 exit:
   1068     SOC_FUNC_RETURN; 
   1069     
   1070 }
   1071 
   1072 int cprimod_rx_roe_payload_size_set(int unit, int port, uint32 axc_id, const cprimod_payload_size_info_t* config_info)
   1073 {
   1074 
   1075     cprimod_dispatch_type_t __type__;
   1076     int __rv__;        
   1077     SOC_INIT_FUNC_DEFS;
   1078     
   1079     if(SOC_E_NONE != cprimod_payload_size_info_t_validate(config_info)) {
   1080         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   1081     }
   1082 
   1083     /* Dispatch */
   1084     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1085     if(__type__ >= cprimodDispatchTypeCount) { 
   1086         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1087     }
   1088 
   1089     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rx_roe_payload_size_set) {
   1090         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rx_roe_payload_size_set(unit, port, axc_id, config_info);
   1091         _SOC_IF_ERR_EXIT(__rv__);
   1092     } else { 
   1093         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rx_roe_payload_size_set isn't implemented for driver type"));
   1094     }
   1095         
   1096 exit:
   1097     SOC_FUNC_RETURN; 
   1098     
   1099 }
   1100 
   1101 
   1102 int cprimod_rx_roe_payload_size_get(int unit, int port, uint32 axc_id, cprimod_payload_size_info_t* config_info)
   1103 {
   1104 
   1105     cprimod_dispatch_type_t __type__;
   1106     int __rv__;        
   1107     SOC_INIT_FUNC_DEFS;
   1108     
   1109     if(config_info == NULL) {
   1110         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   1111     }
   1112     if(SOC_E_NONE != cprimod_payload_size_info_t_init(config_info)) {
   1113         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   1114     }
   1115 
   1116     /* Dispatch */
   1117     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1118     if(__type__ >= cprimodDispatchTypeCount) { 
   1119         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1120     }
   1121 
   1122     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rx_roe_payload_size_get) {
   1123         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rx_roe_payload_size_get(unit, port, axc_id, config_info);
   1124         _SOC_IF_ERR_EXIT(__rv__);
   1125     } else { 
   1126         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rx_roe_payload_size_get isn't implemented for driver type"));
   1127     }
   1128         
   1129 exit:
   1130     SOC_FUNC_RETURN; 
   1131     
   1132 }
   1133 
   1134 
   1135 int cprimod_tx_roe_payload_size_set(int unit, int port, uint32 axc_id, const cprimod_payload_size_info_t* config_info)
   1136 {
   1137 
   1138     cprimod_dispatch_type_t __type__;
   1139     int __rv__;        
   1140     SOC_INIT_FUNC_DEFS;
   1141     
   1142     if(SOC_E_NONE != cprimod_payload_size_info_t_validate(config_info)) {
   1143         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   1144     }
   1145 
   1146     /* Dispatch */
   1147     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1148     if(__type__ >= cprimodDispatchTypeCount) { 
   1149         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1150     }
   1151 
   1152     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_roe_payload_size_set) {
   1153         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_roe_payload_size_set(unit, port, axc_id, config_info);
   1154         _SOC_IF_ERR_EXIT(__rv__);
   1155     } else { 
   1156         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_roe_payload_size_set isn't implemented for driver type"));
   1157     }
   1158         
   1159 exit:
   1160     SOC_FUNC_RETURN; 
   1161     
   1162 }
   1163 
   1164 
   1165 int cprimod_tx_roe_payload_size_get(int unit, int port, uint32 axc_id, cprimod_payload_size_info_t* config_info)
   1166 {
   1167 
   1168     cprimod_dispatch_type_t __type__;
   1169     int __rv__;        
   1170     SOC_INIT_FUNC_DEFS;
   1171     
   1172     if(config_info == NULL) {
   1173         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   1174     }
   1175     if(SOC_E_NONE != cprimod_payload_size_info_t_init(config_info)) {
   1176         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   1177     }
   1178 
   1179     /* Dispatch */
   1180     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1181     if(__type__ >= cprimodDispatchTypeCount) { 
   1182         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1183     }
   1184 
   1185     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_roe_payload_size_get) {
   1186         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_roe_payload_size_get(unit, port, axc_id, config_info);
   1187         _SOC_IF_ERR_EXIT(__rv__);
   1188     } else { 
   1189         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_roe_payload_size_get isn't implemented for driver type"));
   1190     }
   1191         
   1192 exit:
   1193     SOC_FUNC_RETURN; 
   1194     
   1195 }
   1196 
   1197 
   1198 int cprimod_compression_type_t_validate(cprimod_compression_type_t cprimod_compression_type)
   1199 {        
   1200     SOC_INIT_FUNC_DEFS;
   1201     if(cprimod_compression_type >= cprimod_Count) {
   1202         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   1203     }
   1204         
   1205 exit:
   1206     SOC_FUNC_RETURN; 
   1207     
   1208 }
   1209 
   1210 int cprimod_truncation_type_t_validate(cprimod_truncation_type_t cprimod_truncation_type)
   1211 {        
   1212     SOC_INIT_FUNC_DEFS;
   1213     if(cprimod_truncation_type >= cprimod_truncation_type_Count) {
   1214         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   1215     }
   1216         
   1217 exit:
   1218     SOC_FUNC_RETURN; 
   1219     
   1220 }
   1221 
   1222 int cprimod_encap_decap_data_config_t_validate(const cprimod_encap_decap_data_config_t* cprimod_encap_decap_data_config)
   1223 {        
   1224     SOC_INIT_FUNC_DEFS;
   1225     if(cprimod_encap_decap_data_config == NULL) {
   1226         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   1227     }
   1228 
   1229     if(SOC_E_NONE != cprimod_truncation_type_t_validate(cprimod_encap_decap_data_config->truncation_type)) {
   1230         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("truncation_type validation failed"));
   1231     }
   1232 
   1233     if(SOC_E_NONE != cprimod_compression_type_t_validate(cprimod_encap_decap_data_config->compression_type)) {
   1234         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("compression_type validation failed"));
   1235     }
   1236 
   1237 
   1238         
   1239 exit:
   1240     SOC_FUNC_RETURN; 
   1241     
   1242 }
   1243 
   1244 int cprimod_encap_decap_data_config_t_init(cprimod_encap_decap_data_config_t* cprimod_encap_decap_data_config)
   1245 {        
   1246     SOC_INIT_FUNC_DEFS;
   1247     
   1248     if(cprimod_encap_decap_data_config == NULL){
   1249         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_encap_decap_data_config NULL parameter"));
   1250     }
   1251     sal_memset(cprimod_encap_decap_data_config, 0, sizeof(cprimod_encap_decap_data_config_t));
   1252     cprimod_encap_decap_data_config->sample_size = 0;
   1253     cprimod_encap_decap_data_config->truncation_enable = 0;
   1254     cprimod_encap_decap_data_config->truncation_type = 0;
   1255     cprimod_encap_decap_data_config->compression_type = cprimod_no_compress;
   1256     cprimod_encap_decap_data_config->mux_enable = 0;
   1257     cprimod_encap_decap_data_config->bit_reversal = 0;
   1258     cprimod_encap_decap_data_config->buffer_size = 0;
   1259     cprimod_encap_decap_data_config->priority = 0;
   1260     cprimod_encap_decap_data_config->cycle_size = 0;
   1261     cprimod_encap_decap_data_config->is_agnostic = 0;
   1262 
   1263         
   1264 exit:
   1265     SOC_FUNC_RETURN; 
   1266     
   1267 }
   1268 
   1269 int cprimod_cpri_encap_data_config_set(int unit, int port, uint32 queue_num, const cprimod_encap_decap_data_config_t* config_info)
   1270 {
   1271 
   1272     cprimod_dispatch_type_t __type__;
   1273     int __rv__;        
   1274     SOC_INIT_FUNC_DEFS;
   1275     
   1276     if(SOC_E_NONE != cprimod_encap_decap_data_config_t_validate(config_info)) {
   1277         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   1278     }
   1279 
   1280     /* Dispatch */
   1281     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1282     if(__type__ >= cprimodDispatchTypeCount) { 
   1283         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1284     }
   1285 
   1286     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_encap_data_config_set) {
   1287         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_encap_data_config_set(unit, port, queue_num, config_info);
   1288         _SOC_IF_ERR_EXIT(__rv__);
   1289     } else { 
   1290         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_encap_data_config_set isn't implemented for driver type"));
   1291     }
   1292         
   1293 exit:
   1294     SOC_FUNC_RETURN; 
   1295     
   1296 }
   1297 
   1298 
   1299 int cprimod_cpri_encap_data_config_get(int unit, int port, uint32 queue_num, cprimod_encap_decap_data_config_t* config_info)
   1300 {
   1301 
   1302     cprimod_dispatch_type_t __type__;
   1303     int __rv__;        
   1304     SOC_INIT_FUNC_DEFS;
   1305     
   1306     if(config_info == NULL) {
   1307         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   1308     }
   1309     if(SOC_E_NONE != cprimod_encap_decap_data_config_t_init(config_info)) {
   1310         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   1311     }
   1312 
   1313     /* Dispatch */
   1314     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1315     if(__type__ >= cprimodDispatchTypeCount) { 
   1316         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1317     }
   1318 
   1319     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_encap_data_config_get) {
   1320         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_encap_data_config_get(unit, port, queue_num, config_info);
   1321         _SOC_IF_ERR_EXIT(__rv__);
   1322     } else { 
   1323         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_encap_data_config_get isn't implemented for driver type"));
   1324     }
   1325         
   1326 exit:
   1327     SOC_FUNC_RETURN; 
   1328     
   1329 }
   1330 
   1331 
   1332 int cprimod_cpri_decap_data_config_set(int unit, int port, uint32 queue_num, const cprimod_encap_decap_data_config_t* config_info)
   1333 {
   1334 
   1335     cprimod_dispatch_type_t __type__;
   1336     int __rv__;        
   1337     SOC_INIT_FUNC_DEFS;
   1338     
   1339     if(SOC_E_NONE != cprimod_encap_decap_data_config_t_validate(config_info)) {
   1340         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   1341     }
   1342 
   1343     /* Dispatch */
   1344     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1345     if(__type__ >= cprimodDispatchTypeCount) { 
   1346         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1347     }
   1348 
   1349     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_decap_data_config_set) {
   1350         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_decap_data_config_set(unit, port, queue_num, config_info);
   1351         _SOC_IF_ERR_EXIT(__rv__);
   1352     } else { 
   1353         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_decap_data_config_set isn't implemented for driver type"));
   1354     }
   1355         
   1356 exit:
   1357     SOC_FUNC_RETURN; 
   1358     
   1359 }
   1360 
   1361 
   1362 int cprimod_cpri_decap_data_config_get(int unit, int port, uint32 queue_num, cprimod_encap_decap_data_config_t* config_info)
   1363 {
   1364 
   1365     cprimod_dispatch_type_t __type__;
   1366     int __rv__;        
   1367     SOC_INIT_FUNC_DEFS;
   1368     
   1369     if(config_info == NULL) {
   1370         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   1371     }
   1372     if(SOC_E_NONE != cprimod_encap_decap_data_config_t_init(config_info)) {
   1373         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   1374     }
   1375 
   1376     /* Dispatch */
   1377     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1378     if(__type__ >= cprimodDispatchTypeCount) { 
   1379         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1380     }
   1381 
   1382     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_decap_data_config_get) {
   1383         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_decap_data_config_get(unit, port, queue_num, config_info);
   1384         _SOC_IF_ERR_EXIT(__rv__);
   1385     } else { 
   1386         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_decap_data_config_get isn't implemented for driver type"));
   1387     }
   1388         
   1389 exit:
   1390     SOC_FUNC_RETURN; 
   1391     
   1392 }
   1393 
   1394 
   1395 int cprimod_rsvd4_encap_data_config_t_validate(const cprimod_rsvd4_encap_data_config_t* cprimod_rsvd4_encap_data_config)
   1396 {        
   1397     SOC_INIT_FUNC_DEFS;
   1398     if(cprimod_rsvd4_encap_data_config == NULL) {
   1399         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   1400     }
   1401 
   1402 
   1403         
   1404 exit:
   1405     SOC_FUNC_RETURN; 
   1406     
   1407 }
   1408 
   1409 int cprimod_rsvd4_encap_data_config_t_init(cprimod_rsvd4_encap_data_config_t* cprimod_rsvd4_encap_data_config)
   1410 {        
   1411     SOC_INIT_FUNC_DEFS;
   1412     
   1413     if(cprimod_rsvd4_encap_data_config == NULL){
   1414         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_rsvd4_encap_data_config NULL parameter"));
   1415     }
   1416     sal_memset(cprimod_rsvd4_encap_data_config, 0, sizeof(cprimod_rsvd4_encap_data_config_t));
   1417     cprimod_rsvd4_encap_data_config->buffer_size = 0;
   1418     cprimod_rsvd4_encap_data_config->priority = 0;
   1419     cprimod_rsvd4_encap_data_config->gsm_pad_size = 0;
   1420     cprimod_rsvd4_encap_data_config->gsm_extra_pad_size = 0;
   1421     cprimod_rsvd4_encap_data_config->gsm_pad_enable = 0;
   1422     cprimod_rsvd4_encap_data_config->gsm_control_location = 0;
   1423     cprimod_rsvd4_encap_data_config->bit_reversal = 0;
   1424 
   1425         
   1426 exit:
   1427     SOC_FUNC_RETURN; 
   1428     
   1429 }
   1430 
   1431 int cprimod_rsvd4_decap_data_config_t_validate(const cprimod_rsvd4_decap_data_config_t* cprimod_rsvd4_decap_data_config)
   1432 {        
   1433     SOC_INIT_FUNC_DEFS;
   1434     if(cprimod_rsvd4_decap_data_config == NULL) {
   1435         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   1436     }
   1437 
   1438 
   1439         
   1440 exit:
   1441     SOC_FUNC_RETURN; 
   1442     
   1443 }
   1444 
   1445 int cprimod_rsvd4_decap_data_config_t_init(cprimod_rsvd4_decap_data_config_t* cprimod_rsvd4_decap_data_config)
   1446 {        
   1447     SOC_INIT_FUNC_DEFS;
   1448     
   1449     if(cprimod_rsvd4_decap_data_config == NULL){
   1450         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_rsvd4_decap_data_config NULL parameter"));
   1451     }
   1452     sal_memset(cprimod_rsvd4_decap_data_config, 0, sizeof(cprimod_rsvd4_decap_data_config_t));
   1453     cprimod_rsvd4_decap_data_config->buffer_size = 0;
   1454     cprimod_rsvd4_decap_data_config->cycle_size = 0;
   1455     cprimod_rsvd4_decap_data_config->gsm_pad_size = 0;
   1456     cprimod_rsvd4_decap_data_config->gsm_extra_pad_size = 0;
   1457     cprimod_rsvd4_decap_data_config->gsm_pad_enable = 0;
   1458     cprimod_rsvd4_decap_data_config->gsm_control_location = 0;
   1459     cprimod_rsvd4_decap_data_config->bit_reversal = 0;
   1460 
   1461         
   1462 exit:
   1463     SOC_FUNC_RETURN; 
   1464     
   1465 }
   1466 
   1467 int cprimod_rsvd4_encap_data_config_set(int unit, int port, uint32 queue_num, const cprimod_rsvd4_encap_data_config_t* config_info)
   1468 {
   1469 
   1470     cprimod_dispatch_type_t __type__;
   1471     int __rv__;        
   1472     SOC_INIT_FUNC_DEFS;
   1473     
   1474     if(SOC_E_NONE != cprimod_rsvd4_encap_data_config_t_validate(config_info)) {
   1475         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   1476     }
   1477 
   1478     /* Dispatch */
   1479     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1480     if(__type__ >= cprimodDispatchTypeCount) { 
   1481         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1482     }
   1483 
   1484     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_encap_data_config_set) {
   1485         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_encap_data_config_set(unit, port, queue_num, config_info);
   1486         _SOC_IF_ERR_EXIT(__rv__);
   1487     } else { 
   1488         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_encap_data_config_set isn't implemented for driver type"));
   1489     }
   1490         
   1491 exit:
   1492     SOC_FUNC_RETURN; 
   1493     
   1494 }
   1495 
   1496 
   1497 int cprimod_rsvd4_encap_data_config_get(int unit, int port, uint32 queue_num, cprimod_rsvd4_encap_data_config_t* config_info)
   1498 {
   1499 
   1500     cprimod_dispatch_type_t __type__;
   1501     int __rv__;        
   1502     SOC_INIT_FUNC_DEFS;
   1503     
   1504     if(config_info == NULL) {
   1505         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   1506     }
   1507     if(SOC_E_NONE != cprimod_rsvd4_encap_data_config_t_init(config_info)) {
   1508         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   1509     }
   1510 
   1511     /* Dispatch */
   1512     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1513     if(__type__ >= cprimodDispatchTypeCount) { 
   1514         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1515     }
   1516 
   1517     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_encap_data_config_get) {
   1518         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_encap_data_config_get(unit, port, queue_num, config_info);
   1519         _SOC_IF_ERR_EXIT(__rv__);
   1520     } else { 
   1521         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_encap_data_config_get isn't implemented for driver type"));
   1522     }
   1523         
   1524 exit:
   1525     SOC_FUNC_RETURN; 
   1526     
   1527 }
   1528 
   1529 
   1530 int cprimod_rsvd4_decap_data_config_set(int unit, int port, uint32 queue_num, const cprimod_rsvd4_decap_data_config_t* config_info)
   1531 {
   1532 
   1533     cprimod_dispatch_type_t __type__;
   1534     int __rv__;        
   1535     SOC_INIT_FUNC_DEFS;
   1536     
   1537     if(SOC_E_NONE != cprimod_rsvd4_decap_data_config_t_validate(config_info)) {
   1538         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   1539     }
   1540 
   1541     /* Dispatch */
   1542     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1543     if(__type__ >= cprimodDispatchTypeCount) { 
   1544         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1545     }
   1546 
   1547     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_decap_data_config_set) {
   1548         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_decap_data_config_set(unit, port, queue_num, config_info);
   1549         _SOC_IF_ERR_EXIT(__rv__);
   1550     } else { 
   1551         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_decap_data_config_set isn't implemented for driver type"));
   1552     }
   1553         
   1554 exit:
   1555     SOC_FUNC_RETURN; 
   1556     
   1557 }
   1558 
   1559 
   1560 int cprimod_rsvd4_decap_data_config_get(int unit, int port, uint32 queue_num, cprimod_rsvd4_decap_data_config_t* config_info)
   1561 {
   1562 
   1563     cprimod_dispatch_type_t __type__;
   1564     int __rv__;        
   1565     SOC_INIT_FUNC_DEFS;
   1566     
   1567     if(config_info == NULL) {
   1568         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   1569     }
   1570     if(SOC_E_NONE != cprimod_rsvd4_decap_data_config_t_init(config_info)) {
   1571         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   1572     }
   1573 
   1574     /* Dispatch */
   1575     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1576     if(__type__ >= cprimodDispatchTypeCount) { 
   1577         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1578     }
   1579 
   1580     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_decap_data_config_get) {
   1581         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_decap_data_config_get(unit, port, queue_num, config_info);
   1582         _SOC_IF_ERR_EXIT(__rv__);
   1583     } else { 
   1584         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_decap_data_config_get isn't implemented for driver type"));
   1585     }
   1586         
   1587 exit:
   1588     SOC_FUNC_RETURN; 
   1589     
   1590 }
   1591 
   1592 
   1593 int cprimod_hdr_encap_type_t_validate(cprimod_hdr_encap_type_t cprimod_hdr_encap_type)
   1594 {        
   1595     SOC_INIT_FUNC_DEFS;
   1596     if(cprimod_hdr_encap_type >= cprimod_hdr_encap_type_Count) {
   1597         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   1598     }
   1599         
   1600 exit:
   1601     SOC_FUNC_RETURN; 
   1602     
   1603 }
   1604 
   1605 int cprimod_hdr_vlan_type_t_validate(cprimod_hdr_vlan_type_t cprimod_hdr_vlan_type)
   1606 {        
   1607     SOC_INIT_FUNC_DEFS;
   1608     if(cprimod_hdr_vlan_type >= cprimodHdrVlanTypeCount) {
   1609         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   1610     }
   1611         
   1612 exit:
   1613     SOC_FUNC_RETURN; 
   1614     
   1615 }
   1616 
   1617 int cprimod_encap_header_config_t_validate(const cprimod_encap_header_config_t* cprimod_encap_header_config)
   1618 {        
   1619     SOC_INIT_FUNC_DEFS;
   1620     if(cprimod_encap_header_config == NULL) {
   1621         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   1622     }
   1623 
   1624     if(SOC_E_NONE != cprimod_hdr_encap_type_t_validate(cprimod_encap_header_config->header_type)) {
   1625         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("header_type validation failed"));
   1626     }
   1627 
   1628     if(SOC_E_NONE != cprimod_hdr_vlan_type_t_validate(cprimod_encap_header_config->vlan_type)) {
   1629         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("vlan_type validation failed"));
   1630     }
   1631 
   1632 
   1633         
   1634 exit:
   1635     SOC_FUNC_RETURN; 
   1636     
   1637 }
   1638 
   1639 int cprimod_encap_header_config_t_init(cprimod_encap_header_config_t* cprimod_encap_header_config)
   1640 {        
   1641     SOC_INIT_FUNC_DEFS;
   1642     
   1643     if(cprimod_encap_header_config == NULL){
   1644         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_encap_header_config NULL parameter"));
   1645     }
   1646     sal_memset(cprimod_encap_header_config, 0, sizeof(cprimod_encap_header_config_t));
   1647     cprimod_encap_header_config->header_type = cprimod_hdr_encap_type_roe;
   1648     cprimod_encap_header_config->flow_id = 0xFF;
   1649     cprimod_encap_header_config->roe_subtype = 0;
   1650     cprimod_encap_header_config->ordering_info_index = 0;
   1651     cprimod_encap_header_config->mac_da_index = 0;
   1652     cprimod_encap_header_config->mac_sa_index = 0;
   1653     cprimod_encap_header_config->vlan_type = cprimodHdrVlanTypeUntagged;
   1654     cprimod_encap_header_config->vlan_id_0_index = 0;
   1655     cprimod_encap_header_config->vlan_id_1_index = 0;
   1656     cprimod_encap_header_config->vlan_0_priority = 0;
   1657     cprimod_encap_header_config->vlan_1_priority = 0;
   1658     cprimod_encap_header_config->vlan_eth_type_index = 0;
   1659     cprimod_encap_header_config->use_tagid_for_vlan = 0;
   1660     cprimod_encap_header_config->use_tagid_for_flowid = 0;
   1661     cprimod_encap_header_config->use_opcode = 0;
   1662     cprimod_encap_header_config->roe_opcode = 0;
   1663     cprimod_encap_header_config->version = 0;
   1664     cprimod_encap_header_config->roe_frame_format = CPRIMOD_CPRI_ROE_FRAME_FORMAT_IEEE1914;
   1665     cprimod_encap_header_config->ecpri_pc_id = 0;
   1666     cprimod_encap_header_config->ecpri_msg_type = 0;
   1667 
   1668         
   1669 exit:
   1670     SOC_FUNC_RETURN; 
   1671     
   1672 }
   1673 
   1674 int cprimod_encap_header_config_set(int unit, int port, uint32 queue_num, const cprimod_encap_header_config_t* config_info)
   1675 {
   1676 
   1677     cprimod_dispatch_type_t __type__;
   1678     int __rv__;        
   1679     SOC_INIT_FUNC_DEFS;
   1680     
   1681     if(SOC_E_NONE != cprimod_encap_header_config_t_validate(config_info)) {
   1682         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   1683     }
   1684 
   1685     /* Dispatch */
   1686     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1687     if(__type__ >= cprimodDispatchTypeCount) { 
   1688         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1689     }
   1690 
   1691     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_header_config_set) {
   1692         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_header_config_set(unit, port, queue_num, config_info);
   1693         _SOC_IF_ERR_EXIT(__rv__);
   1694     } else { 
   1695         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_header_config_set isn't implemented for driver type"));
   1696     }
   1697         
   1698 exit:
   1699     SOC_FUNC_RETURN; 
   1700     
   1701 }
   1702 
   1703 
   1704 int cprimod_encap_header_config_get(int unit, int port, uint32 queue_num, cprimod_encap_header_config_t* config_info)
   1705 {
   1706 
   1707     cprimod_dispatch_type_t __type__;
   1708     int __rv__;        
   1709     SOC_INIT_FUNC_DEFS;
   1710     
   1711     if(config_info == NULL) {
   1712         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   1713     }
   1714     if(SOC_E_NONE != cprimod_encap_header_config_t_init(config_info)) {
   1715         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   1716     }
   1717 
   1718     /* Dispatch */
   1719     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1720     if(__type__ >= cprimodDispatchTypeCount) { 
   1721         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1722     }
   1723 
   1724     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_header_config_get) {
   1725         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_header_config_get(unit, port, queue_num, config_info);
   1726         _SOC_IF_ERR_EXIT(__rv__);
   1727     } else { 
   1728         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_header_config_get isn't implemented for driver type"));
   1729     }
   1730         
   1731 exit:
   1732     SOC_FUNC_RETURN; 
   1733     
   1734 }
   1735 
   1736 
   1737 int cprimod_rx_rsvd4_gsm_tsn_bitmap_set(int unit, int port, uint32 queue_num, uint32 tsn_bitmap)
   1738 {
   1739 
   1740     cprimod_dispatch_type_t __type__;
   1741     int __rv__;        
   1742     SOC_INIT_FUNC_DEFS;
   1743     
   1744     /* Dispatch */
   1745     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1746     if(__type__ >= cprimodDispatchTypeCount) { 
   1747         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1748     }
   1749 
   1750     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rx_rsvd4_gsm_tsn_bitmap_set) {
   1751         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rx_rsvd4_gsm_tsn_bitmap_set(unit, port, queue_num, tsn_bitmap);
   1752         _SOC_IF_ERR_EXIT(__rv__);
   1753     } else { 
   1754         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rx_rsvd4_gsm_tsn_bitmap_set isn't implemented for driver type"));
   1755     }
   1756         
   1757 exit:
   1758     SOC_FUNC_RETURN; 
   1759     
   1760 }
   1761 
   1762 
   1763 int cprimod_rx_rsvd4_gsm_tsn_bitmap_get(int unit, int port, uint32 queue_num, uint32* tsn_bitmap)
   1764 {
   1765 
   1766     cprimod_dispatch_type_t __type__;
   1767     int __rv__;        
   1768     SOC_INIT_FUNC_DEFS;
   1769     
   1770     if(tsn_bitmap == NULL) {
   1771         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tsn_bitmap NULL parameter"));
   1772     }
   1773     /* Dispatch */
   1774     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1775     if(__type__ >= cprimodDispatchTypeCount) { 
   1776         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1777     }
   1778 
   1779     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rx_rsvd4_gsm_tsn_bitmap_get) {
   1780         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rx_rsvd4_gsm_tsn_bitmap_get(unit, port, queue_num, tsn_bitmap);
   1781         _SOC_IF_ERR_EXIT(__rv__);
   1782     } else { 
   1783         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rx_rsvd4_gsm_tsn_bitmap_get isn't implemented for driver type"));
   1784     }
   1785         
   1786 exit:
   1787     SOC_FUNC_RETURN; 
   1788     
   1789 }
   1790 
   1791 
   1792 int cprimod_ordering_info_type_t_validate(cprimod_ordering_info_type_t cprimod_ordering_info_type)
   1793 {        
   1794     SOC_INIT_FUNC_DEFS;
   1795     if(cprimod_ordering_info_type >= cprimod_ordering_info_type_Count) {
   1796         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   1797     }
   1798         
   1799 exit:
   1800     SOC_FUNC_RETURN; 
   1801     
   1802 }
   1803 
   1804 int cprimod_ordering_info_prop_t_validate(cprimod_ordering_info_prop_t cprimod_ordering_info_prop)
   1805 {        
   1806     SOC_INIT_FUNC_DEFS;
   1807     if(cprimod_ordering_info_prop >= cprimod_ordering_info_prop_Count) {
   1808         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   1809     }
   1810         
   1811 exit:
   1812     SOC_FUNC_RETURN; 
   1813     
   1814 }
   1815 
   1816 int cprimod_encap_ordering_info_entry_t_validate(const cprimod_encap_ordering_info_entry_t* cprimod_encap_ordering_info_entry)
   1817 {        
   1818     SOC_INIT_FUNC_DEFS;
   1819     if(cprimod_encap_ordering_info_entry == NULL) {
   1820         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   1821     }
   1822 
   1823     if(SOC_E_NONE != cprimod_ordering_info_type_t_validate(cprimod_encap_ordering_info_entry->type)) {
   1824         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("type validation failed"));
   1825     }
   1826 
   1827     if(SOC_E_NONE != cprimod_ordering_info_prop_t_validate(cprimod_encap_ordering_info_entry->pcnt_prop)) {
   1828         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pcnt_prop validation failed"));
   1829     }
   1830 
   1831     if(SOC_E_NONE != cprimod_ordering_info_prop_t_validate(cprimod_encap_ordering_info_entry->qcnt_prop)) {
   1832         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("qcnt_prop validation failed"));
   1833     }
   1834 
   1835 
   1836         
   1837 exit:
   1838     SOC_FUNC_RETURN; 
   1839     
   1840 }
   1841 
   1842 int cprimod_encap_ordering_info_entry_t_init(cprimod_encap_ordering_info_entry_t* cprimod_encap_ordering_info_entry)
   1843 {        
   1844     SOC_INIT_FUNC_DEFS;
   1845     
   1846     if(cprimod_encap_ordering_info_entry == NULL){
   1847         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_encap_ordering_info_entry NULL parameter"));
   1848     }
   1849     sal_memset(cprimod_encap_ordering_info_entry, 0, sizeof(cprimod_encap_ordering_info_entry_t));
   1850     cprimod_encap_ordering_info_entry->type = cprimod_ordering_info_type_roe_sequence;
   1851     cprimod_encap_ordering_info_entry->pcnt_prop = cprimod_ordering_info_prop_increment_by_constant;
   1852     cprimod_encap_ordering_info_entry->pcnt_size = 1;
   1853     cprimod_encap_ordering_info_entry->pcnt_increment = 0;
   1854     cprimod_encap_ordering_info_entry->pcnt_max = 0;
   1855     cprimod_encap_ordering_info_entry->qcnt_prop = cprimod_ordering_info_prop_increment_by_constant;
   1856     cprimod_encap_ordering_info_entry->qcnt_size = 1;
   1857     cprimod_encap_ordering_info_entry->qcnt_increment = 0;
   1858     cprimod_encap_ordering_info_entry->qcnt_max = 0;
   1859     cprimod_encap_ordering_info_entry->seq_reserve_value = 0;
   1860 
   1861         
   1862 exit:
   1863     SOC_FUNC_RETURN; 
   1864     
   1865 }
   1866 
   1867 int cprimod_decap_ordering_info_entry_t_validate(const cprimod_decap_ordering_info_entry_t* cprimod_decap_ordering_info_entry)
   1868 {        
   1869     SOC_INIT_FUNC_DEFS;
   1870     if(cprimod_decap_ordering_info_entry == NULL) {
   1871         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   1872     }
   1873 
   1874     if(SOC_E_NONE != cprimod_ordering_info_type_t_validate(cprimod_decap_ordering_info_entry->type)) {
   1875         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("type validation failed"));
   1876     }
   1877 
   1878 
   1879         
   1880 exit:
   1881     SOC_FUNC_RETURN; 
   1882     
   1883 }
   1884 
   1885 int cprimod_decap_ordering_info_entry_t_init(cprimod_decap_ordering_info_entry_t* cprimod_decap_ordering_info_entry)
   1886 {        
   1887     SOC_INIT_FUNC_DEFS;
   1888     
   1889     if(cprimod_decap_ordering_info_entry == NULL){
   1890         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_decap_ordering_info_entry NULL parameter"));
   1891     }
   1892     sal_memset(cprimod_decap_ordering_info_entry, 0, sizeof(cprimod_decap_ordering_info_entry_t));
   1893     cprimod_decap_ordering_info_entry->type = cprimod_ordering_info_type_roe_sequence;
   1894     cprimod_decap_ordering_info_entry->pcnt_extended = 0;
   1895     cprimod_decap_ordering_info_entry->pcnt_pkt_count = 0;
   1896     cprimod_decap_ordering_info_entry->pcnt_size = 1;
   1897     cprimod_decap_ordering_info_entry->pcnt_increment = 0;
   1898     cprimod_decap_ordering_info_entry->pcnt_max = 0;
   1899     cprimod_decap_ordering_info_entry->pcnt_bias = 0;
   1900     cprimod_decap_ordering_info_entry->pcnt_increment_p2 = 0;
   1901     cprimod_decap_ordering_info_entry->qcnt_size = 1;
   1902     cprimod_decap_ordering_info_entry->qcnt_increment = 0;
   1903     cprimod_decap_ordering_info_entry->qcnt_max = 0;
   1904     cprimod_decap_ordering_info_entry->qcnt_bias = 0;
   1905     cprimod_decap_ordering_info_entry->qcnt_increment_p2 = 0;
   1906     cprimod_decap_ordering_info_entry->modulo_2 = 0;
   1907     cprimod_decap_ordering_info_entry->gsm_tsn_bitmap = 0;
   1908     cprimod_decap_ordering_info_entry->seq_reserve_value = 0;
   1909 
   1910         
   1911 exit:
   1912     SOC_FUNC_RETURN; 
   1913     
   1914 }
   1915 
   1916 int cprimod_encap_ordering_info_entry_set(int unit, int port, uint32 index, const cprimod_encap_ordering_info_entry_t* user_entry)
   1917 {
   1918 
   1919     cprimod_dispatch_type_t __type__;
   1920     int __rv__;        
   1921     SOC_INIT_FUNC_DEFS;
   1922     
   1923     if(SOC_E_NONE != cprimod_encap_ordering_info_entry_t_validate(user_entry)) {
   1924         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("user_entry validation failed"));
   1925     }
   1926 
   1927     /* Dispatch */
   1928     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1929     if(__type__ >= cprimodDispatchTypeCount) { 
   1930         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1931     }
   1932 
   1933     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_ordering_info_entry_set) {
   1934         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_ordering_info_entry_set(unit, port, index, user_entry);
   1935         _SOC_IF_ERR_EXIT(__rv__);
   1936     } else { 
   1937         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_ordering_info_entry_set isn't implemented for driver type"));
   1938     }
   1939         
   1940 exit:
   1941     SOC_FUNC_RETURN; 
   1942     
   1943 }
   1944 
   1945 
   1946 int cprimod_encap_ordering_info_entry_get(int unit, int port, uint32 index, cprimod_encap_ordering_info_entry_t* user_entry)
   1947 {
   1948 
   1949     cprimod_dispatch_type_t __type__;
   1950     int __rv__;        
   1951     SOC_INIT_FUNC_DEFS;
   1952     
   1953     if(user_entry == NULL) {
   1954         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("user_entry NULL parameter"));
   1955     }
   1956     if(SOC_E_NONE != cprimod_encap_ordering_info_entry_t_init(user_entry)) {
   1957         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("user_entry initialization failed"));
   1958     }
   1959 
   1960     /* Dispatch */
   1961     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1962     if(__type__ >= cprimodDispatchTypeCount) { 
   1963         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1964     }
   1965 
   1966     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_ordering_info_entry_get) {
   1967         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_ordering_info_entry_get(unit, port, index, user_entry);
   1968         _SOC_IF_ERR_EXIT(__rv__);
   1969     } else { 
   1970         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_ordering_info_entry_get isn't implemented for driver type"));
   1971     }
   1972         
   1973 exit:
   1974     SOC_FUNC_RETURN; 
   1975     
   1976 }
   1977 
   1978 
   1979 int cprimod_decap_ordering_info_entry_set(int unit, int port, uint32 index, const cprimod_decap_ordering_info_entry_t* user_entry)
   1980 {
   1981 
   1982     cprimod_dispatch_type_t __type__;
   1983     int __rv__;        
   1984     SOC_INIT_FUNC_DEFS;
   1985     
   1986     if(SOC_E_NONE != cprimod_decap_ordering_info_entry_t_validate(user_entry)) {
   1987         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("user_entry validation failed"));
   1988     }
   1989 
   1990     /* Dispatch */
   1991     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   1992     if(__type__ >= cprimodDispatchTypeCount) { 
   1993         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   1994     }
   1995 
   1996     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_ordering_info_entry_set) {
   1997         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_ordering_info_entry_set(unit, port, index, user_entry);
   1998         _SOC_IF_ERR_EXIT(__rv__);
   1999     } else { 
   2000         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_ordering_info_entry_set isn't implemented for driver type"));
   2001     }
   2002         
   2003 exit:
   2004     SOC_FUNC_RETURN; 
   2005     
   2006 }
   2007 
   2008 
   2009 int cprimod_decap_ordering_info_entry_get(int unit, int port, uint32 index, cprimod_decap_ordering_info_entry_t* user_entry)
   2010 {
   2011 
   2012     cprimod_dispatch_type_t __type__;
   2013     int __rv__;        
   2014     SOC_INIT_FUNC_DEFS;
   2015     
   2016     if(user_entry == NULL) {
   2017         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("user_entry NULL parameter"));
   2018     }
   2019     if(SOC_E_NONE != cprimod_decap_ordering_info_entry_t_init(user_entry)) {
   2020         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("user_entry initialization failed"));
   2021     }
   2022 
   2023     /* Dispatch */
   2024     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2025     if(__type__ >= cprimodDispatchTypeCount) { 
   2026         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2027     }
   2028 
   2029     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_ordering_info_entry_get) {
   2030         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_ordering_info_entry_get(unit, port, index, user_entry);
   2031         _SOC_IF_ERR_EXIT(__rv__);
   2032     } else { 
   2033         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_ordering_info_entry_get isn't implemented for driver type"));
   2034     }
   2035         
   2036 exit:
   2037     SOC_FUNC_RETURN; 
   2038     
   2039 }
   2040 
   2041 
   2042 int cprimod_cpri_ordering_info_offset_t_validate(const cprimod_cpri_ordering_info_offset_t* cprimod_cpri_ordering_info_offset)
   2043 {        
   2044     SOC_INIT_FUNC_DEFS;
   2045     if(cprimod_cpri_ordering_info_offset == NULL) {
   2046         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   2047     }
   2048 
   2049 
   2050         
   2051 exit:
   2052     SOC_FUNC_RETURN; 
   2053     
   2054 }
   2055 
   2056 int cprimod_cpri_ordering_info_offset_t_init(cprimod_cpri_ordering_info_offset_t* cprimod_cpri_ordering_info_offset)
   2057 {        
   2058     SOC_INIT_FUNC_DEFS;
   2059     
   2060     if(cprimod_cpri_ordering_info_offset == NULL){
   2061         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_ordering_info_offset NULL parameter"));
   2062     }
   2063     sal_memset(cprimod_cpri_ordering_info_offset, 0, sizeof(cprimod_cpri_ordering_info_offset_t));
   2064     cprimod_cpri_ordering_info_offset->p_size = 1;
   2065     cprimod_cpri_ordering_info_offset->p_offset = 0;
   2066     cprimod_cpri_ordering_info_offset->q_size = 0;
   2067     cprimod_cpri_ordering_info_offset->q_offset = 0;
   2068 
   2069         
   2070 exit:
   2071     SOC_FUNC_RETURN; 
   2072     
   2073 }
   2074 
   2075 int cprimod_encap_ordering_info_sequence_offset_set(int unit, int port, uint32 queue, uint32 control, const cprimod_cpri_ordering_info_offset_t* offset_entry)
   2076 {
   2077 
   2078     cprimod_dispatch_type_t __type__;
   2079     int __rv__;        
   2080     SOC_INIT_FUNC_DEFS;
   2081     
   2082     if(SOC_E_NONE != cprimod_cpri_ordering_info_offset_t_validate(offset_entry)) {
   2083         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("offset_entry validation failed"));
   2084     }
   2085 
   2086     /* Dispatch */
   2087     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2088     if(__type__ >= cprimodDispatchTypeCount) { 
   2089         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2090     }
   2091 
   2092     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_ordering_info_sequence_offset_set) {
   2093         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_ordering_info_sequence_offset_set(unit, port, queue, control, offset_entry);
   2094         _SOC_IF_ERR_EXIT(__rv__);
   2095     } else { 
   2096         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_ordering_info_sequence_offset_set isn't implemented for driver type"));
   2097     }
   2098         
   2099 exit:
   2100     SOC_FUNC_RETURN; 
   2101     
   2102 }
   2103 
   2104 
   2105 int cprimod_encap_ordering_info_sequence_offset_get(int unit, int port, uint32 queue, uint32 control, uint32 pcnt_size, uint32 qcnt_size, cprimod_cpri_ordering_info_offset_t* offset_entry)
   2106 {
   2107 
   2108     cprimod_dispatch_type_t __type__;
   2109     int __rv__;        
   2110     SOC_INIT_FUNC_DEFS;
   2111     
   2112     if(offset_entry == NULL) {
   2113         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("offset_entry NULL parameter"));
   2114     }
   2115     if(SOC_E_NONE != cprimod_cpri_ordering_info_offset_t_init(offset_entry)) {
   2116         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("offset_entry initialization failed"));
   2117     }
   2118 
   2119     /* Dispatch */
   2120     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2121     if(__type__ >= cprimodDispatchTypeCount) { 
   2122         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2123     }
   2124 
   2125     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_ordering_info_sequence_offset_get) {
   2126         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_ordering_info_sequence_offset_get(unit, port, queue, control, pcnt_size, qcnt_size, offset_entry);
   2127         _SOC_IF_ERR_EXIT(__rv__);
   2128     } else { 
   2129         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_ordering_info_sequence_offset_get isn't implemented for driver type"));
   2130     }
   2131         
   2132 exit:
   2133     SOC_FUNC_RETURN; 
   2134     
   2135 }
   2136 
   2137 
   2138 int cprimod_decap_ordering_info_sequence_offset_set(int unit, int port, uint32 queue, const cprimod_cpri_ordering_info_offset_t* offset_entry)
   2139 {
   2140 
   2141     cprimod_dispatch_type_t __type__;
   2142     int __rv__;        
   2143     SOC_INIT_FUNC_DEFS;
   2144     
   2145     if(SOC_E_NONE != cprimod_cpri_ordering_info_offset_t_validate(offset_entry)) {
   2146         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("offset_entry validation failed"));
   2147     }
   2148 
   2149     /* Dispatch */
   2150     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2151     if(__type__ >= cprimodDispatchTypeCount) { 
   2152         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2153     }
   2154 
   2155     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_ordering_info_sequence_offset_set) {
   2156         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_ordering_info_sequence_offset_set(unit, port, queue, offset_entry);
   2157         _SOC_IF_ERR_EXIT(__rv__);
   2158     } else { 
   2159         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_ordering_info_sequence_offset_set isn't implemented for driver type"));
   2160     }
   2161         
   2162 exit:
   2163     SOC_FUNC_RETURN; 
   2164     
   2165 }
   2166 
   2167 
   2168 int cprimod_decap_ordering_info_sequence_offset_get(int unit, int port, uint32 queue, uint32 pcnt_size, uint32 qcnt_size, cprimod_cpri_ordering_info_offset_t* offset_entry)
   2169 {
   2170 
   2171     cprimod_dispatch_type_t __type__;
   2172     int __rv__;        
   2173     SOC_INIT_FUNC_DEFS;
   2174     
   2175     if(offset_entry == NULL) {
   2176         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("offset_entry NULL parameter"));
   2177     }
   2178     if(SOC_E_NONE != cprimod_cpri_ordering_info_offset_t_init(offset_entry)) {
   2179         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("offset_entry initialization failed"));
   2180     }
   2181 
   2182     /* Dispatch */
   2183     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2184     if(__type__ >= cprimodDispatchTypeCount) { 
   2185         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2186     }
   2187 
   2188     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_ordering_info_sequence_offset_get) {
   2189         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_ordering_info_sequence_offset_get(unit, port, queue, pcnt_size, qcnt_size, offset_entry);
   2190         _SOC_IF_ERR_EXIT(__rv__);
   2191     } else { 
   2192         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_ordering_info_sequence_offset_get isn't implemented for driver type"));
   2193     }
   2194         
   2195 exit:
   2196     SOC_FUNC_RETURN; 
   2197     
   2198 }
   2199 
   2200 
   2201 int cprimod_encap_mac_da_entry_set(int unit, int port, uint32 index, cprimod_mac_addr_t addr)
   2202 {
   2203 
   2204     cprimod_dispatch_type_t __type__;
   2205     int __rv__;        
   2206     SOC_INIT_FUNC_DEFS;
   2207     
   2208     /* Dispatch */
   2209     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2210     if(__type__ >= cprimodDispatchTypeCount) { 
   2211         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2212     }
   2213 
   2214     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_mac_da_entry_set) {
   2215         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_mac_da_entry_set(unit, port, index, addr);
   2216         _SOC_IF_ERR_EXIT(__rv__);
   2217     } else { 
   2218         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_mac_da_entry_set isn't implemented for driver type"));
   2219     }
   2220         
   2221 exit:
   2222     SOC_FUNC_RETURN; 
   2223     
   2224 }
   2225 
   2226 
   2227 int cprimod_encap_mac_da_entry_get(int unit, int port, uint32 index, cprimod_mac_addr_t addr)
   2228 {
   2229 
   2230     cprimod_dispatch_type_t __type__;
   2231     int __rv__;        
   2232     SOC_INIT_FUNC_DEFS;
   2233     
   2234     /* Dispatch */
   2235     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2236     if(__type__ >= cprimodDispatchTypeCount) { 
   2237         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2238     }
   2239 
   2240     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_mac_da_entry_get) {
   2241         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_mac_da_entry_get(unit, port, index, addr);
   2242         _SOC_IF_ERR_EXIT(__rv__);
   2243     } else { 
   2244         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_mac_da_entry_get isn't implemented for driver type"));
   2245     }
   2246         
   2247 exit:
   2248     SOC_FUNC_RETURN; 
   2249     
   2250 }
   2251 
   2252 
   2253 int cprimod_encap_mac_sa_entry_set(int unit, int port, uint32 index, cprimod_mac_addr_t addr)
   2254 {
   2255 
   2256     cprimod_dispatch_type_t __type__;
   2257     int __rv__;        
   2258     SOC_INIT_FUNC_DEFS;
   2259     
   2260     /* Dispatch */
   2261     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2262     if(__type__ >= cprimodDispatchTypeCount) { 
   2263         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2264     }
   2265 
   2266     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_mac_sa_entry_set) {
   2267         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_mac_sa_entry_set(unit, port, index, addr);
   2268         _SOC_IF_ERR_EXIT(__rv__);
   2269     } else { 
   2270         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_mac_sa_entry_set isn't implemented for driver type"));
   2271     }
   2272         
   2273 exit:
   2274     SOC_FUNC_RETURN; 
   2275     
   2276 }
   2277 
   2278 
   2279 int cprimod_encap_mac_sa_entry_get(int unit, int port, uint32 index, cprimod_mac_addr_t addr)
   2280 {
   2281 
   2282     cprimod_dispatch_type_t __type__;
   2283     int __rv__;        
   2284     SOC_INIT_FUNC_DEFS;
   2285     
   2286     /* Dispatch */
   2287     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2288     if(__type__ >= cprimodDispatchTypeCount) { 
   2289         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2290     }
   2291 
   2292     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_mac_sa_entry_get) {
   2293         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_mac_sa_entry_get(unit, port, index, addr);
   2294         _SOC_IF_ERR_EXIT(__rv__);
   2295     } else { 
   2296         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_mac_sa_entry_get isn't implemented for driver type"));
   2297     }
   2298         
   2299 exit:
   2300     SOC_FUNC_RETURN; 
   2301     
   2302 }
   2303 
   2304 
   2305 int cprimod_vlan_table_id_t_validate(cprimod_vlan_table_id_t cprimod_vlan_table_id)
   2306 {        
   2307     SOC_INIT_FUNC_DEFS;
   2308     if(cprimod_vlan_table_id >= cprimodVlanTableCount) {
   2309         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   2310     }
   2311         
   2312 exit:
   2313     SOC_FUNC_RETURN; 
   2314     
   2315 }
   2316 
   2317 int cprimod_encap_vlan_id_entry_set(int unit, int port, cprimod_vlan_table_id_t table_id, uint32 index, uint32 vlan_id)
   2318 {
   2319 
   2320     cprimod_dispatch_type_t __type__;
   2321     int __rv__;        
   2322     SOC_INIT_FUNC_DEFS;
   2323     
   2324     if(SOC_E_NONE != cprimod_vlan_table_id_t_validate(table_id)) {
   2325         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table_id validation failed"));
   2326     }
   2327 
   2328     /* Dispatch */
   2329     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2330     if(__type__ >= cprimodDispatchTypeCount) { 
   2331         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2332     }
   2333 
   2334     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_vlan_id_entry_set) {
   2335         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_vlan_id_entry_set(unit, port, table_id, index, vlan_id);
   2336         _SOC_IF_ERR_EXIT(__rv__);
   2337     } else { 
   2338         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_vlan_id_entry_set isn't implemented for driver type"));
   2339     }
   2340         
   2341 exit:
   2342     SOC_FUNC_RETURN; 
   2343     
   2344 }
   2345 
   2346 
   2347 int cprimod_encap_vlan_id_entry_get(int unit, int port, cprimod_vlan_table_id_t table_id, uint32 index, uint32* vlan_id)
   2348 {
   2349 
   2350     cprimod_dispatch_type_t __type__;
   2351     int __rv__;        
   2352     SOC_INIT_FUNC_DEFS;
   2353     
   2354     if(SOC_E_NONE != cprimod_vlan_table_id_t_validate(table_id)) {
   2355         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table_id validation failed"));
   2356     }
   2357 
   2358     if(vlan_id == NULL) {
   2359         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("vlan_id NULL parameter"));
   2360     }
   2361     /* Dispatch */
   2362     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2363     if(__type__ >= cprimodDispatchTypeCount) { 
   2364         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2365     }
   2366 
   2367     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_vlan_id_entry_get) {
   2368         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_vlan_id_entry_get(unit, port, table_id, index, vlan_id);
   2369         _SOC_IF_ERR_EXIT(__rv__);
   2370     } else { 
   2371         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_vlan_id_entry_get isn't implemented for driver type"));
   2372     }
   2373         
   2374 exit:
   2375     SOC_FUNC_RETURN; 
   2376     
   2377 }
   2378 
   2379 
   2380 int cprimod_ethertype_t_validate(cprimod_ethertype_t cprimod_ethertype)
   2381 {        
   2382     SOC_INIT_FUNC_DEFS;
   2383     if(cprimod_ethertype >= cprimodEthertypeCount) {
   2384         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   2385     }
   2386         
   2387 exit:
   2388     SOC_FUNC_RETURN; 
   2389     
   2390 }
   2391 
   2392 int cprimod_decap_ethertype_config_set(int unit, int port, cprimod_ethertype_t type_id, uint16 ethertype)
   2393 {
   2394 
   2395     cprimod_dispatch_type_t __type__;
   2396     int __rv__;        
   2397     SOC_INIT_FUNC_DEFS;
   2398     
   2399     if(SOC_E_NONE != cprimod_ethertype_t_validate(type_id)) {
   2400         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("type_id validation failed"));
   2401     }
   2402 
   2403     /* Dispatch */
   2404     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2405     if(__type__ >= cprimodDispatchTypeCount) { 
   2406         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2407     }
   2408 
   2409     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_ethertype_config_set) {
   2410         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_ethertype_config_set(unit, port, type_id, ethertype);
   2411         _SOC_IF_ERR_EXIT(__rv__);
   2412     } else { 
   2413         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_ethertype_config_set isn't implemented for driver type"));
   2414     }
   2415         
   2416 exit:
   2417     SOC_FUNC_RETURN; 
   2418     
   2419 }
   2420 
   2421 
   2422 int cprimod_decap_ethertype_config_get(int unit, int port, cprimod_ethertype_t type_id, uint16* ethertype)
   2423 {
   2424 
   2425     cprimod_dispatch_type_t __type__;
   2426     int __rv__;        
   2427     SOC_INIT_FUNC_DEFS;
   2428     
   2429     if(SOC_E_NONE != cprimod_ethertype_t_validate(type_id)) {
   2430         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("type_id validation failed"));
   2431     }
   2432 
   2433     if(ethertype == NULL) {
   2434         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("ethertype NULL parameter"));
   2435     }
   2436     /* Dispatch */
   2437     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2438     if(__type__ >= cprimodDispatchTypeCount) { 
   2439         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2440     }
   2441 
   2442     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_ethertype_config_get) {
   2443         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_ethertype_config_get(unit, port, type_id, ethertype);
   2444         _SOC_IF_ERR_EXIT(__rv__);
   2445     } else { 
   2446         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_ethertype_config_get isn't implemented for driver type"));
   2447     }
   2448         
   2449 exit:
   2450     SOC_FUNC_RETURN; 
   2451     
   2452 }
   2453 
   2454 
   2455 int cprimod_encap_ethertype_config_set(int unit, int port, cprimod_ethertype_t type_id, uint16 ethertype)
   2456 {
   2457 
   2458     cprimod_dispatch_type_t __type__;
   2459     int __rv__;        
   2460     SOC_INIT_FUNC_DEFS;
   2461     
   2462     if(SOC_E_NONE != cprimod_ethertype_t_validate(type_id)) {
   2463         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("type_id validation failed"));
   2464     }
   2465 
   2466     /* Dispatch */
   2467     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2468     if(__type__ >= cprimodDispatchTypeCount) { 
   2469         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2470     }
   2471 
   2472     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_ethertype_config_set) {
   2473         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_ethertype_config_set(unit, port, type_id, ethertype);
   2474         _SOC_IF_ERR_EXIT(__rv__);
   2475     } else { 
   2476         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_ethertype_config_set isn't implemented for driver type"));
   2477     }
   2478         
   2479 exit:
   2480     SOC_FUNC_RETURN; 
   2481     
   2482 }
   2483 
   2484 
   2485 int cprimod_encap_ethertype_config_get(int unit, int port, cprimod_ethertype_t type_id, uint16* ethertype)
   2486 {
   2487 
   2488     cprimod_dispatch_type_t __type__;
   2489     int __rv__;        
   2490     SOC_INIT_FUNC_DEFS;
   2491     
   2492     if(SOC_E_NONE != cprimod_ethertype_t_validate(type_id)) {
   2493         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("type_id validation failed"));
   2494     }
   2495 
   2496     if(ethertype == NULL) {
   2497         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("ethertype NULL parameter"));
   2498     }
   2499     /* Dispatch */
   2500     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2501     if(__type__ >= cprimodDispatchTypeCount) { 
   2502         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2503     }
   2504 
   2505     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_ethertype_config_get) {
   2506         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_ethertype_config_get(unit, port, type_id, ethertype);
   2507         _SOC_IF_ERR_EXIT(__rv__);
   2508     } else { 
   2509         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_ethertype_config_get isn't implemented for driver type"));
   2510     }
   2511         
   2512 exit:
   2513     SOC_FUNC_RETURN; 
   2514     
   2515 }
   2516 
   2517 
   2518 int cprimod_encap_memory_clear(int unit, int port, int queue_num)
   2519 {
   2520 
   2521     cprimod_dispatch_type_t __type__;
   2522     int __rv__;        
   2523     SOC_INIT_FUNC_DEFS;
   2524     
   2525     /* Dispatch */
   2526     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2527     if(__type__ >= cprimodDispatchTypeCount) { 
   2528         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2529     }
   2530 
   2531     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_memory_clear) {
   2532         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_memory_clear(unit, port, queue_num);
   2533         _SOC_IF_ERR_EXIT(__rv__);
   2534     } else { 
   2535         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_memory_clear isn't implemented for driver type"));
   2536     }
   2537         
   2538 exit:
   2539     SOC_FUNC_RETURN; 
   2540     
   2541 }
   2542 
   2543 
   2544 int cprimod_cpri_rx_framer_state_clear(int unit, int port, int queue_num)
   2545 {
   2546 
   2547     cprimod_dispatch_type_t __type__;
   2548     int __rv__;        
   2549     SOC_INIT_FUNC_DEFS;
   2550     
   2551     /* Dispatch */
   2552     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2553     if(__type__ >= cprimodDispatchTypeCount) { 
   2554         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2555     }
   2556 
   2557     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_framer_state_clear) {
   2558         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_framer_state_clear(unit, port, queue_num);
   2559         _SOC_IF_ERR_EXIT(__rv__);
   2560     } else { 
   2561         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_rx_framer_state_clear isn't implemented for driver type"));
   2562     }
   2563         
   2564 exit:
   2565     SOC_FUNC_RETURN; 
   2566     
   2567 }
   2568 
   2569 
   2570 int cprimod_decap_memory_clear(int unit, int port, int queue_num)
   2571 {
   2572 
   2573     cprimod_dispatch_type_t __type__;
   2574     int __rv__;        
   2575     SOC_INIT_FUNC_DEFS;
   2576     
   2577     /* Dispatch */
   2578     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2579     if(__type__ >= cprimodDispatchTypeCount) { 
   2580         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2581     }
   2582 
   2583     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_memory_clear) {
   2584         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_memory_clear(unit, port, queue_num);
   2585         _SOC_IF_ERR_EXIT(__rv__);
   2586     } else { 
   2587         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_memory_clear isn't implemented for driver type"));
   2588     }
   2589         
   2590 exit:
   2591     SOC_FUNC_RETURN; 
   2592     
   2593 }
   2594 
   2595 
   2596 int cprimod_cpri_tx_framer_state_clear(int unit, int port, int queue_num)
   2597 {
   2598 
   2599     cprimod_dispatch_type_t __type__;
   2600     int __rv__;        
   2601     SOC_INIT_FUNC_DEFS;
   2602     
   2603     /* Dispatch */
   2604     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2605     if(__type__ >= cprimodDispatchTypeCount) { 
   2606         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2607     }
   2608 
   2609     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_tx_framer_state_clear) {
   2610         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_tx_framer_state_clear(unit, port, queue_num);
   2611         _SOC_IF_ERR_EXIT(__rv__);
   2612     } else { 
   2613         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_tx_framer_state_clear isn't implemented for driver type"));
   2614     }
   2615         
   2616 exit:
   2617     SOC_FUNC_RETURN; 
   2618     
   2619 }
   2620 
   2621 
   2622 int cprimod_cls_option_t_validate(cprimod_cls_option_t cprimod_cls_option)
   2623 {        
   2624     SOC_INIT_FUNC_DEFS;
   2625     if(cprimod_cls_option >= cprimodClsOptionCount) {
   2626         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   2627     }
   2628         
   2629 exit:
   2630     SOC_FUNC_RETURN; 
   2631     
   2632 }
   2633 
   2634 int cprimod_cls_flow_type_t_validate(cprimod_cls_flow_type_t cprimod_cls_flow_type)
   2635 {        
   2636     SOC_INIT_FUNC_DEFS;
   2637     if(cprimod_cls_flow_type >= cprimodClsFlowTypeCount) {
   2638         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   2639     }
   2640         
   2641 exit:
   2642     SOC_FUNC_RETURN; 
   2643     
   2644 }
   2645 
   2646 int cprimod_decap_flow_classification_config_set(int unit, int port, uint8 subtype, uint32 queue_num, cprimod_cls_option_t cls_option, cprimod_cls_flow_type_t flow_type)
   2647 {
   2648 
   2649     cprimod_dispatch_type_t __type__;
   2650     int __rv__;        
   2651     SOC_INIT_FUNC_DEFS;
   2652     
   2653     if(SOC_E_NONE != cprimod_cls_option_t_validate(cls_option)) {
   2654         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cls_option validation failed"));
   2655     }
   2656 
   2657     if(SOC_E_NONE != cprimod_cls_flow_type_t_validate(flow_type)) {
   2658         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("flow_type validation failed"));
   2659     }
   2660 
   2661     /* Dispatch */
   2662     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2663     if(__type__ >= cprimodDispatchTypeCount) { 
   2664         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2665     }
   2666 
   2667     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_flow_classification_config_set) {
   2668         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_flow_classification_config_set(unit, port, subtype, queue_num, cls_option, flow_type);
   2669         _SOC_IF_ERR_EXIT(__rv__);
   2670     } else { 
   2671         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_flow_classification_config_set isn't implemented for driver type"));
   2672     }
   2673         
   2674 exit:
   2675     SOC_FUNC_RETURN; 
   2676     
   2677 }
   2678 
   2679 
   2680 int cprimod_decap_flow_classification_config_get(int unit, int port, uint8 subtype, uint32* queue_num, cprimod_cls_option_t* cls_option, cprimod_cls_flow_type_t* flow_type)
   2681 {
   2682 
   2683     cprimod_dispatch_type_t __type__;
   2684     int __rv__;        
   2685     SOC_INIT_FUNC_DEFS;
   2686     
   2687     if(queue_num == NULL) {
   2688         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("queue_num NULL parameter"));
   2689     }
   2690     if(cls_option == NULL) {
   2691         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cls_option NULL parameter"));
   2692     }
   2693     if(flow_type == NULL) {
   2694         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("flow_type NULL parameter"));
   2695     }
   2696     /* Dispatch */
   2697     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2698     if(__type__ >= cprimodDispatchTypeCount) { 
   2699         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2700     }
   2701 
   2702     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_flow_classification_config_get) {
   2703         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_flow_classification_config_get(unit, port, subtype, queue_num, cls_option, flow_type);
   2704         _SOC_IF_ERR_EXIT(__rv__);
   2705     } else { 
   2706         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_flow_classification_config_get isn't implemented for driver type"));
   2707     }
   2708         
   2709 exit:
   2710     SOC_FUNC_RETURN; 
   2711     
   2712 }
   2713 
   2714 
   2715 int cprimod_decap_flow_to_queue_mapping_set(int unit, int port, uint32 flow_id, uint32 queue_num)
   2716 {
   2717 
   2718     cprimod_dispatch_type_t __type__;
   2719     int __rv__;        
   2720     SOC_INIT_FUNC_DEFS;
   2721     
   2722     /* Dispatch */
   2723     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2724     if(__type__ >= cprimodDispatchTypeCount) { 
   2725         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2726     }
   2727 
   2728     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_flow_to_queue_mapping_set) {
   2729         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_flow_to_queue_mapping_set(unit, port, flow_id, queue_num);
   2730         _SOC_IF_ERR_EXIT(__rv__);
   2731     } else { 
   2732         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_flow_to_queue_mapping_set isn't implemented for driver type"));
   2733     }
   2734         
   2735 exit:
   2736     SOC_FUNC_RETURN; 
   2737     
   2738 }
   2739 
   2740 
   2741 int cprimod_decap_flow_to_queue_mapping_get(int unit, int port, uint32 flow_id, uint32* queue_num)
   2742 {
   2743 
   2744     cprimod_dispatch_type_t __type__;
   2745     int __rv__;        
   2746     SOC_INIT_FUNC_DEFS;
   2747     
   2748     if(queue_num == NULL) {
   2749         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("queue_num NULL parameter"));
   2750     }
   2751     /* Dispatch */
   2752     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2753     if(__type__ >= cprimodDispatchTypeCount) { 
   2754         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2755     }
   2756 
   2757     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_flow_to_queue_mapping_get) {
   2758         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_flow_to_queue_mapping_get(unit, port, flow_id, queue_num);
   2759         _SOC_IF_ERR_EXIT(__rv__);
   2760     } else { 
   2761         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_flow_to_queue_mapping_get isn't implemented for driver type"));
   2762     }
   2763         
   2764 exit:
   2765     SOC_FUNC_RETURN; 
   2766     
   2767 }
   2768 
   2769 
   2770 int cprimod_decap_queue_to_ordering_info_index_mapping_set(int unit, int port, uint32 queue_num, uint32 ordering_info_index)
   2771 {
   2772 
   2773     cprimod_dispatch_type_t __type__;
   2774     int __rv__;        
   2775     SOC_INIT_FUNC_DEFS;
   2776     
   2777     /* Dispatch */
   2778     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2779     if(__type__ >= cprimodDispatchTypeCount) { 
   2780         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2781     }
   2782 
   2783     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_queue_to_ordering_info_index_mapping_set) {
   2784         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_queue_to_ordering_info_index_mapping_set(unit, port, queue_num, ordering_info_index);
   2785         _SOC_IF_ERR_EXIT(__rv__);
   2786     } else { 
   2787         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_queue_to_ordering_info_index_mapping_set isn't implemented for driver type"));
   2788     }
   2789         
   2790 exit:
   2791     SOC_FUNC_RETURN; 
   2792     
   2793 }
   2794 
   2795 
   2796 int cprimod_decap_queue_to_ordering_info_index_mapping_get(int unit, int port, uint32 queue_num, uint32* ordering_info_index)
   2797 {
   2798 
   2799     cprimod_dispatch_type_t __type__;
   2800     int __rv__;        
   2801     SOC_INIT_FUNC_DEFS;
   2802     
   2803     if(ordering_info_index == NULL) {
   2804         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("ordering_info_index NULL parameter"));
   2805     }
   2806     /* Dispatch */
   2807     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2808     if(__type__ >= cprimodDispatchTypeCount) { 
   2809         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2810     }
   2811 
   2812     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_queue_to_ordering_info_index_mapping_get) {
   2813         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_queue_to_ordering_info_index_mapping_get(unit, port, queue_num, ordering_info_index);
   2814         _SOC_IF_ERR_EXIT(__rv__);
   2815     } else { 
   2816         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_queue_to_ordering_info_index_mapping_get isn't implemented for driver type"));
   2817     }
   2818         
   2819 exit:
   2820     SOC_FUNC_RETURN; 
   2821     
   2822 }
   2823 
   2824 
   2825 int cprimod_tx_framer_tgen_tick_set(int unit, int port, uint32 divider, uint32 basic_frame_tick, uint32 tick_bitmap, uint32 tick_bitmap_size)
   2826 {
   2827 
   2828     cprimod_dispatch_type_t __type__;
   2829     int __rv__;        
   2830     SOC_INIT_FUNC_DEFS;
   2831     
   2832     /* Dispatch */
   2833     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2834     if(__type__ >= cprimodDispatchTypeCount) { 
   2835         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2836     }
   2837 
   2838     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_tick_set) {
   2839         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_tick_set(unit, port, divider, basic_frame_tick, tick_bitmap, tick_bitmap_size);
   2840         _SOC_IF_ERR_EXIT(__rv__);
   2841     } else { 
   2842         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_tgen_tick_set isn't implemented for driver type"));
   2843     }
   2844         
   2845 exit:
   2846     SOC_FUNC_RETURN; 
   2847     
   2848 }
   2849 
   2850 
   2851 int cprimod_tx_framer_tgen_tick_get(int unit, int port, uint32* divider, uint32* basic_frame_tick, uint32* tick_bitmap, uint32* tick_bitmap_size)
   2852 {
   2853 
   2854     cprimod_dispatch_type_t __type__;
   2855     int __rv__;        
   2856     SOC_INIT_FUNC_DEFS;
   2857     
   2858     if(divider == NULL) {
   2859         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("divider NULL parameter"));
   2860     }
   2861     if(basic_frame_tick == NULL) {
   2862         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("basic_frame_tick NULL parameter"));
   2863     }
   2864     if(tick_bitmap == NULL) {
   2865         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tick_bitmap NULL parameter"));
   2866     }
   2867     if(tick_bitmap_size == NULL) {
   2868         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tick_bitmap_size NULL parameter"));
   2869     }
   2870     /* Dispatch */
   2871     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2872     if(__type__ >= cprimodDispatchTypeCount) { 
   2873         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2874     }
   2875 
   2876     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_tick_get) {
   2877         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_tick_get(unit, port, divider, basic_frame_tick, tick_bitmap, tick_bitmap_size);
   2878         _SOC_IF_ERR_EXIT(__rv__);
   2879     } else { 
   2880         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_tgen_tick_get isn't implemented for driver type"));
   2881     }
   2882         
   2883 exit:
   2884     SOC_FUNC_RETURN; 
   2885     
   2886 }
   2887 
   2888 
   2889 int cprimod_tx_framer_tgen_enable(int unit, int port, uint8 enable)
   2890 {
   2891 
   2892     cprimod_dispatch_type_t __type__;
   2893     int __rv__;        
   2894     SOC_INIT_FUNC_DEFS;
   2895     
   2896     /* Dispatch */
   2897     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2898     if(__type__ >= cprimodDispatchTypeCount) { 
   2899         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2900     }
   2901 
   2902     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_enable) {
   2903         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_enable(unit, port, enable);
   2904         _SOC_IF_ERR_EXIT(__rv__);
   2905     } else { 
   2906         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_tgen_enable isn't implemented for driver type"));
   2907     }
   2908         
   2909 exit:
   2910     SOC_FUNC_RETURN; 
   2911     
   2912 }
   2913 
   2914 
   2915 int cprimod_tx_framer_tgen_offset_set(int unit, int port, uint64 timestamp_offset)
   2916 {
   2917 
   2918     cprimod_dispatch_type_t __type__;
   2919     int __rv__;        
   2920     SOC_INIT_FUNC_DEFS;
   2921     
   2922     /* Dispatch */
   2923     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2924     if(__type__ >= cprimodDispatchTypeCount) { 
   2925         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2926     }
   2927 
   2928     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_offset_set) {
   2929         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_offset_set(unit, port, timestamp_offset);
   2930         _SOC_IF_ERR_EXIT(__rv__);
   2931     } else { 
   2932         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_tgen_offset_set isn't implemented for driver type"));
   2933     }
   2934         
   2935 exit:
   2936     SOC_FUNC_RETURN; 
   2937     
   2938 }
   2939 
   2940 
   2941 int cprimod_tx_framer_tgen_offset_get(int unit, int port, uint64* timestamp_offset)
   2942 {
   2943 
   2944     cprimod_dispatch_type_t __type__;
   2945     int __rv__;        
   2946     SOC_INIT_FUNC_DEFS;
   2947     
   2948     if(timestamp_offset == NULL) {
   2949         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("timestamp_offset NULL parameter"));
   2950     }
   2951     /* Dispatch */
   2952     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2953     if(__type__ >= cprimodDispatchTypeCount) { 
   2954         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2955     }
   2956 
   2957     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_offset_get) {
   2958         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_offset_get(unit, port, timestamp_offset);
   2959         _SOC_IF_ERR_EXIT(__rv__);
   2960     } else { 
   2961         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_tgen_offset_get isn't implemented for driver type"));
   2962     }
   2963         
   2964 exit:
   2965     SOC_FUNC_RETURN; 
   2966     
   2967 }
   2968 
   2969 
   2970 int cprimod_tx_framer_tgen_next_bfn_config_set(int unit, int port, uint32 tgen_bfn)
   2971 {
   2972 
   2973     cprimod_dispatch_type_t __type__;
   2974     int __rv__;        
   2975     SOC_INIT_FUNC_DEFS;
   2976     
   2977     /* Dispatch */
   2978     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   2979     if(__type__ >= cprimodDispatchTypeCount) { 
   2980         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   2981     }
   2982 
   2983     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_next_bfn_config_set) {
   2984         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_next_bfn_config_set(unit, port, tgen_bfn);
   2985         _SOC_IF_ERR_EXIT(__rv__);
   2986     } else { 
   2987         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_tgen_next_bfn_config_set isn't implemented for driver type"));
   2988     }
   2989         
   2990 exit:
   2991     SOC_FUNC_RETURN; 
   2992     
   2993 }
   2994 
   2995 
   2996 int cprimod_tx_framer_tgen_next_bfn_config_get(int unit, int port, uint32* tgen_bfn)
   2997 {
   2998 
   2999     cprimod_dispatch_type_t __type__;
   3000     int __rv__;        
   3001     SOC_INIT_FUNC_DEFS;
   3002     
   3003     if(tgen_bfn == NULL) {
   3004         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tgen_bfn NULL parameter"));
   3005     }
   3006     /* Dispatch */
   3007     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3008     if(__type__ >= cprimodDispatchTypeCount) { 
   3009         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3010     }
   3011 
   3012     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_next_bfn_config_get) {
   3013         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_next_bfn_config_get(unit, port, tgen_bfn);
   3014         _SOC_IF_ERR_EXIT(__rv__);
   3015     } else { 
   3016         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_tgen_next_bfn_config_get isn't implemented for driver type"));
   3017     }
   3018         
   3019 exit:
   3020     SOC_FUNC_RETURN; 
   3021     
   3022 }
   3023 
   3024 
   3025 int cprimod_tx_framer_tgen_next_hfn_config_set(int unit, int port, uint32 tgen_hfn)
   3026 {
   3027 
   3028     cprimod_dispatch_type_t __type__;
   3029     int __rv__;        
   3030     SOC_INIT_FUNC_DEFS;
   3031     
   3032     /* Dispatch */
   3033     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3034     if(__type__ >= cprimodDispatchTypeCount) { 
   3035         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3036     }
   3037 
   3038     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_next_hfn_config_set) {
   3039         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_next_hfn_config_set(unit, port, tgen_hfn);
   3040         _SOC_IF_ERR_EXIT(__rv__);
   3041     } else { 
   3042         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_tgen_next_hfn_config_set isn't implemented for driver type"));
   3043     }
   3044         
   3045 exit:
   3046     SOC_FUNC_RETURN; 
   3047     
   3048 }
   3049 
   3050 
   3051 int cprimod_tx_framer_tgen_next_hfn_config_get(int unit, int port, uint32* tgen_hfn)
   3052 {
   3053 
   3054     cprimod_dispatch_type_t __type__;
   3055     int __rv__;        
   3056     SOC_INIT_FUNC_DEFS;
   3057     
   3058     if(tgen_hfn == NULL) {
   3059         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tgen_hfn NULL parameter"));
   3060     }
   3061     /* Dispatch */
   3062     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3063     if(__type__ >= cprimodDispatchTypeCount) { 
   3064         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3065     }
   3066 
   3067     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_next_hfn_config_get) {
   3068         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_next_hfn_config_get(unit, port, tgen_hfn);
   3069         _SOC_IF_ERR_EXIT(__rv__);
   3070     } else { 
   3071         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_tgen_next_hfn_config_get isn't implemented for driver type"));
   3072     }
   3073         
   3074 exit:
   3075     SOC_FUNC_RETURN; 
   3076     
   3077 }
   3078 
   3079 
   3080 int cprimod_tx_framer_next_bfn_get(int unit, int port, uint32* tgen_bfn)
   3081 {
   3082 
   3083     cprimod_dispatch_type_t __type__;
   3084     int __rv__;        
   3085     SOC_INIT_FUNC_DEFS;
   3086     
   3087     if(tgen_bfn == NULL) {
   3088         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tgen_bfn NULL parameter"));
   3089     }
   3090     /* Dispatch */
   3091     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3092     if(__type__ >= cprimodDispatchTypeCount) { 
   3093         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3094     }
   3095 
   3096     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_next_bfn_get) {
   3097         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_next_bfn_get(unit, port, tgen_bfn);
   3098         _SOC_IF_ERR_EXIT(__rv__);
   3099     } else { 
   3100         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_next_bfn_get isn't implemented for driver type"));
   3101     }
   3102         
   3103 exit:
   3104     SOC_FUNC_RETURN; 
   3105     
   3106 }
   3107 
   3108 
   3109 int cprimod_tx_framer_next_hfn_get(int unit, int port, uint32* tgen_hfn)
   3110 {
   3111 
   3112     cprimod_dispatch_type_t __type__;
   3113     int __rv__;        
   3114     SOC_INIT_FUNC_DEFS;
   3115     
   3116     if(tgen_hfn == NULL) {
   3117         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tgen_hfn NULL parameter"));
   3118     }
   3119     /* Dispatch */
   3120     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3121     if(__type__ >= cprimodDispatchTypeCount) { 
   3122         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3123     }
   3124 
   3125     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_next_hfn_get) {
   3126         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_next_hfn_get(unit, port, tgen_hfn);
   3127         _SOC_IF_ERR_EXIT(__rv__);
   3128     } else { 
   3129         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_next_hfn_get isn't implemented for driver type"));
   3130     }
   3131         
   3132 exit:
   3133     SOC_FUNC_RETURN; 
   3134     
   3135 }
   3136 
   3137 
   3138 int cprimod_tgen_counter_select_t_validate(cprimod_tgen_counter_select_t cprimod_tgen_counter_select)
   3139 {        
   3140     SOC_INIT_FUNC_DEFS;
   3141     if(cprimod_tgen_counter_select >= cprimodTgenCounterSelectCount) {
   3142         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   3143     }
   3144         
   3145 exit:
   3146     SOC_FUNC_RETURN; 
   3147     
   3148 }
   3149 
   3150 int cprimod_tx_framer_tgen_select_counter_set(int unit, int port, cprimod_tgen_counter_select_t tgen_counter_select)
   3151 {
   3152 
   3153     cprimod_dispatch_type_t __type__;
   3154     int __rv__;        
   3155     SOC_INIT_FUNC_DEFS;
   3156     
   3157     if(SOC_E_NONE != cprimod_tgen_counter_select_t_validate(tgen_counter_select)) {
   3158         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tgen_counter_select validation failed"));
   3159     }
   3160 
   3161     /* Dispatch */
   3162     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3163     if(__type__ >= cprimodDispatchTypeCount) { 
   3164         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3165     }
   3166 
   3167     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_select_counter_set) {
   3168         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_select_counter_set(unit, port, tgen_counter_select);
   3169         _SOC_IF_ERR_EXIT(__rv__);
   3170     } else { 
   3171         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_tgen_select_counter_set isn't implemented for driver type"));
   3172     }
   3173         
   3174 exit:
   3175     SOC_FUNC_RETURN; 
   3176     
   3177 }
   3178 
   3179 
   3180 int cprimod_tx_framer_tgen_select_counter_get(int unit, int port, cprimod_tgen_counter_select_t* tgen_counter_select)
   3181 {
   3182 
   3183     cprimod_dispatch_type_t __type__;
   3184     int __rv__;        
   3185     SOC_INIT_FUNC_DEFS;
   3186     
   3187     if(tgen_counter_select == NULL) {
   3188         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tgen_counter_select NULL parameter"));
   3189     }
   3190     /* Dispatch */
   3191     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3192     if(__type__ >= cprimodDispatchTypeCount) { 
   3193         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3194     }
   3195 
   3196     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_select_counter_get) {
   3197         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_tx_framer_tgen_select_counter_get(unit, port, tgen_counter_select);
   3198         _SOC_IF_ERR_EXIT(__rv__);
   3199     } else { 
   3200         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_tx_framer_tgen_select_counter_get isn't implemented for driver type"));
   3201     }
   3202         
   3203 exit:
   3204     SOC_FUNC_RETURN; 
   3205     
   3206 }
   3207 
   3208 
   3209 int cprimod_flow_type_t_validate(cprimod_flow_type_t cprimod_flow_type)
   3210 {        
   3211     SOC_INIT_FUNC_DEFS;
   3212     if(cprimod_flow_type >= cprimodFlowTypeCount) {
   3213         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   3214     }
   3215         
   3216 exit:
   3217     SOC_FUNC_RETURN; 
   3218     
   3219 }
   3220 
   3221 int cprimod_header_compare_entry_t_validate(const cprimod_header_compare_entry_t* cprimod_header_compare_entry)
   3222 {        
   3223     SOC_INIT_FUNC_DEFS;
   3224     if(cprimod_header_compare_entry == NULL) {
   3225         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   3226     }
   3227 
   3228     if(SOC_E_NONE != cprimod_flow_type_t_validate(cprimod_header_compare_entry->flow_type)) {
   3229         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("flow_type validation failed"));
   3230     }
   3231 
   3232 
   3233         
   3234 exit:
   3235     SOC_FUNC_RETURN; 
   3236     
   3237 }
   3238 
   3239 int cprimod_header_compare_entry_t_init(cprimod_header_compare_entry_t* cprimod_header_compare_entry)
   3240 {        
   3241     SOC_INIT_FUNC_DEFS;
   3242     
   3243     if(cprimod_header_compare_entry == NULL){
   3244         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_header_compare_entry NULL parameter"));
   3245     }
   3246     sal_memset(cprimod_header_compare_entry, 0, sizeof(cprimod_header_compare_entry_t));
   3247     cprimod_header_compare_entry->valid = 0;
   3248     cprimod_header_compare_entry->match_data = 0;
   3249     cprimod_header_compare_entry->mask = 0;
   3250     cprimod_header_compare_entry->flow_id = 0;
   3251     cprimod_header_compare_entry->flow_type = 0;
   3252 
   3253         
   3254 exit:
   3255     SOC_FUNC_RETURN; 
   3256     
   3257 }
   3258 
   3259 int cprimod_header_compare_entry_add(int unit, int port, const cprimod_header_compare_entry_t* compare_entry)
   3260 {
   3261 
   3262     cprimod_dispatch_type_t __type__;
   3263     int __rv__;        
   3264     SOC_INIT_FUNC_DEFS;
   3265     
   3266     if(SOC_E_NONE != cprimod_header_compare_entry_t_validate(compare_entry)) {
   3267         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("compare_entry validation failed"));
   3268     }
   3269 
   3270     /* Dispatch */
   3271     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3272     if(__type__ >= cprimodDispatchTypeCount) { 
   3273         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3274     }
   3275 
   3276     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_header_compare_entry_add) {
   3277         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_header_compare_entry_add(unit, port, compare_entry);
   3278         _SOC_IF_ERR_EXIT(__rv__);
   3279     } else { 
   3280         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_header_compare_entry_add isn't implemented for driver type"));
   3281     }
   3282         
   3283 exit:
   3284     SOC_FUNC_RETURN; 
   3285     
   3286 }
   3287 
   3288 
   3289 int cprimod_header_compare_entry_delete(int unit, int port, const cprimod_header_compare_entry_t* compare_entry)
   3290 {
   3291 
   3292     cprimod_dispatch_type_t __type__;
   3293     int __rv__;        
   3294     SOC_INIT_FUNC_DEFS;
   3295     
   3296     if(SOC_E_NONE != cprimod_header_compare_entry_t_validate(compare_entry)) {
   3297         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("compare_entry validation failed"));
   3298     }
   3299 
   3300     /* Dispatch */
   3301     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3302     if(__type__ >= cprimodDispatchTypeCount) { 
   3303         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3304     }
   3305 
   3306     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_header_compare_entry_delete) {
   3307         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_header_compare_entry_delete(unit, port, compare_entry);
   3308         _SOC_IF_ERR_EXIT(__rv__);
   3309     } else { 
   3310         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_header_compare_entry_delete isn't implemented for driver type"));
   3311     }
   3312         
   3313 exit:
   3314     SOC_FUNC_RETURN; 
   3315     
   3316 }
   3317 
   3318 
   3319 int cprimod_header_compare_entry_for_flow_delete(int unit, int port, uint8 flow_id, cprimod_flow_type_t flow_type)
   3320 {
   3321 
   3322     cprimod_dispatch_type_t __type__;
   3323     int __rv__;        
   3324     SOC_INIT_FUNC_DEFS;
   3325     
   3326     if(SOC_E_NONE != cprimod_flow_type_t_validate(flow_type)) {
   3327         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("flow_type validation failed"));
   3328     }
   3329 
   3330     /* Dispatch */
   3331     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3332     if(__type__ >= cprimodDispatchTypeCount) { 
   3333         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3334     }
   3335 
   3336     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_header_compare_entry_for_flow_delete) {
   3337         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_header_compare_entry_for_flow_delete(unit, port, flow_id, flow_type);
   3338         _SOC_IF_ERR_EXIT(__rv__);
   3339     } else { 
   3340         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_header_compare_entry_for_flow_delete isn't implemented for driver type"));
   3341     }
   3342         
   3343 exit:
   3344     SOC_FUNC_RETURN; 
   3345     
   3346 }
   3347 
   3348 
   3349 int cprimod_transmission_rule_type_t_validate(cprimod_transmission_rule_type_t cprimod_transmission_rule_type)
   3350 {        
   3351     SOC_INIT_FUNC_DEFS;
   3352     if(cprimod_transmission_rule_type >= cprimodTxRuleTypeCount) {
   3353         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   3354     }
   3355         
   3356 exit:
   3357     SOC_FUNC_RETURN; 
   3358     
   3359 }
   3360 
   3361 int cprimod_modulo_rule_mod_t_validate(cprimod_modulo_rule_mod_t cprimod_modulo_rule_mod)
   3362 {        
   3363     SOC_INIT_FUNC_DEFS;
   3364     if(cprimod_modulo_rule_mod >= cprimodModuloRuleModCount) {
   3365         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   3366     }
   3367         
   3368 exit:
   3369     SOC_FUNC_RETURN; 
   3370     
   3371 }
   3372 
   3373 int cprimod_modulo_rule_entry_t_validate(const cprimod_modulo_rule_entry_t* cprimod_modulo_rule_entry)
   3374 {        
   3375     SOC_INIT_FUNC_DEFS;
   3376     if(cprimod_modulo_rule_entry == NULL) {
   3377         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   3378     }
   3379 
   3380     if(SOC_E_NONE != cprimod_modulo_rule_mod_t_validate(cprimod_modulo_rule_entry->modulo_value)) {
   3381         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("modulo_value validation failed"));
   3382     }
   3383 
   3384     if(SOC_E_NONE != cprimod_flow_type_t_validate(cprimod_modulo_rule_entry->flow_type)) {
   3385         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("flow_type validation failed"));
   3386     }
   3387 
   3388 
   3389         
   3390 exit:
   3391     SOC_FUNC_RETURN; 
   3392     
   3393 }
   3394 
   3395 int cprimod_modulo_rule_entry_t_init(cprimod_modulo_rule_entry_t* cprimod_modulo_rule_entry)
   3396 {        
   3397     SOC_INIT_FUNC_DEFS;
   3398     
   3399     if(cprimod_modulo_rule_entry == NULL){
   3400         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_modulo_rule_entry NULL parameter"));
   3401     }
   3402     sal_memset(cprimod_modulo_rule_entry, 0, sizeof(cprimod_modulo_rule_entry_t));
   3403     cprimod_modulo_rule_entry->active = 0;
   3404     cprimod_modulo_rule_entry->modulo_value = cprimodModuloRuleMod1;
   3405     cprimod_modulo_rule_entry->modulo_index = 0;
   3406     cprimod_modulo_rule_entry->dbm_enable = 0;
   3407     cprimod_modulo_rule_entry->flow_dbm_id = 0;
   3408     cprimod_modulo_rule_entry->flow_type = 0;
   3409 
   3410         
   3411 exit:
   3412     SOC_FUNC_RETURN; 
   3413     
   3414 }
   3415 
   3416 int cprimod_modulo_rule_entry_set(int unit, int port, uint8 modulo_rule_num, cprimod_transmission_rule_type_t modulo_rule_type, const cprimod_modulo_rule_entry_t* modulo_rule)
   3417 {
   3418 
   3419     cprimod_dispatch_type_t __type__;
   3420     int __rv__;        
   3421     SOC_INIT_FUNC_DEFS;
   3422     
   3423     if(SOC_E_NONE != cprimod_transmission_rule_type_t_validate(modulo_rule_type)) {
   3424         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("modulo_rule_type validation failed"));
   3425     }
   3426 
   3427     if(SOC_E_NONE != cprimod_modulo_rule_entry_t_validate(modulo_rule)) {
   3428         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("modulo_rule validation failed"));
   3429     }
   3430 
   3431     /* Dispatch */
   3432     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3433     if(__type__ >= cprimodDispatchTypeCount) { 
   3434         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3435     }
   3436 
   3437     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_modulo_rule_entry_set) {
   3438         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_modulo_rule_entry_set(unit, port, modulo_rule_num, modulo_rule_type, modulo_rule);
   3439         _SOC_IF_ERR_EXIT(__rv__);
   3440     } else { 
   3441         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_modulo_rule_entry_set isn't implemented for driver type"));
   3442     }
   3443         
   3444 exit:
   3445     SOC_FUNC_RETURN; 
   3446     
   3447 }
   3448 
   3449 
   3450 int cprimod_modulo_rule_entry_get(int unit, int port, uint8 modulo_rule_num, cprimod_transmission_rule_type_t modulo_rule_type, cprimod_modulo_rule_entry_t* modulo_rule)
   3451 {
   3452 
   3453     cprimod_dispatch_type_t __type__;
   3454     int __rv__;        
   3455     SOC_INIT_FUNC_DEFS;
   3456     
   3457     if(SOC_E_NONE != cprimod_transmission_rule_type_t_validate(modulo_rule_type)) {
   3458         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("modulo_rule_type validation failed"));
   3459     }
   3460 
   3461     if(modulo_rule == NULL) {
   3462         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("modulo_rule NULL parameter"));
   3463     }
   3464     if(SOC_E_NONE != cprimod_modulo_rule_entry_t_init(modulo_rule)) {
   3465         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("modulo_rule initialization failed"));
   3466     }
   3467 
   3468     /* Dispatch */
   3469     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3470     if(__type__ >= cprimodDispatchTypeCount) { 
   3471         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3472     }
   3473 
   3474     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_modulo_rule_entry_get) {
   3475         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_modulo_rule_entry_get(unit, port, modulo_rule_num, modulo_rule_type, modulo_rule);
   3476         _SOC_IF_ERR_EXIT(__rv__);
   3477     } else { 
   3478         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_modulo_rule_entry_get isn't implemented for driver type"));
   3479     }
   3480         
   3481 exit:
   3482     SOC_FUNC_RETURN; 
   3483     
   3484 }
   3485 
   3486 
   3487 int cprimod_dbm_rule_pos_index_t_validate(cprimod_dbm_rule_pos_index_t cprimod_dbm_rule_pos_index)
   3488 {        
   3489     SOC_INIT_FUNC_DEFS;
   3490     if(cprimod_dbm_rule_pos_index >= cprimodDbmRulePosIndexCount) {
   3491         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   3492     }
   3493         
   3494 exit:
   3495     SOC_FUNC_RETURN; 
   3496     
   3497 }
   3498 
   3499 int cprimod_dbm_rule_pos_grp_size_t_validate(cprimod_dbm_rule_pos_grp_size_t cprimod_dbm_rule_pos_grp_size)
   3500 {        
   3501     SOC_INIT_FUNC_DEFS;
   3502     if(cprimod_dbm_rule_pos_grp_size >= cprimodDbmRulePosGrpSizeCount) {
   3503         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   3504     }
   3505         
   3506 exit:
   3507     SOC_FUNC_RETURN; 
   3508     
   3509 }
   3510 
   3511 int cprimod_dbm_rule_entry_t_validate(const cprimod_dbm_rule_entry_t* cprimod_dbm_rule_entry)
   3512 {        
   3513     SOC_INIT_FUNC_DEFS;
   3514     if(cprimod_dbm_rule_entry == NULL) {
   3515         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   3516     }
   3517 
   3518     if(SOC_E_NONE != cprimod_dbm_rule_pos_index_t_validate(cprimod_dbm_rule_entry->pos_grp_index)) {
   3519         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pos_grp_index validation failed"));
   3520     }
   3521 
   3522     if(SOC_E_NONE != cprimod_dbm_rule_pos_grp_size_t_validate(cprimod_dbm_rule_entry->pos_grp_size)) {
   3523         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pos_grp_size validation failed"));
   3524     }
   3525 
   3526 
   3527         
   3528 exit:
   3529     SOC_FUNC_RETURN; 
   3530     
   3531 }
   3532 
   3533 int cprimod_dbm_rule_entry_t_init(cprimod_dbm_rule_entry_t* cprimod_dbm_rule_entry)
   3534 {
   3535     int _array_iter;
   3536         
   3537     SOC_INIT_FUNC_DEFS;
   3538     
   3539     if(cprimod_dbm_rule_entry == NULL){
   3540         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_dbm_rule_entry NULL parameter"));
   3541     }
   3542     sal_memset(cprimod_dbm_rule_entry, 0, sizeof(cprimod_dbm_rule_entry_t));
   3543     cprimod_dbm_rule_entry->bm1_mult = 0;
   3544     for(_array_iter = 0 ; _array_iter < 3 ; _array_iter++){        cprimod_dbm_rule_entry->bm1[_array_iter] = 0;
   3545     }    cprimod_dbm_rule_entry->bm1_size = 0;
   3546     for(_array_iter = 0 ; _array_iter < 2 ; _array_iter++){        cprimod_dbm_rule_entry->bm2[_array_iter] = 0;
   3547     }    cprimod_dbm_rule_entry->bm2_size = 0;
   3548     cprimod_dbm_rule_entry->num_slots = 0;
   3549     cprimod_dbm_rule_entry->pos_grp_index = 0;
   3550     cprimod_dbm_rule_entry->pos_grp_size = 0;
   3551 
   3552         
   3553 exit:
   3554     SOC_FUNC_RETURN; 
   3555     
   3556 }
   3557 
   3558 int cprimod_dual_bitmap_rule_entry_set(int unit, int port, uint8 dbm_rule_num, const cprimod_dbm_rule_entry_t* dbm_rule)
   3559 {
   3560 
   3561     cprimod_dispatch_type_t __type__;
   3562     int __rv__;        
   3563     SOC_INIT_FUNC_DEFS;
   3564     
   3565     if(SOC_E_NONE != cprimod_dbm_rule_entry_t_validate(dbm_rule)) {
   3566         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("dbm_rule validation failed"));
   3567     }
   3568 
   3569     /* Dispatch */
   3570     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3571     if(__type__ >= cprimodDispatchTypeCount) { 
   3572         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3573     }
   3574 
   3575     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_dual_bitmap_rule_entry_set) {
   3576         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_dual_bitmap_rule_entry_set(unit, port, dbm_rule_num, dbm_rule);
   3577         _SOC_IF_ERR_EXIT(__rv__);
   3578     } else { 
   3579         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_dual_bitmap_rule_entry_set isn't implemented for driver type"));
   3580     }
   3581         
   3582 exit:
   3583     SOC_FUNC_RETURN; 
   3584     
   3585 }
   3586 
   3587 
   3588 int cprimod_dual_bitmap_rule_entry_get(int unit, int port, uint8 dbm_rule_num, cprimod_dbm_rule_entry_t* dbm_rule)
   3589 {
   3590 
   3591     cprimod_dispatch_type_t __type__;
   3592     int __rv__;        
   3593     SOC_INIT_FUNC_DEFS;
   3594     
   3595     if(dbm_rule == NULL) {
   3596         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("dbm_rule NULL parameter"));
   3597     }
   3598     if(SOC_E_NONE != cprimod_dbm_rule_entry_t_init(dbm_rule)) {
   3599         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("dbm_rule initialization failed"));
   3600     }
   3601 
   3602     /* Dispatch */
   3603     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3604     if(__type__ >= cprimodDispatchTypeCount) { 
   3605         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3606     }
   3607 
   3608     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_dual_bitmap_rule_entry_get) {
   3609         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_dual_bitmap_rule_entry_get(unit, port, dbm_rule_num, dbm_rule);
   3610         _SOC_IF_ERR_EXIT(__rv__);
   3611     } else { 
   3612         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_dual_bitmap_rule_entry_get isn't implemented for driver type"));
   3613     }
   3614         
   3615 exit:
   3616     SOC_FUNC_RETURN; 
   3617     
   3618 }
   3619 
   3620 
   3621 int cprimod_secondary_dbm_rule_entry_t_validate(const cprimod_secondary_dbm_rule_entry_t* cprimod_secondary_dbm_rule_entry)
   3622 {        
   3623     SOC_INIT_FUNC_DEFS;
   3624     if(cprimod_secondary_dbm_rule_entry == NULL) {
   3625         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   3626     }
   3627 
   3628 
   3629         
   3630 exit:
   3631     SOC_FUNC_RETURN; 
   3632     
   3633 }
   3634 
   3635 int cprimod_secondary_dbm_rule_entry_t_init(cprimod_secondary_dbm_rule_entry_t* cprimod_secondary_dbm_rule_entry)
   3636 {        
   3637     SOC_INIT_FUNC_DEFS;
   3638     
   3639     if(cprimod_secondary_dbm_rule_entry == NULL){
   3640         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_secondary_dbm_rule_entry NULL parameter"));
   3641     }
   3642     sal_memset(cprimod_secondary_dbm_rule_entry, 0, sizeof(cprimod_secondary_dbm_rule_entry_t));
   3643     cprimod_secondary_dbm_rule_entry->bm1_mult = 0;
   3644     cprimod_secondary_dbm_rule_entry->bm1 = 0;
   3645     cprimod_secondary_dbm_rule_entry->bm1_size = 0;
   3646     cprimod_secondary_dbm_rule_entry->bm2 = 0;
   3647     cprimod_secondary_dbm_rule_entry->bm2_size = 0;
   3648     cprimod_secondary_dbm_rule_entry->num_slots = 0;
   3649 
   3650         
   3651 exit:
   3652     SOC_FUNC_RETURN; 
   3653     
   3654 }
   3655 
   3656 int cprimod_secondary_dual_bitmap_rule_entry_set(int unit, int port, uint8 dbm_rule_num, const cprimod_secondary_dbm_rule_entry_t* dbm_rule)
   3657 {
   3658 
   3659     cprimod_dispatch_type_t __type__;
   3660     int __rv__;        
   3661     SOC_INIT_FUNC_DEFS;
   3662     
   3663     if(SOC_E_NONE != cprimod_secondary_dbm_rule_entry_t_validate(dbm_rule)) {
   3664         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("dbm_rule validation failed"));
   3665     }
   3666 
   3667     /* Dispatch */
   3668     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3669     if(__type__ >= cprimodDispatchTypeCount) { 
   3670         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3671     }
   3672 
   3673     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_secondary_dual_bitmap_rule_entry_set) {
   3674         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_secondary_dual_bitmap_rule_entry_set(unit, port, dbm_rule_num, dbm_rule);
   3675         _SOC_IF_ERR_EXIT(__rv__);
   3676     } else { 
   3677         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_secondary_dual_bitmap_rule_entry_set isn't implemented for driver type"));
   3678     }
   3679         
   3680 exit:
   3681     SOC_FUNC_RETURN; 
   3682     
   3683 }
   3684 
   3685 
   3686 int cprimod_secondary_dual_bitmap_rule_entry_get(int unit, int port, uint8 dbm_rule_num, cprimod_secondary_dbm_rule_entry_t* dbm_rule)
   3687 {
   3688 
   3689     cprimod_dispatch_type_t __type__;
   3690     int __rv__;        
   3691     SOC_INIT_FUNC_DEFS;
   3692     
   3693     if(dbm_rule == NULL) {
   3694         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("dbm_rule NULL parameter"));
   3695     }
   3696     if(SOC_E_NONE != cprimod_secondary_dbm_rule_entry_t_init(dbm_rule)) {
   3697         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("dbm_rule initialization failed"));
   3698     }
   3699 
   3700     /* Dispatch */
   3701     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3702     if(__type__ >= cprimodDispatchTypeCount) { 
   3703         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3704     }
   3705 
   3706     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_secondary_dual_bitmap_rule_entry_get) {
   3707         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_secondary_dual_bitmap_rule_entry_get(unit, port, dbm_rule_num, dbm_rule);
   3708         _SOC_IF_ERR_EXIT(__rv__);
   3709     } else { 
   3710         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_secondary_dual_bitmap_rule_entry_get isn't implemented for driver type"));
   3711     }
   3712         
   3713 exit:
   3714     SOC_FUNC_RETURN; 
   3715     
   3716 }
   3717 
   3718 
   3719 int cprimod_dbm_pos_table_entry_t_validate(const cprimod_dbm_pos_table_entry_t* cprimod_dbm_pos_table_entry)
   3720 {        
   3721     SOC_INIT_FUNC_DEFS;
   3722     if(cprimod_dbm_pos_table_entry == NULL) {
   3723         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   3724     }
   3725 
   3726     if(SOC_E_NONE != cprimod_flow_type_t_validate(cprimod_dbm_pos_table_entry->flow_type)) {
   3727         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("flow_type validation failed"));
   3728     }
   3729 
   3730 
   3731         
   3732 exit:
   3733     SOC_FUNC_RETURN; 
   3734     
   3735 }
   3736 
   3737 int cprimod_dbm_pos_table_entry_t_init(cprimod_dbm_pos_table_entry_t* cprimod_dbm_pos_table_entry)
   3738 {        
   3739     SOC_INIT_FUNC_DEFS;
   3740     
   3741     if(cprimod_dbm_pos_table_entry == NULL){
   3742         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_dbm_pos_table_entry NULL parameter"));
   3743     }
   3744     sal_memset(cprimod_dbm_pos_table_entry, 0, sizeof(cprimod_dbm_pos_table_entry_t));
   3745     cprimod_dbm_pos_table_entry->valid = 0;
   3746     cprimod_dbm_pos_table_entry->flow_id = 0;
   3747     cprimod_dbm_pos_table_entry->flow_type = 0;
   3748     cprimod_dbm_pos_table_entry->index = 0;
   3749 
   3750         
   3751 exit:
   3752     SOC_FUNC_RETURN; 
   3753     
   3754 }
   3755 
   3756 int cprimod_dbm_position_entry_set(int unit, int port, uint8 index, const cprimod_dbm_pos_table_entry_t* pos_entry)
   3757 {
   3758 
   3759     cprimod_dispatch_type_t __type__;
   3760     int __rv__;        
   3761     SOC_INIT_FUNC_DEFS;
   3762     
   3763     if(SOC_E_NONE != cprimod_dbm_pos_table_entry_t_validate(pos_entry)) {
   3764         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pos_entry validation failed"));
   3765     }
   3766 
   3767     /* Dispatch */
   3768     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3769     if(__type__ >= cprimodDispatchTypeCount) { 
   3770         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3771     }
   3772 
   3773     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_dbm_position_entry_set) {
   3774         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_dbm_position_entry_set(unit, port, index, pos_entry);
   3775         _SOC_IF_ERR_EXIT(__rv__);
   3776     } else { 
   3777         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_dbm_position_entry_set isn't implemented for driver type"));
   3778     }
   3779         
   3780 exit:
   3781     SOC_FUNC_RETURN; 
   3782     
   3783 }
   3784 
   3785 
   3786 int cprimod_dbm_position_entry_get(int unit, int port, uint8 index, cprimod_dbm_pos_table_entry_t* pos_entry)
   3787 {
   3788 
   3789     cprimod_dispatch_type_t __type__;
   3790     int __rv__;        
   3791     SOC_INIT_FUNC_DEFS;
   3792     
   3793     if(pos_entry == NULL) {
   3794         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pos_entry NULL parameter"));
   3795     }
   3796     if(SOC_E_NONE != cprimod_dbm_pos_table_entry_t_init(pos_entry)) {
   3797         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pos_entry initialization failed"));
   3798     }
   3799 
   3800     /* Dispatch */
   3801     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3802     if(__type__ >= cprimodDispatchTypeCount) { 
   3803         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3804     }
   3805 
   3806     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_dbm_position_entry_get) {
   3807         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_dbm_position_entry_get(unit, port, index, pos_entry);
   3808         _SOC_IF_ERR_EXIT(__rv__);
   3809     } else { 
   3810         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_dbm_position_entry_get isn't implemented for driver type"));
   3811     }
   3812         
   3813 exit:
   3814     SOC_FUNC_RETURN; 
   3815     
   3816 }
   3817 
   3818 
   3819 int cprimod_cpri_pcs_mode_t_validate(cprimod_cpri_pcs_mode_t cprimod_cpri_pcs_mode)
   3820 {        
   3821     SOC_INIT_FUNC_DEFS;
   3822     if(cprimod_cpri_pcs_mode >= cprimodCpriPcsModeCount) {
   3823         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   3824     }
   3825         
   3826 exit:
   3827     SOC_FUNC_RETURN; 
   3828     
   3829 }
   3830 
   3831 int cprimod_port_speed_t_validate(cprimod_port_speed_t cprimod_port_speed)
   3832 {        
   3833     SOC_INIT_FUNC_DEFS;
   3834     if(cprimod_port_speed >= cprimodSpdCount) {
   3835         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   3836     }
   3837         
   3838 exit:
   3839     SOC_FUNC_RETURN; 
   3840     
   3841 }
   3842 
   3843 int cprimod_supported_port_speed_t_validate(cprimod_supported_port_speed_t cprimod_supported_port_speed)
   3844 {        
   3845     SOC_INIT_FUNC_DEFS;
   3846     if(cprimod_supported_port_speed >= cprimodSupportedSpdCount) {
   3847         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   3848     }
   3849         
   3850 exit:
   3851     SOC_FUNC_RETURN; 
   3852     
   3853 }
   3854 
   3855 int cprimod_pll_num_in_use_t_validate(cprimod_pll_num_in_use_t cprimod_pll_num_in_use)
   3856 {        
   3857     SOC_INIT_FUNC_DEFS;
   3858     if(cprimod_pll_num_in_use >= cprimodInUseCount) {
   3859         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   3860     }
   3861         
   3862 exit:
   3863     SOC_FUNC_RETURN; 
   3864     
   3865 }
   3866 
   3867 int cprimod_port_interface_type_t_validate(cprimod_port_interface_type_t cprimod_port_interface_type)
   3868 {        
   3869     SOC_INIT_FUNC_DEFS;
   3870     if(cprimod_port_interface_type >= cprimodCount) {
   3871         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   3872     }
   3873         
   3874 exit:
   3875     SOC_FUNC_RETURN; 
   3876     
   3877 }
   3878 
   3879 int cprimod_port_interface_config_t_validate(const cprimod_port_interface_config_t* cprimod_port_interface_config)
   3880 {        
   3881     SOC_INIT_FUNC_DEFS;
   3882     if(cprimod_port_interface_config == NULL) {
   3883         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   3884     }
   3885 
   3886     if(SOC_E_NONE != cprimod_port_speed_t_validate(cprimod_port_interface_config->speed)) {
   3887         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("speed validation failed"));
   3888     }
   3889 
   3890     if(SOC_E_NONE != cprimod_port_interface_type_t_validate(cprimod_port_interface_config->interface)) {
   3891         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("interface validation failed"));
   3892     }
   3893 
   3894 
   3895         
   3896 exit:
   3897     SOC_FUNC_RETURN; 
   3898     
   3899 }
   3900 
   3901 int cprimod_port_interface_config_t_init(cprimod_port_interface_config_t* cprimod_port_interface_config)
   3902 {        
   3903     SOC_INIT_FUNC_DEFS;
   3904     
   3905     if(cprimod_port_interface_config == NULL){
   3906         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_port_interface_config NULL parameter"));
   3907     }
   3908     sal_memset(cprimod_port_interface_config, 0, sizeof(cprimod_port_interface_config_t));
   3909     cprimod_port_interface_config->speed = 0;
   3910     cprimod_port_interface_config->interface = 0;
   3911 
   3912         
   3913 exit:
   3914     SOC_FUNC_RETURN; 
   3915     
   3916 }
   3917 
   3918 int cprimod_port_rsvd4_speed_mult_t_validate(cprimod_port_rsvd4_speed_mult_t cprimod_port_rsvd4_speed_mult)
   3919 {        
   3920     SOC_INIT_FUNC_DEFS;
   3921     if(cprimod_port_rsvd4_speed_mult >= cprimodRsvd4SpdMultCount) {
   3922         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   3923     }
   3924         
   3925 exit:
   3926     SOC_FUNC_RETURN; 
   3927     
   3928 }
   3929 
   3930 int cprimod_port_rsvd4_config_t_validate(const cprimod_port_rsvd4_config_t* cprimod_port_rsvd4_config)
   3931 {        
   3932     SOC_INIT_FUNC_DEFS;
   3933     if(cprimod_port_rsvd4_config == NULL) {
   3934         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   3935     }
   3936 
   3937     if(SOC_E_NONE != cprimod_port_rsvd4_speed_mult_t_validate(cprimod_port_rsvd4_config->speed)) {
   3938         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("speed validation failed"));
   3939     }
   3940 
   3941     if(SOC_E_NONE != cprimod_port_interface_type_t_validate(cprimod_port_rsvd4_config->interface)) {
   3942         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("interface validation failed"));
   3943     }
   3944 
   3945 
   3946         
   3947 exit:
   3948     SOC_FUNC_RETURN; 
   3949     
   3950 }
   3951 
   3952 int cprimod_port_rsvd4_config_t_init(cprimod_port_rsvd4_config_t* cprimod_port_rsvd4_config)
   3953 {        
   3954     SOC_INIT_FUNC_DEFS;
   3955     
   3956     if(cprimod_port_rsvd4_config == NULL){
   3957         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_port_rsvd4_config NULL parameter"));
   3958     }
   3959     sal_memset(cprimod_port_rsvd4_config, 0, sizeof(cprimod_port_rsvd4_config_t));
   3960     cprimod_port_rsvd4_config->speed = 0;
   3961     cprimod_port_rsvd4_config->interface = 0;
   3962 
   3963         
   3964 exit:
   3965     SOC_FUNC_RETURN; 
   3966     
   3967 }
   3968 
   3969 int cprimod_port_rx_interface_config_set(int unit, int port, const phymod_phy_access_t* phy, const cprimod_port_interface_config_t* config)
   3970 {
   3971 
   3972     cprimod_dispatch_type_t __type__;
   3973     int __rv__;        
   3974     SOC_INIT_FUNC_DEFS;
   3975     
   3976     if(SOC_E_NONE != cprimod_port_interface_config_t_validate(config)) {
   3977         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config validation failed"));
   3978     }
   3979 
   3980     /* Dispatch */
   3981     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   3982     if(__type__ >= cprimodDispatchTypeCount) { 
   3983         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   3984     }
   3985 
   3986     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rx_interface_config_set) {
   3987         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rx_interface_config_set(unit, port, phy, config);
   3988         _SOC_IF_ERR_EXIT(__rv__);
   3989     } else { 
   3990         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rx_interface_config_set isn't implemented for driver type"));
   3991     }
   3992         
   3993 exit:
   3994     SOC_FUNC_RETURN; 
   3995     
   3996 }
   3997 
   3998 
   3999 int cprimod_port_rx_interface_config_get(int unit, int port, cprimod_port_interface_config_t* config)
   4000 {
   4001 
   4002     cprimod_dispatch_type_t __type__;
   4003     int __rv__;        
   4004     SOC_INIT_FUNC_DEFS;
   4005     
   4006     if(config == NULL) {
   4007         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config NULL parameter"));
   4008     }
   4009     if(SOC_E_NONE != cprimod_port_interface_config_t_init(config)) {
   4010         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config initialization failed"));
   4011     }
   4012 
   4013     /* Dispatch */
   4014     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4015     if(__type__ >= cprimodDispatchTypeCount) { 
   4016         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4017     }
   4018 
   4019     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rx_interface_config_get) {
   4020         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rx_interface_config_get(unit, port, config);
   4021         _SOC_IF_ERR_EXIT(__rv__);
   4022     } else { 
   4023         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rx_interface_config_get isn't implemented for driver type"));
   4024     }
   4025         
   4026 exit:
   4027     SOC_FUNC_RETURN; 
   4028     
   4029 }
   4030 
   4031 
   4032 int cprimod_port_tx_interface_config_set(int unit, int port, const phymod_phy_access_t* phy, const cprimod_port_interface_config_t* config)
   4033 {
   4034 
   4035     cprimod_dispatch_type_t __type__;
   4036     int __rv__;        
   4037     SOC_INIT_FUNC_DEFS;
   4038     
   4039     if(SOC_E_NONE != cprimod_port_interface_config_t_validate(config)) {
   4040         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config validation failed"));
   4041     }
   4042 
   4043     /* Dispatch */
   4044     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4045     if(__type__ >= cprimodDispatchTypeCount) { 
   4046         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4047     }
   4048 
   4049     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_tx_interface_config_set) {
   4050         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_tx_interface_config_set(unit, port, phy, config);
   4051         _SOC_IF_ERR_EXIT(__rv__);
   4052     } else { 
   4053         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_tx_interface_config_set isn't implemented for driver type"));
   4054     }
   4055         
   4056 exit:
   4057     SOC_FUNC_RETURN; 
   4058     
   4059 }
   4060 
   4061 
   4062 int cprimod_port_tx_interface_config_get(int unit, int port, cprimod_port_interface_config_t* config)
   4063 {
   4064 
   4065     cprimod_dispatch_type_t __type__;
   4066     int __rv__;        
   4067     SOC_INIT_FUNC_DEFS;
   4068     
   4069     if(config == NULL) {
   4070         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config NULL parameter"));
   4071     }
   4072     if(SOC_E_NONE != cprimod_port_interface_config_t_init(config)) {
   4073         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config initialization failed"));
   4074     }
   4075 
   4076     /* Dispatch */
   4077     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4078     if(__type__ >= cprimodDispatchTypeCount) { 
   4079         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4080     }
   4081 
   4082     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_tx_interface_config_get) {
   4083         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_tx_interface_config_get(unit, port, config);
   4084         _SOC_IF_ERR_EXIT(__rv__);
   4085     } else { 
   4086         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_tx_interface_config_get isn't implemented for driver type"));
   4087     }
   4088         
   4089 exit:
   4090     SOC_FUNC_RETURN; 
   4091     
   4092 }
   4093 
   4094 
   4095 int cprimod_port_rsvd4_rx_config_set(int unit, int port, const cprimod_port_rsvd4_config_t* config)
   4096 {
   4097 
   4098     cprimod_dispatch_type_t __type__;
   4099     int __rv__;        
   4100     SOC_INIT_FUNC_DEFS;
   4101     
   4102     if(SOC_E_NONE != cprimod_port_rsvd4_config_t_validate(config)) {
   4103         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config validation failed"));
   4104     }
   4105 
   4106     /* Dispatch */
   4107     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4108     if(__type__ >= cprimodDispatchTypeCount) { 
   4109         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4110     }
   4111 
   4112     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_config_set) {
   4113         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_config_set(unit, port, config);
   4114         _SOC_IF_ERR_EXIT(__rv__);
   4115     } else { 
   4116         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_rx_config_set isn't implemented for driver type"));
   4117     }
   4118         
   4119 exit:
   4120     SOC_FUNC_RETURN; 
   4121     
   4122 }
   4123 
   4124 
   4125 int cprimod_port_rsvd4_rx_config_get(int unit, int port, cprimod_port_rsvd4_config_t* config)
   4126 {
   4127 
   4128     cprimod_dispatch_type_t __type__;
   4129     int __rv__;        
   4130     SOC_INIT_FUNC_DEFS;
   4131     
   4132     if(config == NULL) {
   4133         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config NULL parameter"));
   4134     }
   4135     if(SOC_E_NONE != cprimod_port_rsvd4_config_t_init(config)) {
   4136         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config initialization failed"));
   4137     }
   4138 
   4139     /* Dispatch */
   4140     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4141     if(__type__ >= cprimodDispatchTypeCount) { 
   4142         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4143     }
   4144 
   4145     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_config_get) {
   4146         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_config_get(unit, port, config);
   4147         _SOC_IF_ERR_EXIT(__rv__);
   4148     } else { 
   4149         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_rx_config_get isn't implemented for driver type"));
   4150     }
   4151         
   4152 exit:
   4153     SOC_FUNC_RETURN; 
   4154     
   4155 }
   4156 
   4157 
   4158 int cprimod_port_rsvd4_tx_config_set(int unit, int port, const cprimod_port_rsvd4_config_t* config)
   4159 {
   4160 
   4161     cprimod_dispatch_type_t __type__;
   4162     int __rv__;        
   4163     SOC_INIT_FUNC_DEFS;
   4164     
   4165     if(SOC_E_NONE != cprimod_port_rsvd4_config_t_validate(config)) {
   4166         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config validation failed"));
   4167     }
   4168 
   4169     /* Dispatch */
   4170     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4171     if(__type__ >= cprimodDispatchTypeCount) { 
   4172         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4173     }
   4174 
   4175     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_config_set) {
   4176         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_config_set(unit, port, config);
   4177         _SOC_IF_ERR_EXIT(__rv__);
   4178     } else { 
   4179         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_tx_config_set isn't implemented for driver type"));
   4180     }
   4181         
   4182 exit:
   4183     SOC_FUNC_RETURN; 
   4184     
   4185 }
   4186 
   4187 
   4188 int cprimod_port_rsvd4_tx_config_get(int unit, int port, cprimod_port_rsvd4_config_t* config)
   4189 {
   4190 
   4191     cprimod_dispatch_type_t __type__;
   4192     int __rv__;        
   4193     SOC_INIT_FUNC_DEFS;
   4194     
   4195     if(config == NULL) {
   4196         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config NULL parameter"));
   4197     }
   4198     if(SOC_E_NONE != cprimod_port_rsvd4_config_t_init(config)) {
   4199         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config initialization failed"));
   4200     }
   4201 
   4202     /* Dispatch */
   4203     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4204     if(__type__ >= cprimodDispatchTypeCount) { 
   4205         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4206     }
   4207 
   4208     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_config_get) {
   4209         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_config_get(unit, port, config);
   4210         _SOC_IF_ERR_EXIT(__rv__);
   4211     } else { 
   4212         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_tx_config_get isn't implemented for driver type"));
   4213     }
   4214         
   4215 exit:
   4216     SOC_FUNC_RETURN; 
   4217     
   4218 }
   4219 
   4220 
   4221 int cprimod_rsvd4_rx_config_field_t_validate(cprimod_rsvd4_rx_config_field_t cprimod_rsvd4_rx_config_field)
   4222 {        
   4223     SOC_INIT_FUNC_DEFS;
   4224     if(cprimod_rsvd4_rx_config_field >= cprimodRsvd4RxConfigCount) {
   4225         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   4226     }
   4227         
   4228 exit:
   4229     SOC_FUNC_RETURN; 
   4230     
   4231 }
   4232 
   4233 int cprimod_rx_config_field_t_validate(cprimod_rx_config_field_t cprimod_rx_config_field)
   4234 {        
   4235     SOC_INIT_FUNC_DEFS;
   4236     if(cprimod_rx_config_field >= cprimodRxConfigCount) {
   4237         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   4238     }
   4239         
   4240 exit:
   4241     SOC_FUNC_RETURN; 
   4242     
   4243 }
   4244 
   4245 int cprimod_rsvd4_rx_fsm_state_t_validate(cprimod_rsvd4_rx_fsm_state_t cprimod_rsvd4_rx_fsm_state)
   4246 {        
   4247     SOC_INIT_FUNC_DEFS;
   4248     if(cprimod_rsvd4_rx_fsm_state >= cprimodRsvd4RxFsmStateCount) {
   4249         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   4250     }
   4251         
   4252 exit:
   4253     SOC_FUNC_RETURN; 
   4254     
   4255 }
   4256 
   4257 int cprimod_rsvd4_rx_overide_t_validate(cprimod_rsvd4_rx_overide_t cprimod_rsvd4_rx_overide)
   4258 {        
   4259     SOC_INIT_FUNC_DEFS;
   4260     if(cprimod_rsvd4_rx_overide >= cprimodRsvd4RxOverideCount) {
   4261         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   4262     }
   4263         
   4264 exit:
   4265     SOC_FUNC_RETURN; 
   4266     
   4267 }
   4268 
   4269 int cprimod_rsvd4_tx_config_field_t_validate(cprimod_rsvd4_tx_config_field_t cprimod_rsvd4_tx_config_field)
   4270 {        
   4271     SOC_INIT_FUNC_DEFS;
   4272     if(cprimod_rsvd4_tx_config_field >= cprimodRsvd4TxConfigCount) {
   4273         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   4274     }
   4275         
   4276 exit:
   4277     SOC_FUNC_RETURN; 
   4278     
   4279 }
   4280 
   4281 int cprimod_tx_config_field_t_validate(cprimod_tx_config_field_t cprimod_tx_config_field)
   4282 {        
   4283     SOC_INIT_FUNC_DEFS;
   4284     if(cprimod_tx_config_field >= cprimodTxConfigCount) {
   4285         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   4286     }
   4287         
   4288 exit:
   4289     SOC_FUNC_RETURN; 
   4290     
   4291 }
   4292 
   4293 int cprimod_rsvd4_tx_fsm_state_t_validate(cprimod_rsvd4_tx_fsm_state_t cprimod_rsvd4_tx_fsm_state)
   4294 {        
   4295     SOC_INIT_FUNC_DEFS;
   4296     if(cprimod_rsvd4_tx_fsm_state >= cprimodRsvd4TxFsmStateCount) {
   4297         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   4298     }
   4299         
   4300 exit:
   4301     SOC_FUNC_RETURN; 
   4302     
   4303 }
   4304 
   4305 int cprimod_rsvd4_tx_overide_t_validate(cprimod_rsvd4_tx_overide_t cprimod_rsvd4_tx_overide)
   4306 {        
   4307     SOC_INIT_FUNC_DEFS;
   4308     if(cprimod_rsvd4_tx_overide >= cprimodRsvd4TxOverideCount) {
   4309         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   4310     }
   4311         
   4312 exit:
   4313     SOC_FUNC_RETURN; 
   4314     
   4315 }
   4316 
   4317 int cprimod_rx_pcs_status_t_validate(cprimod_rx_pcs_status_t cprimod_rx_pcs_status)
   4318 {        
   4319     SOC_INIT_FUNC_DEFS;
   4320     if(cprimod_rx_pcs_status >= cprimodRxPcsStatusCount) {
   4321         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   4322     }
   4323         
   4324 exit:
   4325     SOC_FUNC_RETURN; 
   4326     
   4327 }
   4328 
   4329 int cprimod_port_rx_frame_optional_config_set(int unit, int port, cprimod_rx_config_field_t field, int value)
   4330 {
   4331 
   4332     cprimod_dispatch_type_t __type__;
   4333     int __rv__;        
   4334     SOC_INIT_FUNC_DEFS;
   4335     
   4336     if(SOC_E_NONE != cprimod_rx_config_field_t_validate(field)) {
   4337         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("field validation failed"));
   4338     }
   4339 
   4340     /* Dispatch */
   4341     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4342     if(__type__ >= cprimodDispatchTypeCount) { 
   4343         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4344     }
   4345 
   4346     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rx_frame_optional_config_set) {
   4347         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rx_frame_optional_config_set(unit, port, field, value);
   4348         _SOC_IF_ERR_EXIT(__rv__);
   4349     } else { 
   4350         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rx_frame_optional_config_set isn't implemented for driver type"));
   4351     }
   4352         
   4353 exit:
   4354     SOC_FUNC_RETURN; 
   4355     
   4356 }
   4357 
   4358 
   4359 int cprimod_port_rx_frame_optional_config_get(int unit, int port, cprimod_rx_config_field_t field, int* value)
   4360 {
   4361 
   4362     cprimod_dispatch_type_t __type__;
   4363     int __rv__;        
   4364     SOC_INIT_FUNC_DEFS;
   4365     
   4366     if(SOC_E_NONE != cprimod_rx_config_field_t_validate(field)) {
   4367         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("field validation failed"));
   4368     }
   4369 
   4370     if(value == NULL) {
   4371         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("value NULL parameter"));
   4372     }
   4373     /* Dispatch */
   4374     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4375     if(__type__ >= cprimodDispatchTypeCount) { 
   4376         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4377     }
   4378 
   4379     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rx_frame_optional_config_get) {
   4380         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rx_frame_optional_config_get(unit, port, field, value);
   4381         _SOC_IF_ERR_EXIT(__rv__);
   4382     } else { 
   4383         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rx_frame_optional_config_get isn't implemented for driver type"));
   4384     }
   4385         
   4386 exit:
   4387     SOC_FUNC_RETURN; 
   4388     
   4389 }
   4390 
   4391 
   4392 int cprimod_port_tx_frame_optional_config_set(int unit, int port, cprimod_tx_config_field_t field, uint32 value)
   4393 {
   4394 
   4395     cprimod_dispatch_type_t __type__;
   4396     int __rv__;        
   4397     SOC_INIT_FUNC_DEFS;
   4398     
   4399     if(SOC_E_NONE != cprimod_tx_config_field_t_validate(field)) {
   4400         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("field validation failed"));
   4401     }
   4402 
   4403     /* Dispatch */
   4404     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4405     if(__type__ >= cprimodDispatchTypeCount) { 
   4406         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4407     }
   4408 
   4409     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_tx_frame_optional_config_set) {
   4410         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_tx_frame_optional_config_set(unit, port, field, value);
   4411         _SOC_IF_ERR_EXIT(__rv__);
   4412     } else { 
   4413         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_tx_frame_optional_config_set isn't implemented for driver type"));
   4414     }
   4415         
   4416 exit:
   4417     SOC_FUNC_RETURN; 
   4418     
   4419 }
   4420 
   4421 
   4422 int cprimod_port_tx_frame_optional_config_get(int unit, int port, cprimod_tx_config_field_t field, uint32* value)
   4423 {
   4424 
   4425     cprimod_dispatch_type_t __type__;
   4426     int __rv__;        
   4427     SOC_INIT_FUNC_DEFS;
   4428     
   4429     if(SOC_E_NONE != cprimod_tx_config_field_t_validate(field)) {
   4430         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("field validation failed"));
   4431     }
   4432 
   4433     if(value == NULL) {
   4434         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("value NULL parameter"));
   4435     }
   4436     /* Dispatch */
   4437     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4438     if(__type__ >= cprimodDispatchTypeCount) { 
   4439         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4440     }
   4441 
   4442     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_tx_frame_optional_config_get) {
   4443         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_tx_frame_optional_config_get(unit, port, field, value);
   4444         _SOC_IF_ERR_EXIT(__rv__);
   4445     } else { 
   4446         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_tx_frame_optional_config_get isn't implemented for driver type"));
   4447     }
   4448         
   4449 exit:
   4450     SOC_FUNC_RETURN; 
   4451     
   4452 }
   4453 
   4454 
   4455 int cprimod_port_rsvd4_rx_frame_optional_config_set(int unit, int port, cprimod_rsvd4_rx_config_field_t field, int value)
   4456 {
   4457 
   4458     cprimod_dispatch_type_t __type__;
   4459     int __rv__;        
   4460     SOC_INIT_FUNC_DEFS;
   4461     
   4462     if(SOC_E_NONE != cprimod_rsvd4_rx_config_field_t_validate(field)) {
   4463         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("field validation failed"));
   4464     }
   4465 
   4466     /* Dispatch */
   4467     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4468     if(__type__ >= cprimodDispatchTypeCount) { 
   4469         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4470     }
   4471 
   4472     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_frame_optional_config_set) {
   4473         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_frame_optional_config_set(unit, port, field, value);
   4474         _SOC_IF_ERR_EXIT(__rv__);
   4475     } else { 
   4476         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_rx_frame_optional_config_set isn't implemented for driver type"));
   4477     }
   4478         
   4479 exit:
   4480     SOC_FUNC_RETURN; 
   4481     
   4482 }
   4483 
   4484 
   4485 int cprimod_port_rsvd4_rx_frame_optional_config_get(int unit, int port, cprimod_rsvd4_rx_config_field_t field, int* value)
   4486 {
   4487 
   4488     cprimod_dispatch_type_t __type__;
   4489     int __rv__;        
   4490     SOC_INIT_FUNC_DEFS;
   4491     
   4492     if(SOC_E_NONE != cprimod_rsvd4_rx_config_field_t_validate(field)) {
   4493         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("field validation failed"));
   4494     }
   4495 
   4496     if(value == NULL) {
   4497         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("value NULL parameter"));
   4498     }
   4499     /* Dispatch */
   4500     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4501     if(__type__ >= cprimodDispatchTypeCount) { 
   4502         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4503     }
   4504 
   4505     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_frame_optional_config_get) {
   4506         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_frame_optional_config_get(unit, port, field, value);
   4507         _SOC_IF_ERR_EXIT(__rv__);
   4508     } else { 
   4509         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_rx_frame_optional_config_get isn't implemented for driver type"));
   4510     }
   4511         
   4512 exit:
   4513     SOC_FUNC_RETURN; 
   4514     
   4515 }
   4516 
   4517 
   4518 int cprimod_port_rsvd4_rx_speed_set(int unit, int port, const phymod_phy_access_t* phy, cprimod_port_rsvd4_speed_mult_t speed)
   4519 {
   4520 
   4521     cprimod_dispatch_type_t __type__;
   4522     int __rv__;        
   4523     SOC_INIT_FUNC_DEFS;
   4524     
   4525     if(SOC_E_NONE != cprimod_port_rsvd4_speed_mult_t_validate(speed)) {
   4526         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("speed validation failed"));
   4527     }
   4528 
   4529     /* Dispatch */
   4530     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4531     if(__type__ >= cprimodDispatchTypeCount) { 
   4532         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4533     }
   4534 
   4535     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_speed_set) {
   4536         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_speed_set(unit, port, phy, speed);
   4537         _SOC_IF_ERR_EXIT(__rv__);
   4538     } else { 
   4539         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_rx_speed_set isn't implemented for driver type"));
   4540     }
   4541         
   4542 exit:
   4543     SOC_FUNC_RETURN; 
   4544     
   4545 }
   4546 
   4547 
   4548 int cprimod_port_rsvd4_rx_speed_get(int unit, int port, cprimod_port_rsvd4_speed_mult_t* speed)
   4549 {
   4550 
   4551     cprimod_dispatch_type_t __type__;
   4552     int __rv__;        
   4553     SOC_INIT_FUNC_DEFS;
   4554     
   4555     if(speed == NULL) {
   4556         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("speed NULL parameter"));
   4557     }
   4558     /* Dispatch */
   4559     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4560     if(__type__ >= cprimodDispatchTypeCount) { 
   4561         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4562     }
   4563 
   4564     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_speed_get) {
   4565         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_speed_get(unit, port, speed);
   4566         _SOC_IF_ERR_EXIT(__rv__);
   4567     } else { 
   4568         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_rx_speed_get isn't implemented for driver type"));
   4569     }
   4570         
   4571 exit:
   4572     SOC_FUNC_RETURN; 
   4573     
   4574 }
   4575 
   4576 
   4577 int cprimod_port_rsvd4_tx_speed_set(int unit, int port, const phymod_phy_access_t* phy, cprimod_port_rsvd4_speed_mult_t speed)
   4578 {
   4579 
   4580     cprimod_dispatch_type_t __type__;
   4581     int __rv__;        
   4582     SOC_INIT_FUNC_DEFS;
   4583     
   4584     if(SOC_E_NONE != cprimod_port_rsvd4_speed_mult_t_validate(speed)) {
   4585         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("speed validation failed"));
   4586     }
   4587 
   4588     /* Dispatch */
   4589     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4590     if(__type__ >= cprimodDispatchTypeCount) { 
   4591         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4592     }
   4593 
   4594     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_speed_set) {
   4595         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_speed_set(unit, port, phy, speed);
   4596         _SOC_IF_ERR_EXIT(__rv__);
   4597     } else { 
   4598         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_tx_speed_set isn't implemented for driver type"));
   4599     }
   4600         
   4601 exit:
   4602     SOC_FUNC_RETURN; 
   4603     
   4604 }
   4605 
   4606 
   4607 int cprimod_port_rsvd4_tx_speed_get(int unit, int port, cprimod_port_rsvd4_speed_mult_t* speed)
   4608 {
   4609 
   4610     cprimod_dispatch_type_t __type__;
   4611     int __rv__;        
   4612     SOC_INIT_FUNC_DEFS;
   4613     
   4614     if(speed == NULL) {
   4615         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("speed NULL parameter"));
   4616     }
   4617     /* Dispatch */
   4618     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4619     if(__type__ >= cprimodDispatchTypeCount) { 
   4620         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4621     }
   4622 
   4623     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_speed_get) {
   4624         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_speed_get(unit, port, speed);
   4625         _SOC_IF_ERR_EXIT(__rv__);
   4626     } else { 
   4627         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_tx_speed_get isn't implemented for driver type"));
   4628     }
   4629         
   4630 exit:
   4631     SOC_FUNC_RETURN; 
   4632     
   4633 }
   4634 
   4635 
   4636 int cprimod_port_rsvd4_rx_fsm_state_set(int unit, int port, cprimod_rsvd4_rx_fsm_state_t state)
   4637 {
   4638 
   4639     cprimod_dispatch_type_t __type__;
   4640     int __rv__;        
   4641     SOC_INIT_FUNC_DEFS;
   4642     
   4643     if(SOC_E_NONE != cprimod_rsvd4_rx_fsm_state_t_validate(state)) {
   4644         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("state validation failed"));
   4645     }
   4646 
   4647     /* Dispatch */
   4648     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4649     if(__type__ >= cprimodDispatchTypeCount) { 
   4650         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4651     }
   4652 
   4653     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_fsm_state_set) {
   4654         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_fsm_state_set(unit, port, state);
   4655         _SOC_IF_ERR_EXIT(__rv__);
   4656     } else { 
   4657         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_rx_fsm_state_set isn't implemented for driver type"));
   4658     }
   4659         
   4660 exit:
   4661     SOC_FUNC_RETURN; 
   4662     
   4663 }
   4664 
   4665 
   4666 int cprimod_port_rsvd4_rx_fsm_state_get(int unit, int port, cprimod_rsvd4_rx_fsm_state_t* state)
   4667 {
   4668 
   4669     cprimod_dispatch_type_t __type__;
   4670     int __rv__;        
   4671     SOC_INIT_FUNC_DEFS;
   4672     
   4673     if(state == NULL) {
   4674         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("state NULL parameter"));
   4675     }
   4676     /* Dispatch */
   4677     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4678     if(__type__ >= cprimodDispatchTypeCount) { 
   4679         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4680     }
   4681 
   4682     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_fsm_state_get) {
   4683         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_fsm_state_get(unit, port, state);
   4684         _SOC_IF_ERR_EXIT(__rv__);
   4685     } else { 
   4686         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_rx_fsm_state_get isn't implemented for driver type"));
   4687     }
   4688         
   4689 exit:
   4690     SOC_FUNC_RETURN; 
   4691     
   4692 }
   4693 
   4694 
   4695 int cprimod_port_rsvd4_rx_overide_set(int unit, int port, cprimod_rsvd4_rx_overide_t parameter, int enable, int value)
   4696 {
   4697 
   4698     cprimod_dispatch_type_t __type__;
   4699     int __rv__;        
   4700     SOC_INIT_FUNC_DEFS;
   4701     
   4702     if(SOC_E_NONE != cprimod_rsvd4_rx_overide_t_validate(parameter)) {
   4703         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("parameter validation failed"));
   4704     }
   4705 
   4706     /* Dispatch */
   4707     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4708     if(__type__ >= cprimodDispatchTypeCount) { 
   4709         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4710     }
   4711 
   4712     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_overide_set) {
   4713         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_overide_set(unit, port, parameter, enable, value);
   4714         _SOC_IF_ERR_EXIT(__rv__);
   4715     } else { 
   4716         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_rx_overide_set isn't implemented for driver type"));
   4717     }
   4718         
   4719 exit:
   4720     SOC_FUNC_RETURN; 
   4721     
   4722 }
   4723 
   4724 
   4725 int cprimod_port_rsvd4_rx_overide_get(int unit, int port, cprimod_rsvd4_rx_overide_t parameter, int* enable, int* value)
   4726 {
   4727 
   4728     cprimod_dispatch_type_t __type__;
   4729     int __rv__;        
   4730     SOC_INIT_FUNC_DEFS;
   4731     
   4732     if(SOC_E_NONE != cprimod_rsvd4_rx_overide_t_validate(parameter)) {
   4733         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("parameter validation failed"));
   4734     }
   4735 
   4736     if(enable == NULL) {
   4737         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("enable NULL parameter"));
   4738     }
   4739     if(value == NULL) {
   4740         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("value NULL parameter"));
   4741     }
   4742     /* Dispatch */
   4743     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4744     if(__type__ >= cprimodDispatchTypeCount) { 
   4745         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4746     }
   4747 
   4748     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_overide_get) {
   4749         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_rx_overide_get(unit, port, parameter, enable, value);
   4750         _SOC_IF_ERR_EXIT(__rv__);
   4751     } else { 
   4752         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_rx_overide_get isn't implemented for driver type"));
   4753     }
   4754         
   4755 exit:
   4756     SOC_FUNC_RETURN; 
   4757     
   4758 }
   4759 
   4760 
   4761 int cprimod_port_rsvd4_tx_frame_optional_config_set(int unit, int port, cprimod_rsvd4_tx_config_field_t field, int value)
   4762 {
   4763 
   4764     cprimod_dispatch_type_t __type__;
   4765     int __rv__;        
   4766     SOC_INIT_FUNC_DEFS;
   4767     
   4768     if(SOC_E_NONE != cprimod_rsvd4_tx_config_field_t_validate(field)) {
   4769         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("field validation failed"));
   4770     }
   4771 
   4772     /* Dispatch */
   4773     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4774     if(__type__ >= cprimodDispatchTypeCount) { 
   4775         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4776     }
   4777 
   4778     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_frame_optional_config_set) {
   4779         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_frame_optional_config_set(unit, port, field, value);
   4780         _SOC_IF_ERR_EXIT(__rv__);
   4781     } else { 
   4782         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_tx_frame_optional_config_set isn't implemented for driver type"));
   4783     }
   4784         
   4785 exit:
   4786     SOC_FUNC_RETURN; 
   4787     
   4788 }
   4789 
   4790 
   4791 int cprimod_port_rsvd4_tx_frame_optional_config_get(int unit, int port, cprimod_rsvd4_tx_config_field_t field, int* value)
   4792 {
   4793 
   4794     cprimod_dispatch_type_t __type__;
   4795     int __rv__;        
   4796     SOC_INIT_FUNC_DEFS;
   4797     
   4798     if(SOC_E_NONE != cprimod_rsvd4_tx_config_field_t_validate(field)) {
   4799         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("field validation failed"));
   4800     }
   4801 
   4802     if(value == NULL) {
   4803         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("value NULL parameter"));
   4804     }
   4805     /* Dispatch */
   4806     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4807     if(__type__ >= cprimodDispatchTypeCount) { 
   4808         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4809     }
   4810 
   4811     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_frame_optional_config_get) {
   4812         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_frame_optional_config_get(unit, port, field, value);
   4813         _SOC_IF_ERR_EXIT(__rv__);
   4814     } else { 
   4815         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_tx_frame_optional_config_get isn't implemented for driver type"));
   4816     }
   4817         
   4818 exit:
   4819     SOC_FUNC_RETURN; 
   4820     
   4821 }
   4822 
   4823 
   4824 int cprimod_port_rsvd4_tx_fsm_state_set(int unit, int port, cprimod_rsvd4_tx_fsm_state_t state)
   4825 {
   4826 
   4827     cprimod_dispatch_type_t __type__;
   4828     int __rv__;        
   4829     SOC_INIT_FUNC_DEFS;
   4830     
   4831     if(SOC_E_NONE != cprimod_rsvd4_tx_fsm_state_t_validate(state)) {
   4832         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("state validation failed"));
   4833     }
   4834 
   4835     /* Dispatch */
   4836     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4837     if(__type__ >= cprimodDispatchTypeCount) { 
   4838         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4839     }
   4840 
   4841     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_fsm_state_set) {
   4842         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_fsm_state_set(unit, port, state);
   4843         _SOC_IF_ERR_EXIT(__rv__);
   4844     } else { 
   4845         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_tx_fsm_state_set isn't implemented for driver type"));
   4846     }
   4847         
   4848 exit:
   4849     SOC_FUNC_RETURN; 
   4850     
   4851 }
   4852 
   4853 
   4854 int cprimod_port_rsvd4_tx_fsm_state_get(int unit, int port, cprimod_rsvd4_tx_fsm_state_t* state)
   4855 {
   4856 
   4857     cprimod_dispatch_type_t __type__;
   4858     int __rv__;        
   4859     SOC_INIT_FUNC_DEFS;
   4860     
   4861     if(state == NULL) {
   4862         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("state NULL parameter"));
   4863     }
   4864     /* Dispatch */
   4865     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4866     if(__type__ >= cprimodDispatchTypeCount) { 
   4867         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4868     }
   4869 
   4870     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_fsm_state_get) {
   4871         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_fsm_state_get(unit, port, state);
   4872         _SOC_IF_ERR_EXIT(__rv__);
   4873     } else { 
   4874         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_tx_fsm_state_get isn't implemented for driver type"));
   4875     }
   4876         
   4877 exit:
   4878     SOC_FUNC_RETURN; 
   4879     
   4880 }
   4881 
   4882 
   4883 int cprimod_port_rsvd4_tx_overide_set(int unit, int port, cprimod_rsvd4_tx_overide_t parameter, int enable, int value)
   4884 {
   4885 
   4886     cprimod_dispatch_type_t __type__;
   4887     int __rv__;        
   4888     SOC_INIT_FUNC_DEFS;
   4889     
   4890     if(SOC_E_NONE != cprimod_rsvd4_tx_overide_t_validate(parameter)) {
   4891         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("parameter validation failed"));
   4892     }
   4893 
   4894     /* Dispatch */
   4895     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4896     if(__type__ >= cprimodDispatchTypeCount) { 
   4897         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4898     }
   4899 
   4900     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_overide_set) {
   4901         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_overide_set(unit, port, parameter, enable, value);
   4902         _SOC_IF_ERR_EXIT(__rv__);
   4903     } else { 
   4904         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_tx_overide_set isn't implemented for driver type"));
   4905     }
   4906         
   4907 exit:
   4908     SOC_FUNC_RETURN; 
   4909     
   4910 }
   4911 
   4912 
   4913 int cprimod_port_rsvd4_tx_overide_get(int unit, int port, cprimod_rsvd4_tx_overide_t parameter, int* enable, int* value)
   4914 {
   4915 
   4916     cprimod_dispatch_type_t __type__;
   4917     int __rv__;        
   4918     SOC_INIT_FUNC_DEFS;
   4919     
   4920     if(SOC_E_NONE != cprimod_rsvd4_tx_overide_t_validate(parameter)) {
   4921         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("parameter validation failed"));
   4922     }
   4923 
   4924     if(enable == NULL) {
   4925         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("enable NULL parameter"));
   4926     }
   4927     if(value == NULL) {
   4928         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("value NULL parameter"));
   4929     }
   4930     /* Dispatch */
   4931     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4932     if(__type__ >= cprimodDispatchTypeCount) { 
   4933         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4934     }
   4935 
   4936     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_overide_get) {
   4937         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rsvd4_tx_overide_get(unit, port, parameter, enable, value);
   4938         _SOC_IF_ERR_EXIT(__rv__);
   4939     } else { 
   4940         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rsvd4_tx_overide_get isn't implemented for driver type"));
   4941     }
   4942         
   4943 exit:
   4944     SOC_FUNC_RETURN; 
   4945     
   4946 }
   4947 
   4948 
   4949 int cprimod_port_rx_pcs_status_get(int unit, int port, cprimod_rx_pcs_status_t status, uint32* value)
   4950 {
   4951 
   4952     cprimod_dispatch_type_t __type__;
   4953     int __rv__;        
   4954     SOC_INIT_FUNC_DEFS;
   4955     
   4956     if(SOC_E_NONE != cprimod_rx_pcs_status_t_validate(status)) {
   4957         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("status validation failed"));
   4958     }
   4959 
   4960     if(value == NULL) {
   4961         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("value NULL parameter"));
   4962     }
   4963     /* Dispatch */
   4964     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   4965     if(__type__ >= cprimodDispatchTypeCount) { 
   4966         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   4967     }
   4968 
   4969     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_rx_pcs_status_get) {
   4970         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_rx_pcs_status_get(unit, port, status, value);
   4971         _SOC_IF_ERR_EXIT(__rv__);
   4972     } else { 
   4973         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_rx_pcs_status_get isn't implemented for driver type"));
   4974     }
   4975         
   4976 exit:
   4977     SOC_FUNC_RETURN; 
   4978     
   4979 }
   4980 
   4981 
   4982 int cprimod_polarity_t_validate(const cprimod_polarity_t* cprimod_polarity)
   4983 {        
   4984     SOC_INIT_FUNC_DEFS;
   4985     if(cprimod_polarity == NULL) {
   4986         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   4987     }
   4988 
   4989 
   4990         
   4991 exit:
   4992     SOC_FUNC_RETURN; 
   4993     
   4994 }
   4995 
   4996 int cprimod_polarity_t_init(cprimod_polarity_t* cprimod_polarity)
   4997 {        
   4998     SOC_INIT_FUNC_DEFS;
   4999     
   5000     if(cprimod_polarity == NULL){
   5001         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_polarity NULL parameter"));
   5002     }
   5003     sal_memset(cprimod_polarity, 0, sizeof(cprimod_polarity_t));
   5004     cprimod_polarity->rx_polarity = 0x0;
   5005     cprimod_polarity->tx_polarity = 0x0;
   5006 
   5007         
   5008 exit:
   5009     SOC_FUNC_RETURN; 
   5010     
   5011 }
   5012 
   5013 int cprimod_lane_map_t_validate(const cprimod_lane_map_t* cprimod_lane_map)
   5014 {        
   5015     SOC_INIT_FUNC_DEFS;
   5016     if(cprimod_lane_map == NULL) {
   5017         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   5018     }
   5019 
   5020 
   5021         
   5022 exit:
   5023     SOC_FUNC_RETURN; 
   5024     
   5025 }
   5026 
   5027 int cprimod_lane_map_t_init(cprimod_lane_map_t* cprimod_lane_map)
   5028 {        
   5029     SOC_INIT_FUNC_DEFS;
   5030     
   5031     if(cprimod_lane_map == NULL){
   5032         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_lane_map NULL parameter"));
   5033     }
   5034     sal_memset(cprimod_lane_map, 0, sizeof(cprimod_lane_map_t));
   5035     cprimod_lane_map->num_of_lanes = 0;
   5036 
   5037         
   5038 exit:
   5039     SOC_FUNC_RETURN; 
   5040     
   5041 }
   5042 
   5043 int cprimod_firmware_core_config_t_validate(const cprimod_firmware_core_config_t* cprimod_firmware_core_config)
   5044 {        
   5045     SOC_INIT_FUNC_DEFS;
   5046     if(cprimod_firmware_core_config == NULL) {
   5047         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   5048     }
   5049 
   5050 
   5051         
   5052 exit:
   5053     SOC_FUNC_RETURN; 
   5054     
   5055 }
   5056 
   5057 int cprimod_firmware_core_config_t_init(cprimod_firmware_core_config_t* cprimod_firmware_core_config)
   5058 {        
   5059     SOC_INIT_FUNC_DEFS;
   5060     
   5061     if(cprimod_firmware_core_config == NULL){
   5062         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_firmware_core_config NULL parameter"));
   5063     }
   5064     sal_memset(cprimod_firmware_core_config, 0, sizeof(cprimod_firmware_core_config_t));
   5065     cprimod_firmware_core_config->CoreConfigFromPCS = 0x0;
   5066     cprimod_firmware_core_config->VcoRate = 0;
   5067     cprimod_firmware_core_config->disable_write_pll_iqp = 0;
   5068 
   5069         
   5070 exit:
   5071     SOC_FUNC_RETURN; 
   5072     
   5073 }
   5074 
   5075 int cprimod_firmware_load_force_t_validate(cprimod_firmware_load_force_t cprimod_firmware_load_force)
   5076 {        
   5077     SOC_INIT_FUNC_DEFS;
   5078     if(cprimod_firmware_load_force >= cprimodFirmwareLoadCount) {
   5079         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   5080     }
   5081         
   5082 exit:
   5083     SOC_FUNC_RETURN; 
   5084     
   5085 }
   5086 
   5087 int cprimod_firmware_load_method_t_validate(cprimod_firmware_load_method_t cprimod_firmware_load_method)
   5088 {        
   5089     SOC_INIT_FUNC_DEFS;
   5090     if(cprimod_firmware_load_method >= cprimodFirmwareLoadMethodCount) {
   5091         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   5092     }
   5093         
   5094 exit:
   5095     SOC_FUNC_RETURN; 
   5096     
   5097 }
   5098 
   5099 int cprimod_tx_input_voltage_t_validate(cprimod_tx_input_voltage_t cprimod_tx_input_voltage)
   5100 {        
   5101     SOC_INIT_FUNC_DEFS;
   5102     if(cprimod_tx_input_voltage >= cprimodTxInputVoltageCount) {
   5103         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   5104     }
   5105         
   5106 exit:
   5107     SOC_FUNC_RETURN; 
   5108     
   5109 }
   5110 
   5111 int cprimod_afe_pll_t_validate(const cprimod_afe_pll_t* cprimod_afe_pll)
   5112 {        
   5113     SOC_INIT_FUNC_DEFS;
   5114     if(cprimod_afe_pll == NULL) {
   5115         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   5116     }
   5117 
   5118 
   5119         
   5120 exit:
   5121     SOC_FUNC_RETURN; 
   5122     
   5123 }
   5124 
   5125 int cprimod_afe_pll_t_init(cprimod_afe_pll_t* cprimod_afe_pll)
   5126 {        
   5127     SOC_INIT_FUNC_DEFS;
   5128     
   5129     if(cprimod_afe_pll == NULL){
   5130         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_afe_pll NULL parameter"));
   5131     }
   5132     sal_memset(cprimod_afe_pll, 0, sizeof(cprimod_afe_pll_t));
   5133     cprimod_afe_pll->afe_pll_change_default = 0;
   5134     cprimod_afe_pll->ams_pll_iqp = 0xf;
   5135     cprimod_afe_pll->ams_pll_en_hrz = 0;
   5136 
   5137         
   5138 exit:
   5139     SOC_FUNC_RETURN; 
   5140     
   5141 }
   5142 
   5143 int cprimod_pll_parm_t_validate(const cprimod_pll_parm_t* cprimod_pll_parm)
   5144 {        
   5145     SOC_INIT_FUNC_DEFS;
   5146     if(cprimod_pll_parm == NULL) {
   5147         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   5148     }
   5149 
   5150     if(SOC_E_NONE != cprimod_afe_pll_t_validate(&cprimod_pll_parm->afe_pll)) {
   5151         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("afe_pll validation failed"));
   5152     }
   5153 
   5154 
   5155         
   5156 exit:
   5157     SOC_FUNC_RETURN; 
   5158     
   5159 }
   5160 
   5161 int cprimod_pll_parm_t_init(cprimod_pll_parm_t* cprimod_pll_parm)
   5162 {        
   5163     SOC_INIT_FUNC_DEFS;
   5164     
   5165     if(cprimod_pll_parm == NULL){
   5166         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_pll_parm NULL parameter"));
   5167     }
   5168     sal_memset(cprimod_pll_parm, 0, sizeof(cprimod_pll_parm_t));
   5169     cprimod_pll_parm->change_pll = 0xf;
   5170     cprimod_pll_parm->vcoRate = 0xf;
   5171     cprimod_pll_parm->div2 = 0;
   5172     cprimod_pll_parm->div4 = 0;
   5173     if(SOC_E_NONE != cprimod_afe_pll_t_init(&cprimod_pll_parm->afe_pll)) {
   5174         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("afe_pll initialization failed"));
   5175     }
   5176 
   5177 
   5178         
   5179 exit:
   5180     SOC_FUNC_RETURN; 
   5181     
   5182 }
   5183 
   5184 int cprimod_core_init_config_t_validate(const cprimod_core_init_config_t* cprimod_core_init_config)
   5185 {        
   5186     SOC_INIT_FUNC_DEFS;
   5187     if(cprimod_core_init_config == NULL) {
   5188         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   5189     }
   5190 
   5191     if(SOC_E_NONE != cprimod_lane_map_t_validate(&cprimod_core_init_config->lane_map)) {
   5192         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("lane_map validation failed"));
   5193     }
   5194 
   5195     if(SOC_E_NONE != cprimod_firmware_load_method_t_validate(cprimod_core_init_config->firmware_load_method)) {
   5196         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("firmware_load_method validation failed"));
   5197     }
   5198 
   5199     if(SOC_E_NONE != cprimod_firmware_core_config_t_validate(&cprimod_core_init_config->firmware_core_config)) {
   5200         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("firmware_core_config validation failed"));
   5201     }
   5202 
   5203     if(SOC_E_NONE != cprimod_tx_input_voltage_t_validate(cprimod_core_init_config->tx_input_voltage)) {
   5204         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tx_input_voltage validation failed"));
   5205     }
   5206 
   5207     if(SOC_E_NONE != cprimod_pll_parm_t_validate(&cprimod_core_init_config->pll0)) {
   5208         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pll0 validation failed"));
   5209     }
   5210 
   5211     if(SOC_E_NONE != cprimod_pll_parm_t_validate(&cprimod_core_init_config->pll1)) {
   5212         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pll1 validation failed"));
   5213     }
   5214 
   5215 
   5216         
   5217 exit:
   5218     SOC_FUNC_RETURN; 
   5219     
   5220 }
   5221 
   5222 int cprimod_core_init_config_t_init(cprimod_core_init_config_t* cprimod_core_init_config)
   5223 {        
   5224     SOC_INIT_FUNC_DEFS;
   5225     
   5226     if(cprimod_core_init_config == NULL){
   5227         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_core_init_config NULL parameter"));
   5228     }
   5229     sal_memset(cprimod_core_init_config, 0, sizeof(cprimod_core_init_config_t));
   5230     if(SOC_E_NONE != cprimod_lane_map_t_init(&cprimod_core_init_config->lane_map)) {
   5231         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("lane_map initialization failed"));
   5232     }
   5233 
   5234     cprimod_core_init_config->firmware_load_method = cprimodFirmwareLoadMethodInternal;
   5235     cprimod_core_init_config->firmware_loader = NULL;
   5236     if(SOC_E_NONE != cprimod_firmware_core_config_t_init(&cprimod_core_init_config->firmware_core_config)) {
   5237         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("firmware_core_config initialization failed"));
   5238     }
   5239 
   5240     cprimod_core_init_config->flags = 0;
   5241     if(SOC_E_NONE != cprimod_pll_parm_t_init(&cprimod_core_init_config->pll0)) {
   5242         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pll0 initialization failed"));
   5243     }
   5244 
   5245     if(SOC_E_NONE != cprimod_pll_parm_t_init(&cprimod_core_init_config->pll1)) {
   5246         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pll1 initialization failed"));
   5247     }
   5248 
   5249 
   5250         
   5251 exit:
   5252     SOC_FUNC_RETURN; 
   5253     
   5254 }
   5255 
   5256 int cprimod_core_status_t_validate(const cprimod_core_status_t* cprimod_core_status)
   5257 {        
   5258     SOC_INIT_FUNC_DEFS;
   5259     if(cprimod_core_status == NULL) {
   5260         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   5261     }
   5262 
   5263 
   5264         
   5265 exit:
   5266     SOC_FUNC_RETURN; 
   5267     
   5268 }
   5269 
   5270 int cprimod_core_status_t_init(cprimod_core_status_t* cprimod_core_status)
   5271 {        
   5272     SOC_INIT_FUNC_DEFS;
   5273     
   5274     if(cprimod_core_status == NULL){
   5275         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_core_status NULL parameter"));
   5276     }
   5277     sal_memset(cprimod_core_status, 0, sizeof(cprimod_core_status_t));
   5278 
   5279         
   5280 exit:
   5281     SOC_FUNC_RETURN; 
   5282     
   5283 }
   5284 
   5285 int cprimod_core_init(int unit, int port, const phymod_core_access_t* phy, const phymod_core_init_config_t* init_config, phymod_core_status_t* core_status)
   5286 {
   5287 
   5288     cprimod_dispatch_type_t __type__;
   5289     int __rv__;        
   5290     SOC_INIT_FUNC_DEFS;
   5291     
   5292     if(core_status == NULL) {
   5293         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("core_status NULL parameter"));
   5294     }
   5295     /* Dispatch */
   5296     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5297     if(__type__ >= cprimodDispatchTypeCount) { 
   5298         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5299     }
   5300 
   5301     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_core_init) {
   5302         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_core_init(unit, port, phy, init_config, core_status);
   5303         _SOC_IF_ERR_EXIT(__rv__);
   5304     } else { 
   5305         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_core_init isn't implemented for driver type"));
   5306     }
   5307         
   5308 exit:
   5309     SOC_FUNC_RETURN; 
   5310     
   5311 }
   5312 
   5313 
   5314 int cprimod_port_init_config_t_validate(const cprimod_port_init_config_t* cprimod_port_init_config)
   5315 {        
   5316     SOC_INIT_FUNC_DEFS;
   5317     if(cprimod_port_init_config == NULL) {
   5318         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   5319     }
   5320 
   5321     if(SOC_E_NONE != cprimod_port_interface_type_t_validate(cprimod_port_init_config->interface)) {
   5322         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("interface validation failed"));
   5323     }
   5324 
   5325     if(SOC_E_NONE != cprimod_port_speed_t_validate(cprimod_port_init_config->tx_cpri_speed)) {
   5326         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tx_cpri_speed validation failed"));
   5327     }
   5328 
   5329     if(SOC_E_NONE != cprimod_port_speed_t_validate(cprimod_port_init_config->rx_cpri_speed)) {
   5330         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("rx_cpri_speed validation failed"));
   5331     }
   5332 
   5333     if(SOC_E_NONE != cprimod_port_rsvd4_speed_mult_t_validate(cprimod_port_init_config->tx_rsvd4_speed)) {
   5334         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("tx_rsvd4_speed validation failed"));
   5335     }
   5336 
   5337     if(SOC_E_NONE != cprimod_port_rsvd4_speed_mult_t_validate(cprimod_port_init_config->rx_rsvd4_speed)) {
   5338         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("rx_rsvd4_speed validation failed"));
   5339     }
   5340 
   5341     if(SOC_E_NONE != cprimod_pll_num_in_use_t_validate(cprimod_port_init_config->pll_in_use)) {
   5342         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pll_in_use validation failed"));
   5343     }
   5344 
   5345 
   5346         
   5347 exit:
   5348     SOC_FUNC_RETURN; 
   5349     
   5350 }
   5351 
   5352 int cprimod_port_init_config_t_init(cprimod_port_init_config_t* cprimod_port_init_config)
   5353 {        
   5354     SOC_INIT_FUNC_DEFS;
   5355     
   5356     if(cprimod_port_init_config == NULL){
   5357         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_port_init_config NULL parameter"));
   5358     }
   5359     sal_memset(cprimod_port_init_config, 0, sizeof(cprimod_port_init_config_t));
   5360     cprimod_port_init_config->tx_params_user_config = 0;
   5361     cprimod_port_init_config->parity_enable = 0;
   5362 
   5363         
   5364 exit:
   5365     SOC_FUNC_RETURN; 
   5366     
   5367 }
   5368 
   5369 int cprimod_port_init(int unit, int port, const phymod_phy_access_t* phy, const cprimod_port_init_config_t* port_config)
   5370 {
   5371 
   5372     cprimod_dispatch_type_t __type__;
   5373     int __rv__;        
   5374     SOC_INIT_FUNC_DEFS;
   5375     
   5376     if(SOC_E_NONE != cprimod_port_init_config_t_validate(port_config)) {
   5377         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("port_config validation failed"));
   5378     }
   5379 
   5380     /* Dispatch */
   5381     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5382     if(__type__ >= cprimodDispatchTypeCount) { 
   5383         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5384     }
   5385 
   5386     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_init) {
   5387         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_init(unit, port, phy, port_config);
   5388         _SOC_IF_ERR_EXIT(__rv__);
   5389     } else { 
   5390         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_init isn't implemented for driver type"));
   5391     }
   5392         
   5393 exit:
   5394     SOC_FUNC_RETURN; 
   5395     
   5396 }
   5397 
   5398 
   5399 int cprimod_rsvd4_rx_master_frame_sync_config_set(int unit, int port, uint32 master_frame_number, uint64 master_frame_start_time)
   5400 {
   5401 
   5402     cprimod_dispatch_type_t __type__;
   5403     int __rv__;        
   5404     SOC_INIT_FUNC_DEFS;
   5405     
   5406     /* Dispatch */
   5407     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5408     if(__type__ >= cprimodDispatchTypeCount) { 
   5409         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5410     }
   5411 
   5412     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_master_frame_sync_config_set) {
   5413         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_master_frame_sync_config_set(unit, port, master_frame_number, master_frame_start_time);
   5414         _SOC_IF_ERR_EXIT(__rv__);
   5415     } else { 
   5416         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_rx_master_frame_sync_config_set isn't implemented for driver type"));
   5417     }
   5418         
   5419 exit:
   5420     SOC_FUNC_RETURN; 
   5421     
   5422 }
   5423 
   5424 
   5425 int cprimod_rsvd4_rx_master_frame_sync_config_get(int unit, int port, uint32* master_frame_number, uint64* master_frame_start_time)
   5426 {
   5427 
   5428     cprimod_dispatch_type_t __type__;
   5429     int __rv__;        
   5430     SOC_INIT_FUNC_DEFS;
   5431     
   5432     if(master_frame_number == NULL) {
   5433         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("master_frame_number NULL parameter"));
   5434     }
   5435     if(master_frame_start_time == NULL) {
   5436         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("master_frame_start_time NULL parameter"));
   5437     }
   5438     /* Dispatch */
   5439     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5440     if(__type__ >= cprimodDispatchTypeCount) { 
   5441         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5442     }
   5443 
   5444     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_master_frame_sync_config_get) {
   5445         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_master_frame_sync_config_get(unit, port, master_frame_number, master_frame_start_time);
   5446         _SOC_IF_ERR_EXIT(__rv__);
   5447     } else { 
   5448         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_rx_master_frame_sync_config_get isn't implemented for driver type"));
   5449     }
   5450         
   5451 exit:
   5452     SOC_FUNC_RETURN; 
   5453     
   5454 }
   5455 
   5456 
   5457 int cprimod_cpri_rx_control_word_sync_info_get(int unit, int port, uint32* hyper_frame_num, uint32* radio_frame_num)
   5458 {
   5459 
   5460     cprimod_dispatch_type_t __type__;
   5461     int __rv__;        
   5462     SOC_INIT_FUNC_DEFS;
   5463     
   5464     if(hyper_frame_num == NULL) {
   5465         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("hyper_frame_num NULL parameter"));
   5466     }
   5467     if(radio_frame_num == NULL) {
   5468         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("radio_frame_num NULL parameter"));
   5469     }
   5470     /* Dispatch */
   5471     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5472     if(__type__ >= cprimodDispatchTypeCount) { 
   5473         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5474     }
   5475 
   5476     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_control_word_sync_info_get) {
   5477         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_control_word_sync_info_get(unit, port, hyper_frame_num, radio_frame_num);
   5478         _SOC_IF_ERR_EXIT(__rv__);
   5479     } else { 
   5480         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_rx_control_word_sync_info_get isn't implemented for driver type"));
   5481     }
   5482         
   5483 exit:
   5484     SOC_FUNC_RETURN; 
   5485     
   5486 }
   5487 
   5488 
   5489 int cprimod_cpri_rx_control_word_l1_signal_info_get(int unit, int port, cprimod_cpri_cw_l1_protocol_info_t* l1_info)
   5490 {
   5491 
   5492     cprimod_dispatch_type_t __type__;
   5493     int __rv__;        
   5494     SOC_INIT_FUNC_DEFS;
   5495     
   5496     if(l1_info == NULL) {
   5497         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("l1_info NULL parameter"));
   5498     }
   5499     /* Dispatch */
   5500     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5501     if(__type__ >= cprimodDispatchTypeCount) { 
   5502         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5503     }
   5504 
   5505     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_control_word_l1_signal_info_get) {
   5506         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_control_word_l1_signal_info_get(unit, port, l1_info);
   5507         _SOC_IF_ERR_EXIT(__rv__);
   5508     } else { 
   5509         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_rx_control_word_l1_signal_info_get isn't implemented for driver type"));
   5510     }
   5511         
   5512 exit:
   5513     SOC_FUNC_RETURN; 
   5514     
   5515 }
   5516 
   5517 
   5518 int cprimod_cpri_rx_control_word_l1_signal_signal_protection_set(int unit, int port, uint32 signal_map, uint32 enable)
   5519 {
   5520 
   5521     cprimod_dispatch_type_t __type__;
   5522     int __rv__;        
   5523     SOC_INIT_FUNC_DEFS;
   5524     
   5525     /* Dispatch */
   5526     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5527     if(__type__ >= cprimodDispatchTypeCount) { 
   5528         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5529     }
   5530 
   5531     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_control_word_l1_signal_signal_protection_set) {
   5532         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_control_word_l1_signal_signal_protection_set(unit, port, signal_map, enable);
   5533         _SOC_IF_ERR_EXIT(__rv__);
   5534     } else { 
   5535         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_rx_control_word_l1_signal_signal_protection_set isn't implemented for driver type"));
   5536     }
   5537         
   5538 exit:
   5539     SOC_FUNC_RETURN; 
   5540     
   5541 }
   5542 
   5543 
   5544 int cprimod_cpri_rx_control_word_l1_signal_signal_protection_get(int unit, int port, uint32 signal_map, uint32* enable)
   5545 {
   5546 
   5547     cprimod_dispatch_type_t __type__;
   5548     int __rv__;        
   5549     SOC_INIT_FUNC_DEFS;
   5550     
   5551     if(enable == NULL) {
   5552         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("enable NULL parameter"));
   5553     }
   5554     /* Dispatch */
   5555     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5556     if(__type__ >= cprimodDispatchTypeCount) { 
   5557         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5558     }
   5559 
   5560     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_control_word_l1_signal_signal_protection_get) {
   5561         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_rx_control_word_l1_signal_signal_protection_get(unit, port, signal_map, enable);
   5562         _SOC_IF_ERR_EXIT(__rv__);
   5563     } else { 
   5564         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_rx_control_word_l1_signal_signal_protection_get isn't implemented for driver type"));
   5565     }
   5566         
   5567 exit:
   5568     SOC_FUNC_RETURN; 
   5569     
   5570 }
   5571 
   5572 
   5573 int cprimod_hdlc_crc_byte_order_t_validate(cprimod_hdlc_crc_byte_order_t cprimod_hdlc_crc_byte_order)
   5574 {        
   5575     SOC_INIT_FUNC_DEFS;
   5576     if(cprimod_hdlc_crc_byte_order >= cprimodHdlcCrcByteOrderCount) {
   5577         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   5578     }
   5579         
   5580 exit:
   5581     SOC_FUNC_RETURN; 
   5582     
   5583 }
   5584 
   5585 int cprimod_hdlc_fcs_err_check_t_validate(cprimod_hdlc_fcs_err_check_t cprimod_hdlc_fcs_err_check)
   5586 {        
   5587     SOC_INIT_FUNC_DEFS;
   5588     if(cprimod_hdlc_fcs_err_check >= cprimodHdlcFcsErrCount) {
   5589         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   5590     }
   5591         
   5592 exit:
   5593     SOC_FUNC_RETURN; 
   5594     
   5595 }
   5596 
   5597 int cprimod_slow_hdlc_config_info_t_validate(const cprimod_slow_hdlc_config_info_t* cprimod_slow_hdlc_config_info)
   5598 {        
   5599     SOC_INIT_FUNC_DEFS;
   5600     if(cprimod_slow_hdlc_config_info == NULL) {
   5601         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   5602     }
   5603 
   5604 
   5605         
   5606 exit:
   5607     SOC_FUNC_RETURN; 
   5608     
   5609 }
   5610 
   5611 int cprimod_slow_hdlc_config_info_t_init(cprimod_slow_hdlc_config_info_t* cprimod_slow_hdlc_config_info)
   5612 {        
   5613     SOC_INIT_FUNC_DEFS;
   5614     
   5615     if(cprimod_slow_hdlc_config_info == NULL){
   5616         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_slow_hdlc_config_info NULL parameter"));
   5617     }
   5618     sal_memset(cprimod_slow_hdlc_config_info, 0, sizeof(cprimod_slow_hdlc_config_info_t));
   5619     cprimod_slow_hdlc_config_info->tx_crc_mode = 0;
   5620     cprimod_slow_hdlc_config_info->tx_flag_size = 0;
   5621     cprimod_slow_hdlc_config_info->tx_filling_flag_pattern = 0;
   5622     cprimod_slow_hdlc_config_info->crc_init_val = 0;
   5623     cprimod_slow_hdlc_config_info->fcs_size = 0;
   5624 
   5625         
   5626 exit:
   5627     SOC_FUNC_RETURN; 
   5628     
   5629 }
   5630 
   5631 int cprimod_cpri_port_cw_slow_hdlc_config_set(int unit, int port, const cprimod_slow_hdlc_config_info_t* config_info)
   5632 {
   5633 
   5634     cprimod_dispatch_type_t __type__;
   5635     int __rv__;        
   5636     SOC_INIT_FUNC_DEFS;
   5637     
   5638     if(SOC_E_NONE != cprimod_slow_hdlc_config_info_t_validate(config_info)) {
   5639         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   5640     }
   5641 
   5642     /* Dispatch */
   5643     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5644     if(__type__ >= cprimodDispatchTypeCount) { 
   5645         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5646     }
   5647 
   5648     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_cw_slow_hdlc_config_set) {
   5649         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_cw_slow_hdlc_config_set(unit, port, config_info);
   5650         _SOC_IF_ERR_EXIT(__rv__);
   5651     } else { 
   5652         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_cw_slow_hdlc_config_set isn't implemented for driver type"));
   5653     }
   5654         
   5655 exit:
   5656     SOC_FUNC_RETURN; 
   5657     
   5658 }
   5659 
   5660 
   5661 int cprimod_cpri_port_cw_slow_hdlc_config_get(int unit, int port, cprimod_slow_hdlc_config_info_t* config_info)
   5662 {
   5663 
   5664     cprimod_dispatch_type_t __type__;
   5665     int __rv__;        
   5666     SOC_INIT_FUNC_DEFS;
   5667     
   5668     if(config_info == NULL) {
   5669         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   5670     }
   5671     if(SOC_E_NONE != cprimod_slow_hdlc_config_info_t_init(config_info)) {
   5672         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   5673     }
   5674 
   5675     /* Dispatch */
   5676     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5677     if(__type__ >= cprimodDispatchTypeCount) { 
   5678         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5679     }
   5680 
   5681     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_cw_slow_hdlc_config_get) {
   5682         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_cw_slow_hdlc_config_get(unit, port, config_info);
   5683         _SOC_IF_ERR_EXIT(__rv__);
   5684     } else { 
   5685         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_cw_slow_hdlc_config_get isn't implemented for driver type"));
   5686     }
   5687         
   5688 exit:
   5689     SOC_FUNC_RETURN; 
   5690     
   5691 }
   5692 
   5693 
   5694 int cprimod_fast_eth_config_info_t_validate(const cprimod_fast_eth_config_info_t* cprimod_fast_eth_config_info)
   5695 {        
   5696     SOC_INIT_FUNC_DEFS;
   5697     if(cprimod_fast_eth_config_info == NULL) {
   5698         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   5699     }
   5700 
   5701 
   5702         
   5703 exit:
   5704     SOC_FUNC_RETURN; 
   5705     
   5706 }
   5707 
   5708 int cprimod_fast_eth_config_info_t_init(cprimod_fast_eth_config_info_t* cprimod_fast_eth_config_info)
   5709 {        
   5710     SOC_INIT_FUNC_DEFS;
   5711     
   5712     if(cprimod_fast_eth_config_info == NULL){
   5713         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_fast_eth_config_info NULL parameter"));
   5714     }
   5715     sal_memset(cprimod_fast_eth_config_info, 0, sizeof(cprimod_fast_eth_config_info_t));
   5716     cprimod_fast_eth_config_info->tx_crc_mode = 0;
   5717 
   5718         
   5719 exit:
   5720     SOC_FUNC_RETURN; 
   5721     
   5722 }
   5723 
   5724 int cprimod_cpri_port_cw_fast_eth_config_set(int unit, int port, const cprimod_fast_eth_config_info_t* config_info)
   5725 {
   5726 
   5727     cprimod_dispatch_type_t __type__;
   5728     int __rv__;        
   5729     SOC_INIT_FUNC_DEFS;
   5730     
   5731     if(SOC_E_NONE != cprimod_fast_eth_config_info_t_validate(config_info)) {
   5732         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   5733     }
   5734 
   5735     /* Dispatch */
   5736     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5737     if(__type__ >= cprimodDispatchTypeCount) { 
   5738         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5739     }
   5740 
   5741     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_cw_fast_eth_config_set) {
   5742         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_cw_fast_eth_config_set(unit, port, config_info);
   5743         _SOC_IF_ERR_EXIT(__rv__);
   5744     } else { 
   5745         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_cw_fast_eth_config_set isn't implemented for driver type"));
   5746     }
   5747         
   5748 exit:
   5749     SOC_FUNC_RETURN; 
   5750     
   5751 }
   5752 
   5753 
   5754 int cprimod_cpri_port_cw_fast_eth_config_get(int unit, int port, cprimod_fast_eth_config_info_t* config_info)
   5755 {
   5756 
   5757     cprimod_dispatch_type_t __type__;
   5758     int __rv__;        
   5759     SOC_INIT_FUNC_DEFS;
   5760     
   5761     if(config_info == NULL) {
   5762         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   5763     }
   5764     if(SOC_E_NONE != cprimod_fast_eth_config_info_t_init(config_info)) {
   5765         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   5766     }
   5767 
   5768     /* Dispatch */
   5769     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5770     if(__type__ >= cprimodDispatchTypeCount) { 
   5771         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5772     }
   5773 
   5774     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_cw_fast_eth_config_get) {
   5775         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_cw_fast_eth_config_get(unit, port, config_info);
   5776         _SOC_IF_ERR_EXIT(__rv__);
   5777     } else { 
   5778         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_cw_fast_eth_config_get isn't implemented for driver type"));
   5779     }
   5780         
   5781 exit:
   5782     SOC_FUNC_RETURN; 
   5783     
   5784 }
   5785 
   5786 
   5787 int cprimod_cpri_rx_vsd_config_info_t_validate(const cprimod_cpri_rx_vsd_config_info_t* cprimod_cpri_rx_vsd_config_info)
   5788 {        
   5789     SOC_INIT_FUNC_DEFS;
   5790     if(cprimod_cpri_rx_vsd_config_info == NULL) {
   5791         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   5792     }
   5793 
   5794 
   5795         
   5796 exit:
   5797     SOC_FUNC_RETURN; 
   5798     
   5799 }
   5800 
   5801 int cprimod_cpri_rx_vsd_config_info_t_init(cprimod_cpri_rx_vsd_config_info_t* cprimod_cpri_rx_vsd_config_info)
   5802 {        
   5803     SOC_INIT_FUNC_DEFS;
   5804     
   5805     if(cprimod_cpri_rx_vsd_config_info == NULL){
   5806         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_rx_vsd_config_info NULL parameter"));
   5807     }
   5808     sal_memset(cprimod_cpri_rx_vsd_config_info, 0, sizeof(cprimod_cpri_rx_vsd_config_info_t));
   5809     cprimod_cpri_rx_vsd_config_info->subchan_size = 0;
   5810     cprimod_cpri_rx_vsd_config_info->subchan_bytes = 0;
   5811     cprimod_cpri_rx_vsd_config_info->flow_bytes = 0;
   5812 
   5813         
   5814 exit:
   5815     SOC_FUNC_RETURN; 
   5816     
   5817 }
   5818 
   5819 int cprimod_cpri_port_rx_vsd_cw_config_set(int unit, int port, const cprimod_cpri_rx_vsd_config_info_t* config_info)
   5820 {
   5821 
   5822     cprimod_dispatch_type_t __type__;
   5823     int __rv__;        
   5824     SOC_INIT_FUNC_DEFS;
   5825     
   5826     if(SOC_E_NONE != cprimod_cpri_rx_vsd_config_info_t_validate(config_info)) {
   5827         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   5828     }
   5829 
   5830     /* Dispatch */
   5831     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5832     if(__type__ >= cprimodDispatchTypeCount) { 
   5833         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5834     }
   5835 
   5836     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_cw_config_set) {
   5837         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_cw_config_set(unit, port, config_info);
   5838         _SOC_IF_ERR_EXIT(__rv__);
   5839     } else { 
   5840         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_vsd_cw_config_set isn't implemented for driver type"));
   5841     }
   5842         
   5843 exit:
   5844     SOC_FUNC_RETURN; 
   5845     
   5846 }
   5847 
   5848 
   5849 int cprimod_cpri_port_rx_vsd_cw_config_get(int unit, int port, cprimod_cpri_rx_vsd_config_info_t* config_info)
   5850 {
   5851 
   5852     cprimod_dispatch_type_t __type__;
   5853     int __rv__;        
   5854     SOC_INIT_FUNC_DEFS;
   5855     
   5856     if(config_info == NULL) {
   5857         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   5858     }
   5859     if(SOC_E_NONE != cprimod_cpri_rx_vsd_config_info_t_init(config_info)) {
   5860         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   5861     }
   5862 
   5863     /* Dispatch */
   5864     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5865     if(__type__ >= cprimodDispatchTypeCount) { 
   5866         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5867     }
   5868 
   5869     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_cw_config_get) {
   5870         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_cw_config_get(unit, port, config_info);
   5871         _SOC_IF_ERR_EXIT(__rv__);
   5872     } else { 
   5873         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_vsd_cw_config_get isn't implemented for driver type"));
   5874     }
   5875         
   5876 exit:
   5877     SOC_FUNC_RETURN; 
   5878     
   5879 }
   5880 
   5881 
   5882 int cprimod_cpri_rx_vsd_ctrl_flow_config_xxx_t_validate(const cprimod_cpri_rx_vsd_ctrl_flow_config_xxx_t* cprimod_cpri_rx_vsd_ctrl_flow_config_xxx)
   5883 {        
   5884     SOC_INIT_FUNC_DEFS;
   5885     if(cprimod_cpri_rx_vsd_ctrl_flow_config_xxx == NULL) {
   5886         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   5887     }
   5888 
   5889 
   5890         
   5891 exit:
   5892     SOC_FUNC_RETURN; 
   5893     
   5894 }
   5895 
   5896 int cprimod_cpri_rx_vsd_ctrl_flow_config_xxx_t_init(cprimod_cpri_rx_vsd_ctrl_flow_config_xxx_t* cprimod_cpri_rx_vsd_ctrl_flow_config_xxx)
   5897 {        
   5898     SOC_INIT_FUNC_DEFS;
   5899     
   5900     if(cprimod_cpri_rx_vsd_ctrl_flow_config_xxx == NULL){
   5901         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_rx_vsd_ctrl_flow_config_xxx NULL parameter"));
   5902     }
   5903     sal_memset(cprimod_cpri_rx_vsd_ctrl_flow_config_xxx, 0, sizeof(cprimod_cpri_rx_vsd_ctrl_flow_config_xxx_t));
   5904 
   5905         
   5906 exit:
   5907     SOC_FUNC_RETURN; 
   5908     
   5909 }
   5910 
   5911 int cprimod_cpri_port_rx_vsd_ctrl_flow_add(int unit, int port, uint32 group_id, const cprimod_cpri_rx_vsd_flow_info_t* config_info)
   5912 {
   5913 
   5914     cprimod_dispatch_type_t __type__;
   5915     int __rv__;        
   5916     SOC_INIT_FUNC_DEFS;
   5917     
   5918     /* Dispatch */
   5919     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5920     if(__type__ >= cprimodDispatchTypeCount) { 
   5921         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5922     }
   5923 
   5924     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_ctrl_flow_add) {
   5925         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_ctrl_flow_add(unit, port, group_id, config_info);
   5926         _SOC_IF_ERR_EXIT(__rv__);
   5927     } else { 
   5928         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_vsd_ctrl_flow_add isn't implemented for driver type"));
   5929     }
   5930         
   5931 exit:
   5932     SOC_FUNC_RETURN; 
   5933     
   5934 }
   5935 
   5936 
   5937 int cprimod_cpri_port_rx_vsd_ctrl_flow_delete(int unit, int port, uint32 group_id)
   5938 {
   5939 
   5940     cprimod_dispatch_type_t __type__;
   5941     int __rv__;        
   5942     SOC_INIT_FUNC_DEFS;
   5943     
   5944     /* Dispatch */
   5945     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5946     if(__type__ >= cprimodDispatchTypeCount) { 
   5947         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5948     }
   5949 
   5950     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_ctrl_flow_delete) {
   5951         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_ctrl_flow_delete(unit, port, group_id);
   5952         _SOC_IF_ERR_EXIT(__rv__);
   5953     } else { 
   5954         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_vsd_ctrl_flow_delete isn't implemented for driver type"));
   5955     }
   5956         
   5957 exit:
   5958     SOC_FUNC_RETURN; 
   5959     
   5960 }
   5961 
   5962 
   5963 int cprimod_cpri_port_rx_vsd_ctrl_flow_get(int unit, int port, uint32 group_id, cprimod_cpri_rx_vsd_flow_info_t* config_info)
   5964 {
   5965 
   5966     cprimod_dispatch_type_t __type__;
   5967     int __rv__;        
   5968     SOC_INIT_FUNC_DEFS;
   5969     
   5970     if(config_info == NULL) {
   5971         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   5972     }
   5973     /* Dispatch */
   5974     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   5975     if(__type__ >= cprimodDispatchTypeCount) { 
   5976         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   5977     }
   5978 
   5979     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_ctrl_flow_get) {
   5980         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_ctrl_flow_get(unit, port, group_id, config_info);
   5981         _SOC_IF_ERR_EXIT(__rv__);
   5982     } else { 
   5983         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_vsd_ctrl_flow_get isn't implemented for driver type"));
   5984     }
   5985         
   5986 exit:
   5987     SOC_FUNC_RETURN; 
   5988     
   5989 }
   5990 
   5991 
   5992 int cprimod_encap_control_queue_tag_to_flow_id_map_set(int unit, int port, uint32 tag_id, uint32 flow_id)
   5993 {
   5994 
   5995     cprimod_dispatch_type_t __type__;
   5996     int __rv__;        
   5997     SOC_INIT_FUNC_DEFS;
   5998     
   5999     /* Dispatch */
   6000     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6001     if(__type__ >= cprimodDispatchTypeCount) { 
   6002         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6003     }
   6004 
   6005     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_control_queue_tag_to_flow_id_map_set) {
   6006         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_control_queue_tag_to_flow_id_map_set(unit, port, tag_id, flow_id);
   6007         _SOC_IF_ERR_EXIT(__rv__);
   6008     } else { 
   6009         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_control_queue_tag_to_flow_id_map_set isn't implemented for driver type"));
   6010     }
   6011         
   6012 exit:
   6013     SOC_FUNC_RETURN; 
   6014     
   6015 }
   6016 
   6017 
   6018 int cprimod_encap_control_queue_tag_to_flow_id_map_get(int unit, int port, uint32 tag_id, uint32* flow_id)
   6019 {
   6020 
   6021     cprimod_dispatch_type_t __type__;
   6022     int __rv__;        
   6023     SOC_INIT_FUNC_DEFS;
   6024     
   6025     if(flow_id == NULL) {
   6026         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("flow_id NULL parameter"));
   6027     }
   6028     /* Dispatch */
   6029     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6030     if(__type__ >= cprimodDispatchTypeCount) { 
   6031         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6032     }
   6033 
   6034     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_control_queue_tag_to_flow_id_map_get) {
   6035         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_control_queue_tag_to_flow_id_map_get(unit, port, tag_id, flow_id);
   6036         _SOC_IF_ERR_EXIT(__rv__);
   6037     } else { 
   6038         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_control_queue_tag_to_flow_id_map_get isn't implemented for driver type"));
   6039     }
   6040         
   6041 exit:
   6042     SOC_FUNC_RETURN; 
   6043     
   6044 }
   6045 
   6046 
   6047 int cprimod_cpri_tx_vsd_config_info_t_validate(const cprimod_cpri_tx_vsd_config_info_t* cprimod_cpri_tx_vsd_config_info)
   6048 {        
   6049     SOC_INIT_FUNC_DEFS;
   6050     if(cprimod_cpri_tx_vsd_config_info == NULL) {
   6051         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   6052     }
   6053 
   6054 
   6055         
   6056 exit:
   6057     SOC_FUNC_RETURN; 
   6058     
   6059 }
   6060 
   6061 int cprimod_cpri_tx_vsd_config_info_t_init(cprimod_cpri_tx_vsd_config_info_t* cprimod_cpri_tx_vsd_config_info)
   6062 {        
   6063     SOC_INIT_FUNC_DEFS;
   6064     
   6065     if(cprimod_cpri_tx_vsd_config_info == NULL){
   6066         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_tx_vsd_config_info NULL parameter"));
   6067     }
   6068     sal_memset(cprimod_cpri_tx_vsd_config_info, 0, sizeof(cprimod_cpri_tx_vsd_config_info_t));
   6069     cprimod_cpri_tx_vsd_config_info->subchan_size = 0;
   6070     cprimod_cpri_tx_vsd_config_info->subchan_bytes = 0;
   6071     cprimod_cpri_tx_vsd_config_info->flow_bytes = 0;
   6072 
   6073         
   6074 exit:
   6075     SOC_FUNC_RETURN; 
   6076     
   6077 }
   6078 
   6079 int cprimod_cpri_port_tx_vsd_cw_config_set(int unit, int port, const cprimod_cpri_tx_vsd_config_info_t* config_info)
   6080 {
   6081 
   6082     cprimod_dispatch_type_t __type__;
   6083     int __rv__;        
   6084     SOC_INIT_FUNC_DEFS;
   6085     
   6086     if(SOC_E_NONE != cprimod_cpri_tx_vsd_config_info_t_validate(config_info)) {
   6087         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   6088     }
   6089 
   6090     /* Dispatch */
   6091     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6092     if(__type__ >= cprimodDispatchTypeCount) { 
   6093         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6094     }
   6095 
   6096     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_cw_config_set) {
   6097         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_cw_config_set(unit, port, config_info);
   6098         _SOC_IF_ERR_EXIT(__rv__);
   6099     } else { 
   6100         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_vsd_cw_config_set isn't implemented for driver type"));
   6101     }
   6102         
   6103 exit:
   6104     SOC_FUNC_RETURN; 
   6105     
   6106 }
   6107 
   6108 
   6109 int cprimod_cpri_port_tx_vsd_cw_config_get(int unit, int port, cprimod_cpri_tx_vsd_config_info_t* config_info)
   6110 {
   6111 
   6112     cprimod_dispatch_type_t __type__;
   6113     int __rv__;        
   6114     SOC_INIT_FUNC_DEFS;
   6115     
   6116     if(config_info == NULL) {
   6117         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   6118     }
   6119     if(SOC_E_NONE != cprimod_cpri_tx_vsd_config_info_t_init(config_info)) {
   6120         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   6121     }
   6122 
   6123     /* Dispatch */
   6124     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6125     if(__type__ >= cprimodDispatchTypeCount) { 
   6126         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6127     }
   6128 
   6129     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_cw_config_get) {
   6130         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_cw_config_get(unit, port, config_info);
   6131         _SOC_IF_ERR_EXIT(__rv__);
   6132     } else { 
   6133         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_vsd_cw_config_get isn't implemented for driver type"));
   6134     }
   6135         
   6136 exit:
   6137     SOC_FUNC_RETURN; 
   6138     
   6139 }
   6140 
   6141 
   6142 int cprimod_cpri_tx_vsd_flow_config_info_t_validate(const cprimod_cpri_tx_vsd_flow_config_info_t* cprimod_cpri_tx_vsd_flow_config_info)
   6143 {        
   6144     SOC_INIT_FUNC_DEFS;
   6145     if(cprimod_cpri_tx_vsd_flow_config_info == NULL) {
   6146         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   6147     }
   6148 
   6149 
   6150         
   6151 exit:
   6152     SOC_FUNC_RETURN; 
   6153     
   6154 }
   6155 
   6156 int cprimod_cpri_tx_vsd_flow_config_info_t_init(cprimod_cpri_tx_vsd_flow_config_info_t* cprimod_cpri_tx_vsd_flow_config_info)
   6157 {        
   6158     SOC_INIT_FUNC_DEFS;
   6159     
   6160     if(cprimod_cpri_tx_vsd_flow_config_info == NULL){
   6161         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_tx_vsd_flow_config_info NULL parameter"));
   6162     }
   6163     sal_memset(cprimod_cpri_tx_vsd_flow_config_info, 0, sizeof(cprimod_cpri_tx_vsd_flow_config_info_t));
   6164 
   6165         
   6166 exit:
   6167     SOC_FUNC_RETURN; 
   6168     
   6169 }
   6170 
   6171 int cprimod_cpri_port_tx_vsd_ctrl_flow_add(int unit, int port, uint32 group_id, uint32* group_list, const cprimod_cpri_tx_vsd_flow_info_t* config_info)
   6172 {
   6173 
   6174     cprimod_dispatch_type_t __type__;
   6175     int __rv__;        
   6176     SOC_INIT_FUNC_DEFS;
   6177     
   6178     if(group_list == NULL) {
   6179         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("group_list NULL parameter"));
   6180     }
   6181     /* Dispatch */
   6182     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6183     if(__type__ >= cprimodDispatchTypeCount) { 
   6184         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6185     }
   6186 
   6187     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_ctrl_flow_add) {
   6188         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_ctrl_flow_add(unit, port, group_id, group_list, config_info);
   6189         _SOC_IF_ERR_EXIT(__rv__);
   6190     } else { 
   6191         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_vsd_ctrl_flow_add isn't implemented for driver type"));
   6192     }
   6193         
   6194 exit:
   6195     SOC_FUNC_RETURN; 
   6196     
   6197 }
   6198 
   6199 
   6200 int cprimod_cpri_port_tx_vsd_ctrl_flow_delete(int unit, int port, uint32 group_id, uint32* group_list)
   6201 {
   6202 
   6203     cprimod_dispatch_type_t __type__;
   6204     int __rv__;        
   6205     SOC_INIT_FUNC_DEFS;
   6206     
   6207     if(group_list == NULL) {
   6208         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("group_list NULL parameter"));
   6209     }
   6210     /* Dispatch */
   6211     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6212     if(__type__ >= cprimodDispatchTypeCount) { 
   6213         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6214     }
   6215 
   6216     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_ctrl_flow_delete) {
   6217         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_ctrl_flow_delete(unit, port, group_id, group_list);
   6218         _SOC_IF_ERR_EXIT(__rv__);
   6219     } else { 
   6220         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_vsd_ctrl_flow_delete isn't implemented for driver type"));
   6221     }
   6222         
   6223 exit:
   6224     SOC_FUNC_RETURN; 
   6225     
   6226 }
   6227 
   6228 
   6229 int cprimod_cpri_port_tx_vsd_ctrl_flow_get(int unit, int port, uint32 group_id, uint32* group_list, cprimod_cpri_tx_vsd_flow_info_t* config_info)
   6230 {
   6231 
   6232     cprimod_dispatch_type_t __type__;
   6233     int __rv__;        
   6234     SOC_INIT_FUNC_DEFS;
   6235     
   6236     if(group_list == NULL) {
   6237         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("group_list NULL parameter"));
   6238     }
   6239     if(config_info == NULL) {
   6240         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   6241     }
   6242     /* Dispatch */
   6243     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6244     if(__type__ >= cprimodDispatchTypeCount) { 
   6245         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6246     }
   6247 
   6248     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_ctrl_flow_get) {
   6249         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_ctrl_flow_get(unit, port, group_id, group_list, config_info);
   6250         _SOC_IF_ERR_EXIT(__rv__);
   6251     } else { 
   6252         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_vsd_ctrl_flow_get isn't implemented for driver type"));
   6253     }
   6254         
   6255 exit:
   6256     SOC_FUNC_RETURN; 
   6257     
   6258 }
   6259 
   6260 
   6261 int cprimod_cw_filter_mode_t_validate(cprimod_cw_filter_mode_t cprimod_cw_filter_mode)
   6262 {        
   6263     SOC_INIT_FUNC_DEFS;
   6264     if(cprimod_cw_filter_mode >= cprimodCwFilterCount) {
   6265         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   6266     }
   6267         
   6268 exit:
   6269     SOC_FUNC_RETURN; 
   6270     
   6271 }
   6272 
   6273 int cprimod_cpri_rx_vsd_raw_config_t_validate(const cprimod_cpri_rx_vsd_raw_config_t* cprimod_cpri_rx_vsd_raw_config)
   6274 {        
   6275     SOC_INIT_FUNC_DEFS;
   6276     if(cprimod_cpri_rx_vsd_raw_config == NULL) {
   6277         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   6278     }
   6279 
   6280 
   6281         
   6282 exit:
   6283     SOC_FUNC_RETURN; 
   6284     
   6285 }
   6286 
   6287 int cprimod_cpri_rx_vsd_raw_config_t_init(cprimod_cpri_rx_vsd_raw_config_t* cprimod_cpri_rx_vsd_raw_config)
   6288 {        
   6289     SOC_INIT_FUNC_DEFS;
   6290     
   6291     if(cprimod_cpri_rx_vsd_raw_config == NULL){
   6292         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_rx_vsd_raw_config NULL parameter"));
   6293     }
   6294     sal_memset(cprimod_cpri_rx_vsd_raw_config, 0, sizeof(cprimod_cpri_rx_vsd_raw_config_t));
   6295     cprimod_cpri_rx_vsd_raw_config->filter_mode = 0;
   6296 
   6297         
   6298 exit:
   6299     SOC_FUNC_RETURN; 
   6300     
   6301 }
   6302 
   6303 int cprimod_cpri_port_rx_vsd_raw_config_set(int unit, int port, uint32 index, const cprimod_cpri_rx_vsd_raw_config_t* config_info)
   6304 {
   6305 
   6306     cprimod_dispatch_type_t __type__;
   6307     int __rv__;        
   6308     SOC_INIT_FUNC_DEFS;
   6309     
   6310     if(SOC_E_NONE != cprimod_cpri_rx_vsd_raw_config_t_validate(config_info)) {
   6311         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   6312     }
   6313 
   6314     /* Dispatch */
   6315     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6316     if(__type__ >= cprimodDispatchTypeCount) { 
   6317         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6318     }
   6319 
   6320     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_raw_config_set) {
   6321         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_raw_config_set(unit, port, index, config_info);
   6322         _SOC_IF_ERR_EXIT(__rv__);
   6323     } else { 
   6324         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_vsd_raw_config_set isn't implemented for driver type"));
   6325     }
   6326         
   6327 exit:
   6328     SOC_FUNC_RETURN; 
   6329     
   6330 }
   6331 
   6332 
   6333 int cprimod_cpri_port_rx_vsd_raw_config_get(int unit, int port, uint32 index, cprimod_cpri_rx_vsd_raw_config_t* config_info)
   6334 {
   6335 
   6336     cprimod_dispatch_type_t __type__;
   6337     int __rv__;        
   6338     SOC_INIT_FUNC_DEFS;
   6339     
   6340     if(config_info == NULL) {
   6341         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   6342     }
   6343     if(SOC_E_NONE != cprimod_cpri_rx_vsd_raw_config_t_init(config_info)) {
   6344         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   6345     }
   6346 
   6347     /* Dispatch */
   6348     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6349     if(__type__ >= cprimodDispatchTypeCount) { 
   6350         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6351     }
   6352 
   6353     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_raw_config_get) {
   6354         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_vsd_raw_config_get(unit, port, index, config_info);
   6355         _SOC_IF_ERR_EXIT(__rv__);
   6356     } else { 
   6357         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_vsd_raw_config_get isn't implemented for driver type"));
   6358     }
   6359         
   6360 exit:
   6361     SOC_FUNC_RETURN; 
   6362     
   6363 }
   6364 
   6365 
   6366 int cprimod_vsd_raw_map_mode_t_validate(cprimod_vsd_raw_map_mode_t cprimod_vsd_raw_map_mode)
   6367 {        
   6368     SOC_INIT_FUNC_DEFS;
   6369     if(cprimod_vsd_raw_map_mode >= cprimodVsdRawMapModeCount) {
   6370         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   6371     }
   6372         
   6373 exit:
   6374     SOC_FUNC_RETURN; 
   6375     
   6376 }
   6377 
   6378 int cprimod_cpri_tx_vsd_raw_config_t_validate(const cprimod_cpri_tx_vsd_raw_config_t* cprimod_cpri_tx_vsd_raw_config)
   6379 {        
   6380     SOC_INIT_FUNC_DEFS;
   6381     if(cprimod_cpri_tx_vsd_raw_config == NULL) {
   6382         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   6383     }
   6384 
   6385 
   6386         
   6387 exit:
   6388     SOC_FUNC_RETURN; 
   6389     
   6390 }
   6391 
   6392 int cprimod_cpri_tx_vsd_raw_config_t_init(cprimod_cpri_tx_vsd_raw_config_t* cprimod_cpri_tx_vsd_raw_config)
   6393 {        
   6394     SOC_INIT_FUNC_DEFS;
   6395     
   6396     if(cprimod_cpri_tx_vsd_raw_config == NULL){
   6397         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_tx_vsd_raw_config NULL parameter"));
   6398     }
   6399     sal_memset(cprimod_cpri_tx_vsd_raw_config, 0, sizeof(cprimod_cpri_tx_vsd_raw_config_t));
   6400     cprimod_cpri_tx_vsd_raw_config->map_mode = 0;
   6401 
   6402         
   6403 exit:
   6404     SOC_FUNC_RETURN; 
   6405     
   6406 }
   6407 
   6408 int cprimod_cpri_port_tx_vsd_raw_config_set(int unit, int port, uint32 index, const cprimod_cpri_tx_vsd_raw_config_t* config_info)
   6409 {
   6410 
   6411     cprimod_dispatch_type_t __type__;
   6412     int __rv__;        
   6413     SOC_INIT_FUNC_DEFS;
   6414     
   6415     if(SOC_E_NONE != cprimod_cpri_tx_vsd_raw_config_t_validate(config_info)) {
   6416         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   6417     }
   6418 
   6419     /* Dispatch */
   6420     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6421     if(__type__ >= cprimodDispatchTypeCount) { 
   6422         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6423     }
   6424 
   6425     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_raw_config_set) {
   6426         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_raw_config_set(unit, port, index, config_info);
   6427         _SOC_IF_ERR_EXIT(__rv__);
   6428     } else { 
   6429         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_vsd_raw_config_set isn't implemented for driver type"));
   6430     }
   6431         
   6432 exit:
   6433     SOC_FUNC_RETURN; 
   6434     
   6435 }
   6436 
   6437 
   6438 int cprimod_cpri_port_tx_vsd_raw_config_get(int unit, int port, uint32 index, cprimod_cpri_tx_vsd_raw_config_t* config_info)
   6439 {
   6440 
   6441     cprimod_dispatch_type_t __type__;
   6442     int __rv__;        
   6443     SOC_INIT_FUNC_DEFS;
   6444     
   6445     if(config_info == NULL) {
   6446         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   6447     }
   6448     if(SOC_E_NONE != cprimod_cpri_tx_vsd_raw_config_t_init(config_info)) {
   6449         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   6450     }
   6451 
   6452     /* Dispatch */
   6453     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6454     if(__type__ >= cprimodDispatchTypeCount) { 
   6455         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6456     }
   6457 
   6458     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_raw_config_get) {
   6459         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_raw_config_get(unit, port, index, config_info);
   6460         _SOC_IF_ERR_EXIT(__rv__);
   6461     } else { 
   6462         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_vsd_raw_config_get isn't implemented for driver type"));
   6463     }
   6464         
   6465 exit:
   6466     SOC_FUNC_RETURN; 
   6467     
   6468 }
   6469 
   6470 
   6471 int cprimod_cpri_port_tx_vsd_raw_filter_set(int unit, int port, uint32 bfn0_value, uint32 bfn0_mask, uint32 bfn1_value, uint32 bfn1_mask)
   6472 {
   6473 
   6474     cprimod_dispatch_type_t __type__;
   6475     int __rv__;        
   6476     SOC_INIT_FUNC_DEFS;
   6477     
   6478     /* Dispatch */
   6479     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6480     if(__type__ >= cprimodDispatchTypeCount) { 
   6481         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6482     }
   6483 
   6484     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_raw_filter_set) {
   6485         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_raw_filter_set(unit, port, bfn0_value, bfn0_mask, bfn1_value, bfn1_mask);
   6486         _SOC_IF_ERR_EXIT(__rv__);
   6487     } else { 
   6488         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_vsd_raw_filter_set isn't implemented for driver type"));
   6489     }
   6490         
   6491 exit:
   6492     SOC_FUNC_RETURN; 
   6493     
   6494 }
   6495 
   6496 
   6497 int cprimod_cpri_port_tx_vsd_raw_filter_get(int unit, int port, uint32* bfn0_value, uint32* bfn0_mask, uint32* bfn1_value, uint32* bfn1_mask)
   6498 {
   6499 
   6500     cprimod_dispatch_type_t __type__;
   6501     int __rv__;        
   6502     SOC_INIT_FUNC_DEFS;
   6503     
   6504     if(bfn0_value == NULL) {
   6505         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("bfn0_value NULL parameter"));
   6506     }
   6507     if(bfn0_mask == NULL) {
   6508         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("bfn0_mask NULL parameter"));
   6509     }
   6510     if(bfn1_value == NULL) {
   6511         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("bfn1_value NULL parameter"));
   6512     }
   6513     if(bfn1_mask == NULL) {
   6514         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("bfn1_mask NULL parameter"));
   6515     }
   6516     /* Dispatch */
   6517     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6518     if(__type__ >= cprimodDispatchTypeCount) { 
   6519         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6520     }
   6521 
   6522     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_raw_filter_get) {
   6523         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_vsd_raw_filter_get(unit, port, bfn0_value, bfn0_mask, bfn1_value, bfn1_mask);
   6524         _SOC_IF_ERR_EXIT(__rv__);
   6525     } else { 
   6526         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_vsd_raw_filter_get isn't implemented for driver type"));
   6527     }
   6528         
   6529 exit:
   6530     SOC_FUNC_RETURN; 
   6531     
   6532 }
   6533 
   6534 
   6535 int cprimod_cpri_port_rx_brcm_rsvd5_control_config_set(int unit, int port, uint32 schan_start, uint32 schan_size, uint32 queue_num, int parity_disable)
   6536 {
   6537 
   6538     cprimod_dispatch_type_t __type__;
   6539     int __rv__;        
   6540     SOC_INIT_FUNC_DEFS;
   6541     
   6542     /* Dispatch */
   6543     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6544     if(__type__ >= cprimodDispatchTypeCount) { 
   6545         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6546     }
   6547 
   6548     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_brcm_rsvd5_control_config_set) {
   6549         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_brcm_rsvd5_control_config_set(unit, port, schan_start, schan_size, queue_num, parity_disable);
   6550         _SOC_IF_ERR_EXIT(__rv__);
   6551     } else { 
   6552         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_brcm_rsvd5_control_config_set isn't implemented for driver type"));
   6553     }
   6554         
   6555 exit:
   6556     SOC_FUNC_RETURN; 
   6557     
   6558 }
   6559 
   6560 
   6561 int cprimod_cpri_port_rx_brcm_rsvd5_control_config_get(int unit, int port, uint32* schan_start, uint32* schan_size, uint32* queue_num, int* parity_disable)
   6562 {
   6563 
   6564     cprimod_dispatch_type_t __type__;
   6565     int __rv__;        
   6566     SOC_INIT_FUNC_DEFS;
   6567     
   6568     if(schan_start == NULL) {
   6569         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("schan_start NULL parameter"));
   6570     }
   6571     if(schan_size == NULL) {
   6572         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("schan_size NULL parameter"));
   6573     }
   6574     if(queue_num == NULL) {
   6575         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("queue_num NULL parameter"));
   6576     }
   6577     if(parity_disable == NULL) {
   6578         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("parity_disable NULL parameter"));
   6579     }
   6580     /* Dispatch */
   6581     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6582     if(__type__ >= cprimodDispatchTypeCount) { 
   6583         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6584     }
   6585 
   6586     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_brcm_rsvd5_control_config_get) {
   6587         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_brcm_rsvd5_control_config_get(unit, port, schan_start, schan_size, queue_num, parity_disable);
   6588         _SOC_IF_ERR_EXIT(__rv__);
   6589     } else { 
   6590         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_brcm_rsvd5_control_config_get isn't implemented for driver type"));
   6591     }
   6592         
   6593 exit:
   6594     SOC_FUNC_RETURN; 
   6595     
   6596 }
   6597 
   6598 
   6599 int cprimod_cpri_port_tx_brcm_rsvd5_control_config_set(int unit, int port, uint32 schan_start, uint32 schan_size, uint32 queue_num, int crc_enable)
   6600 {
   6601 
   6602     cprimod_dispatch_type_t __type__;
   6603     int __rv__;        
   6604     SOC_INIT_FUNC_DEFS;
   6605     
   6606     /* Dispatch */
   6607     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6608     if(__type__ >= cprimodDispatchTypeCount) { 
   6609         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6610     }
   6611 
   6612     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_brcm_rsvd5_control_config_set) {
   6613         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_brcm_rsvd5_control_config_set(unit, port, schan_start, schan_size, queue_num, crc_enable);
   6614         _SOC_IF_ERR_EXIT(__rv__);
   6615     } else { 
   6616         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_brcm_rsvd5_control_config_set isn't implemented for driver type"));
   6617     }
   6618         
   6619 exit:
   6620     SOC_FUNC_RETURN; 
   6621     
   6622 }
   6623 
   6624 
   6625 int cprimod_cpri_port_tx_brcm_rsvd5_control_config_get(int unit, int port, uint32* schan_start, uint32* schan_size, uint32* queue_num, int* crc_enable)
   6626 {
   6627 
   6628     cprimod_dispatch_type_t __type__;
   6629     int __rv__;        
   6630     SOC_INIT_FUNC_DEFS;
   6631     
   6632     if(schan_start == NULL) {
   6633         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("schan_start NULL parameter"));
   6634     }
   6635     if(schan_size == NULL) {
   6636         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("schan_size NULL parameter"));
   6637     }
   6638     if(queue_num == NULL) {
   6639         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("queue_num NULL parameter"));
   6640     }
   6641     if(crc_enable == NULL) {
   6642         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("crc_enable NULL parameter"));
   6643     }
   6644     /* Dispatch */
   6645     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6646     if(__type__ >= cprimodDispatchTypeCount) { 
   6647         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6648     }
   6649 
   6650     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_brcm_rsvd5_control_config_get) {
   6651         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_brcm_rsvd5_control_config_get(unit, port, schan_start, schan_size, queue_num, crc_enable);
   6652         _SOC_IF_ERR_EXIT(__rv__);
   6653     } else { 
   6654         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_brcm_rsvd5_control_config_get isn't implemented for driver type"));
   6655     }
   6656         
   6657 exit:
   6658     SOC_FUNC_RETURN; 
   6659     
   6660 }
   6661 
   6662 
   6663 int cprimod_gcw_mask_t_validate(cprimod_gcw_mask_t cprimod_gcw_mask)
   6664 {        
   6665     SOC_INIT_FUNC_DEFS;
   6666     if(cprimod_gcw_mask >= cprimodGcwMaskCount) {
   6667         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   6668     }
   6669         
   6670 exit:
   6671     SOC_FUNC_RETURN; 
   6672     
   6673 }
   6674 
   6675 int cprimod_cpri_rx_gcw_config_t_validate(const cprimod_cpri_rx_gcw_config_t* cprimod_cpri_rx_gcw_config)
   6676 {        
   6677     SOC_INIT_FUNC_DEFS;
   6678     if(cprimod_cpri_rx_gcw_config == NULL) {
   6679         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   6680     }
   6681 
   6682 
   6683         
   6684 exit:
   6685     SOC_FUNC_RETURN; 
   6686     
   6687 }
   6688 
   6689 int cprimod_cpri_rx_gcw_config_t_init(cprimod_cpri_rx_gcw_config_t* cprimod_cpri_rx_gcw_config)
   6690 {        
   6691     SOC_INIT_FUNC_DEFS;
   6692     
   6693     if(cprimod_cpri_rx_gcw_config == NULL){
   6694         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_rx_gcw_config NULL parameter"));
   6695     }
   6696     sal_memset(cprimod_cpri_rx_gcw_config, 0, sizeof(cprimod_cpri_rx_gcw_config_t));
   6697     cprimod_cpri_rx_gcw_config->mask = 0;
   6698     cprimod_cpri_rx_gcw_config->filter_mode = 0;
   6699 
   6700         
   6701 exit:
   6702     SOC_FUNC_RETURN; 
   6703     
   6704 }
   6705 
   6706 int cprimod_cpri_tx_gcw_config_t_validate(const cprimod_cpri_tx_gcw_config_t* cprimod_cpri_tx_gcw_config)
   6707 {        
   6708     SOC_INIT_FUNC_DEFS;
   6709     if(cprimod_cpri_tx_gcw_config == NULL) {
   6710         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   6711     }
   6712 
   6713 
   6714         
   6715 exit:
   6716     SOC_FUNC_RETURN; 
   6717     
   6718 }
   6719 
   6720 int cprimod_cpri_tx_gcw_config_t_init(cprimod_cpri_tx_gcw_config_t* cprimod_cpri_tx_gcw_config)
   6721 {        
   6722     SOC_INIT_FUNC_DEFS;
   6723     
   6724     if(cprimod_cpri_tx_gcw_config == NULL){
   6725         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_tx_gcw_config NULL parameter"));
   6726     }
   6727     sal_memset(cprimod_cpri_tx_gcw_config, 0, sizeof(cprimod_cpri_tx_gcw_config_t));
   6728     cprimod_cpri_tx_gcw_config->mask = 0;
   6729 
   6730         
   6731 exit:
   6732     SOC_FUNC_RETURN; 
   6733     
   6734 }
   6735 
   6736 int cprimod_cpri_port_rx_gcw_config_set(int unit, int port, uint32 index, const cprimod_cpri_rx_gcw_config_t* config_info)
   6737 {
   6738 
   6739     cprimod_dispatch_type_t __type__;
   6740     int __rv__;        
   6741     SOC_INIT_FUNC_DEFS;
   6742     
   6743     if(SOC_E_NONE != cprimod_cpri_rx_gcw_config_t_validate(config_info)) {
   6744         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   6745     }
   6746 
   6747     /* Dispatch */
   6748     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6749     if(__type__ >= cprimodDispatchTypeCount) { 
   6750         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6751     }
   6752 
   6753     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_gcw_config_set) {
   6754         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_gcw_config_set(unit, port, index, config_info);
   6755         _SOC_IF_ERR_EXIT(__rv__);
   6756     } else { 
   6757         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_gcw_config_set isn't implemented for driver type"));
   6758     }
   6759         
   6760 exit:
   6761     SOC_FUNC_RETURN; 
   6762     
   6763 }
   6764 
   6765 
   6766 int cprimod_cpri_port_rx_gcw_config_get(int unit, int port, uint32 index, cprimod_cpri_rx_gcw_config_t* config_info)
   6767 {
   6768 
   6769     cprimod_dispatch_type_t __type__;
   6770     int __rv__;        
   6771     SOC_INIT_FUNC_DEFS;
   6772     
   6773     if(config_info == NULL) {
   6774         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   6775     }
   6776     if(SOC_E_NONE != cprimod_cpri_rx_gcw_config_t_init(config_info)) {
   6777         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   6778     }
   6779 
   6780     /* Dispatch */
   6781     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6782     if(__type__ >= cprimodDispatchTypeCount) { 
   6783         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6784     }
   6785 
   6786     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_gcw_config_get) {
   6787         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_gcw_config_get(unit, port, index, config_info);
   6788         _SOC_IF_ERR_EXIT(__rv__);
   6789     } else { 
   6790         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_gcw_config_get isn't implemented for driver type"));
   6791     }
   6792         
   6793 exit:
   6794     SOC_FUNC_RETURN; 
   6795     
   6796 }
   6797 
   6798 
   6799 int cprimod_cpri_port_tx_gcw_config_set(int unit, int port, uint32 index, const cprimod_cpri_tx_gcw_config_t* config_info)
   6800 {
   6801 
   6802     cprimod_dispatch_type_t __type__;
   6803     int __rv__;        
   6804     SOC_INIT_FUNC_DEFS;
   6805     
   6806     if(SOC_E_NONE != cprimod_cpri_tx_gcw_config_t_validate(config_info)) {
   6807         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   6808     }
   6809 
   6810     /* Dispatch */
   6811     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6812     if(__type__ >= cprimodDispatchTypeCount) { 
   6813         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6814     }
   6815 
   6816     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_gcw_config_set) {
   6817         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_gcw_config_set(unit, port, index, config_info);
   6818         _SOC_IF_ERR_EXIT(__rv__);
   6819     } else { 
   6820         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_gcw_config_set isn't implemented for driver type"));
   6821     }
   6822         
   6823 exit:
   6824     SOC_FUNC_RETURN; 
   6825     
   6826 }
   6827 
   6828 
   6829 int cprimod_cpri_port_tx_gcw_config_get(int unit, int port, uint32 index, cprimod_cpri_tx_gcw_config_t* config_info)
   6830 {
   6831 
   6832     cprimod_dispatch_type_t __type__;
   6833     int __rv__;        
   6834     SOC_INIT_FUNC_DEFS;
   6835     
   6836     if(config_info == NULL) {
   6837         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   6838     }
   6839     if(SOC_E_NONE != cprimod_cpri_tx_gcw_config_t_init(config_info)) {
   6840         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   6841     }
   6842 
   6843     /* Dispatch */
   6844     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6845     if(__type__ >= cprimodDispatchTypeCount) { 
   6846         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6847     }
   6848 
   6849     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_gcw_config_get) {
   6850         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_gcw_config_get(unit, port, index, config_info);
   6851         _SOC_IF_ERR_EXIT(__rv__);
   6852     } else { 
   6853         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_gcw_config_get isn't implemented for driver type"));
   6854     }
   6855         
   6856 exit:
   6857     SOC_FUNC_RETURN; 
   6858     
   6859 }
   6860 
   6861 
   6862 int cprimod_cpri_port_tx_gcw_filter_set(int unit, int port, uint32 bfn0_value, uint32 bfn0_mask, uint32 bfn1_value, uint32 bfn1_mask)
   6863 {
   6864 
   6865     cprimod_dispatch_type_t __type__;
   6866     int __rv__;        
   6867     SOC_INIT_FUNC_DEFS;
   6868     
   6869     /* Dispatch */
   6870     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6871     if(__type__ >= cprimodDispatchTypeCount) { 
   6872         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6873     }
   6874 
   6875     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_gcw_filter_set) {
   6876         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_gcw_filter_set(unit, port, bfn0_value, bfn0_mask, bfn1_value, bfn1_mask);
   6877         _SOC_IF_ERR_EXIT(__rv__);
   6878     } else { 
   6879         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_gcw_filter_set isn't implemented for driver type"));
   6880     }
   6881         
   6882 exit:
   6883     SOC_FUNC_RETURN; 
   6884     
   6885 }
   6886 
   6887 
   6888 int cprimod_cpri_port_tx_gcw_filter_get(int unit, int port, uint32* bfn0_value, uint32* bfn0_mask, uint32* bfn1_value, uint32* bfn1_mask)
   6889 {
   6890 
   6891     cprimod_dispatch_type_t __type__;
   6892     int __rv__;        
   6893     SOC_INIT_FUNC_DEFS;
   6894     
   6895     if(bfn0_value == NULL) {
   6896         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("bfn0_value NULL parameter"));
   6897     }
   6898     if(bfn0_mask == NULL) {
   6899         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("bfn0_mask NULL parameter"));
   6900     }
   6901     if(bfn1_value == NULL) {
   6902         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("bfn1_value NULL parameter"));
   6903     }
   6904     if(bfn1_mask == NULL) {
   6905         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("bfn1_mask NULL parameter"));
   6906     }
   6907     /* Dispatch */
   6908     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6909     if(__type__ >= cprimodDispatchTypeCount) { 
   6910         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6911     }
   6912 
   6913     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_gcw_filter_get) {
   6914         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_gcw_filter_get(unit, port, bfn0_value, bfn0_mask, bfn1_value, bfn1_mask);
   6915         _SOC_IF_ERR_EXIT(__rv__);
   6916     } else { 
   6917         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_gcw_filter_get isn't implemented for driver type"));
   6918     }
   6919         
   6920 exit:
   6921     SOC_FUNC_RETURN; 
   6922     
   6923 }
   6924 
   6925 
   6926 int cprimod_cpri_tx_control_word_t_validate(const cprimod_cpri_tx_control_word_t* cprimod_cpri_tx_control_word)
   6927 {        
   6928     SOC_INIT_FUNC_DEFS;
   6929     if(cprimod_cpri_tx_control_word == NULL) {
   6930         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   6931     }
   6932 
   6933 
   6934         
   6935 exit:
   6936     SOC_FUNC_RETURN; 
   6937     
   6938 }
   6939 
   6940 int cprimod_cpri_tx_control_word_t_init(cprimod_cpri_tx_control_word_t* cprimod_cpri_tx_control_word)
   6941 {        
   6942     SOC_INIT_FUNC_DEFS;
   6943     
   6944     if(cprimod_cpri_tx_control_word == NULL){
   6945         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_tx_control_word NULL parameter"));
   6946     }
   6947     sal_memset(cprimod_cpri_tx_control_word, 0, sizeof(cprimod_cpri_tx_control_word_t));
   6948 
   6949         
   6950 exit:
   6951     SOC_FUNC_RETURN; 
   6952     
   6953 }
   6954 
   6955 int cprimod_cpri_port_tx_control_word_set(int unit, int port, const cprimod_cpri_cw_l1_config_info_t* control_info)
   6956 {
   6957 
   6958     cprimod_dispatch_type_t __type__;
   6959     int __rv__;        
   6960     SOC_INIT_FUNC_DEFS;
   6961     
   6962     /* Dispatch */
   6963     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6964     if(__type__ >= cprimodDispatchTypeCount) { 
   6965         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6966     }
   6967 
   6968     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_control_word_set) {
   6969         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_control_word_set(unit, port, control_info);
   6970         _SOC_IF_ERR_EXIT(__rv__);
   6971     } else { 
   6972         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_control_word_set isn't implemented for driver type"));
   6973     }
   6974         
   6975 exit:
   6976     SOC_FUNC_RETURN; 
   6977     
   6978 }
   6979 
   6980 
   6981 int cprimod_rsvd4_rx_control_message_config_set(int unit, int port, uint32 queue_num, uint32 default_tag, uint32 no_match_tag)
   6982 {
   6983 
   6984     cprimod_dispatch_type_t __type__;
   6985     int __rv__;        
   6986     SOC_INIT_FUNC_DEFS;
   6987     
   6988     /* Dispatch */
   6989     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   6990     if(__type__ >= cprimodDispatchTypeCount) { 
   6991         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   6992     }
   6993 
   6994     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_control_message_config_set) {
   6995         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_control_message_config_set(unit, port, queue_num, default_tag, no_match_tag);
   6996         _SOC_IF_ERR_EXIT(__rv__);
   6997     } else { 
   6998         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_rx_control_message_config_set isn't implemented for driver type"));
   6999     }
   7000         
   7001 exit:
   7002     SOC_FUNC_RETURN; 
   7003     
   7004 }
   7005 
   7006 
   7007 int cprimod_control_flow_config_t_validate(const cprimod_control_flow_config_t* cprimod_control_flow_config)
   7008 {        
   7009     SOC_INIT_FUNC_DEFS;
   7010     if(cprimod_control_flow_config == NULL) {
   7011         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   7012     }
   7013 
   7014 
   7015         
   7016 exit:
   7017     SOC_FUNC_RETURN; 
   7018     
   7019 }
   7020 
   7021 int cprimod_control_flow_config_t_init(cprimod_control_flow_config_t* cprimod_control_flow_config)
   7022 {        
   7023     SOC_INIT_FUNC_DEFS;
   7024     
   7025     if(cprimod_control_flow_config == NULL){
   7026         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_control_flow_config NULL parameter"));
   7027     }
   7028     sal_memset(cprimod_control_flow_config, 0, sizeof(cprimod_control_flow_config_t));
   7029     cprimod_control_flow_config->proc_type = 0;
   7030 
   7031         
   7032 exit:
   7033     SOC_FUNC_RETURN; 
   7034     
   7035 }
   7036 
   7037 int cprimod_rsvd4_rx_control_flow_config_set(int unit, int port, uint32 flow_id, const cprimod_control_flow_config_t* config)
   7038 {
   7039 
   7040     cprimod_dispatch_type_t __type__;
   7041     int __rv__;        
   7042     SOC_INIT_FUNC_DEFS;
   7043     
   7044     if(SOC_E_NONE != cprimod_control_flow_config_t_validate(config)) {
   7045         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config validation failed"));
   7046     }
   7047 
   7048     /* Dispatch */
   7049     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7050     if(__type__ >= cprimodDispatchTypeCount) { 
   7051         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7052     }
   7053 
   7054     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_control_flow_config_set) {
   7055         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_control_flow_config_set(unit, port, flow_id, config);
   7056         _SOC_IF_ERR_EXIT(__rv__);
   7057     } else { 
   7058         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_rx_control_flow_config_set isn't implemented for driver type"));
   7059     }
   7060         
   7061 exit:
   7062     SOC_FUNC_RETURN; 
   7063     
   7064 }
   7065 
   7066 
   7067 int cprimod_rsvd4_rx_control_flow_config_get(int unit, int port, uint32 flow_id, cprimod_control_flow_config_t* config)
   7068 {
   7069 
   7070     cprimod_dispatch_type_t __type__;
   7071     int __rv__;        
   7072     SOC_INIT_FUNC_DEFS;
   7073     
   7074     if(config == NULL) {
   7075         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config NULL parameter"));
   7076     }
   7077     if(SOC_E_NONE != cprimod_control_flow_config_t_init(config)) {
   7078         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config initialization failed"));
   7079     }
   7080 
   7081     /* Dispatch */
   7082     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7083     if(__type__ >= cprimodDispatchTypeCount) { 
   7084         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7085     }
   7086 
   7087     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_control_flow_config_get) {
   7088         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_control_flow_config_get(unit, port, flow_id, config);
   7089         _SOC_IF_ERR_EXIT(__rv__);
   7090     } else { 
   7091         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_rx_control_flow_config_get isn't implemented for driver type"));
   7092     }
   7093         
   7094 exit:
   7095     SOC_FUNC_RETURN; 
   7096     
   7097 }
   7098 
   7099 
   7100 int cprimod_sync_profile_entry_t_validate(const cprimod_sync_profile_entry_t* cprimod_sync_profile_entry)
   7101 {        
   7102     SOC_INIT_FUNC_DEFS;
   7103     if(cprimod_sync_profile_entry == NULL) {
   7104         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   7105     }
   7106 
   7107 
   7108         
   7109 exit:
   7110     SOC_FUNC_RETURN; 
   7111     
   7112 }
   7113 
   7114 int cprimod_sync_profile_entry_t_init(cprimod_sync_profile_entry_t* cprimod_sync_profile_entry)
   7115 {        
   7116     SOC_INIT_FUNC_DEFS;
   7117     
   7118     if(cprimod_sync_profile_entry == NULL){
   7119         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_sync_profile_entry NULL parameter"));
   7120     }
   7121     sal_memset(cprimod_sync_profile_entry, 0, sizeof(cprimod_sync_profile_entry_t));
   7122     cprimod_sync_profile_entry->count_cycle = 0;
   7123 
   7124         
   7125 exit:
   7126     SOC_FUNC_RETURN; 
   7127     
   7128 }
   7129 
   7130 int cprimod_rsvd4_rx_sync_profile_entry_set(int unit, int port, uint32 profile_id, const cprimod_sync_profile_entry_t* entry)
   7131 {
   7132 
   7133     cprimod_dispatch_type_t __type__;
   7134     int __rv__;        
   7135     SOC_INIT_FUNC_DEFS;
   7136     
   7137     if(SOC_E_NONE != cprimod_sync_profile_entry_t_validate(entry)) {
   7138         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("entry validation failed"));
   7139     }
   7140 
   7141     /* Dispatch */
   7142     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7143     if(__type__ >= cprimodDispatchTypeCount) { 
   7144         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7145     }
   7146 
   7147     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_sync_profile_entry_set) {
   7148         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_sync_profile_entry_set(unit, port, profile_id, entry);
   7149         _SOC_IF_ERR_EXIT(__rv__);
   7150     } else { 
   7151         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_rx_sync_profile_entry_set isn't implemented for driver type"));
   7152     }
   7153         
   7154 exit:
   7155     SOC_FUNC_RETURN; 
   7156     
   7157 }
   7158 
   7159 
   7160 int cprimod_rsvd4_rx_sync_profile_entry_get(int unit, int port, uint32 profile_id, cprimod_sync_profile_entry_t* entry)
   7161 {
   7162 
   7163     cprimod_dispatch_type_t __type__;
   7164     int __rv__;        
   7165     SOC_INIT_FUNC_DEFS;
   7166     
   7167     if(entry == NULL) {
   7168         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("entry NULL parameter"));
   7169     }
   7170     if(SOC_E_NONE != cprimod_sync_profile_entry_t_init(entry)) {
   7171         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("entry initialization failed"));
   7172     }
   7173 
   7174     /* Dispatch */
   7175     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7176     if(__type__ >= cprimodDispatchTypeCount) { 
   7177         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7178     }
   7179 
   7180     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_sync_profile_entry_get) {
   7181         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_rx_sync_profile_entry_get(unit, port, profile_id, entry);
   7182         _SOC_IF_ERR_EXIT(__rv__);
   7183     } else { 
   7184         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_rx_sync_profile_entry_get isn't implemented for driver type"));
   7185     }
   7186         
   7187 exit:
   7188     SOC_FUNC_RETURN; 
   7189     
   7190 }
   7191 
   7192 
   7193 int cprimod_rx_tag_config_set(int unit, int port, uint32 default_tag, uint32 no_match_tag)
   7194 {
   7195 
   7196     cprimod_dispatch_type_t __type__;
   7197     int __rv__;        
   7198     SOC_INIT_FUNC_DEFS;
   7199     
   7200     /* Dispatch */
   7201     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7202     if(__type__ >= cprimodDispatchTypeCount) { 
   7203         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7204     }
   7205 
   7206     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rx_tag_config_set) {
   7207         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rx_tag_config_set(unit, port, default_tag, no_match_tag);
   7208         _SOC_IF_ERR_EXIT(__rv__);
   7209     } else { 
   7210         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rx_tag_config_set isn't implemented for driver type"));
   7211     }
   7212         
   7213 exit:
   7214     SOC_FUNC_RETURN; 
   7215     
   7216 }
   7217 
   7218 
   7219 int cprimod_rx_tag_gen_entry_add(int unit, int port, const cprimod_tag_gen_entry_t* entry)
   7220 {
   7221 
   7222     cprimod_dispatch_type_t __type__;
   7223     int __rv__;        
   7224     SOC_INIT_FUNC_DEFS;
   7225     
   7226     /* Dispatch */
   7227     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7228     if(__type__ >= cprimodDispatchTypeCount) { 
   7229         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7230     }
   7231 
   7232     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rx_tag_gen_entry_add) {
   7233         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rx_tag_gen_entry_add(unit, port, entry);
   7234         _SOC_IF_ERR_EXIT(__rv__);
   7235     } else { 
   7236         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rx_tag_gen_entry_add isn't implemented for driver type"));
   7237     }
   7238         
   7239 exit:
   7240     SOC_FUNC_RETURN; 
   7241     
   7242 }
   7243 
   7244 
   7245 int cprimod_rx_tag_gen_entry_delete(int unit, int port, const cprimod_tag_gen_entry_t* entry)
   7246 {
   7247 
   7248     cprimod_dispatch_type_t __type__;
   7249     int __rv__;        
   7250     SOC_INIT_FUNC_DEFS;
   7251     
   7252     /* Dispatch */
   7253     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7254     if(__type__ >= cprimodDispatchTypeCount) { 
   7255         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7256     }
   7257 
   7258     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rx_tag_gen_entry_delete) {
   7259         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rx_tag_gen_entry_delete(unit, port, entry);
   7260         _SOC_IF_ERR_EXIT(__rv__);
   7261     } else { 
   7262         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rx_tag_gen_entry_delete isn't implemented for driver type"));
   7263     }
   7264         
   7265 exit:
   7266     SOC_FUNC_RETURN; 
   7267     
   7268 }
   7269 
   7270 
   7271 int cprimod_rx_control_flow_tag_option_set(int unit, int port, uint32 flow_id, cprimod_cpri_tag_option_t tag_option)
   7272 {
   7273 
   7274     cprimod_dispatch_type_t __type__;
   7275     int __rv__;        
   7276     SOC_INIT_FUNC_DEFS;
   7277     
   7278     /* Dispatch */
   7279     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7280     if(__type__ >= cprimodDispatchTypeCount) { 
   7281         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7282     }
   7283 
   7284     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rx_control_flow_tag_option_set) {
   7285         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rx_control_flow_tag_option_set(unit, port, flow_id, tag_option);
   7286         _SOC_IF_ERR_EXIT(__rv__);
   7287     } else { 
   7288         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rx_control_flow_tag_option_set isn't implemented for driver type"));
   7289     }
   7290         
   7291 exit:
   7292     SOC_FUNC_RETURN; 
   7293     
   7294 }
   7295 
   7296 
   7297 int cprimod_rsvd4_tx_control_flow_group_member_add(int unit, int port, uint32 group_id, uint32 priority, uint32 queue_num, cprimod_control_msg_proc_type_t proc_type)
   7298 {
   7299 
   7300     cprimod_dispatch_type_t __type__;
   7301     int __rv__;        
   7302     SOC_INIT_FUNC_DEFS;
   7303     
   7304     /* Dispatch */
   7305     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7306     if(__type__ >= cprimodDispatchTypeCount) { 
   7307         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7308     }
   7309 
   7310     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_flow_group_member_add) {
   7311         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_flow_group_member_add(unit, port, group_id, priority, queue_num, proc_type);
   7312         _SOC_IF_ERR_EXIT(__rv__);
   7313     } else { 
   7314         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_control_flow_group_member_add isn't implemented for driver type"));
   7315     }
   7316         
   7317 exit:
   7318     SOC_FUNC_RETURN; 
   7319     
   7320 }
   7321 
   7322 
   7323 int cprimod_rsvd4_tx_control_flow_group_member_delete(int unit, int port, uint32 group_id, uint32 priority)
   7324 {
   7325 
   7326     cprimod_dispatch_type_t __type__;
   7327     int __rv__;        
   7328     SOC_INIT_FUNC_DEFS;
   7329     
   7330     /* Dispatch */
   7331     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7332     if(__type__ >= cprimodDispatchTypeCount) { 
   7333         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7334     }
   7335 
   7336     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_flow_group_member_delete) {
   7337         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_flow_group_member_delete(unit, port, group_id, priority);
   7338         _SOC_IF_ERR_EXIT(__rv__);
   7339     } else { 
   7340         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_control_flow_group_member_delete isn't implemented for driver type"));
   7341     }
   7342         
   7343 exit:
   7344     SOC_FUNC_RETURN; 
   7345     
   7346 }
   7347 
   7348 
   7349 int cprimod_rsvd4_tx_eth_message_config_set(int unit, int port, uint32 msg_node, uint32 msg_subnode, uint32 msg_type, uint32 msg_padding)
   7350 {
   7351 
   7352     cprimod_dispatch_type_t __type__;
   7353     int __rv__;        
   7354     SOC_INIT_FUNC_DEFS;
   7355     
   7356     /* Dispatch */
   7357     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7358     if(__type__ >= cprimodDispatchTypeCount) { 
   7359         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7360     }
   7361 
   7362     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_eth_message_config_set) {
   7363         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_eth_message_config_set(unit, port, msg_node, msg_subnode, msg_type, msg_padding);
   7364         _SOC_IF_ERR_EXIT(__rv__);
   7365     } else { 
   7366         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_eth_message_config_set isn't implemented for driver type"));
   7367     }
   7368         
   7369 exit:
   7370     SOC_FUNC_RETURN; 
   7371     
   7372 }
   7373 
   7374 
   7375 int cprimod_rsvd4_tx_single_raw_message_config_set(int unit, int port, uint32 msg_id, uint32 msg_type)
   7376 {
   7377 
   7378     cprimod_dispatch_type_t __type__;
   7379     int __rv__;        
   7380     SOC_INIT_FUNC_DEFS;
   7381     
   7382     /* Dispatch */
   7383     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7384     if(__type__ >= cprimodDispatchTypeCount) { 
   7385         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7386     }
   7387 
   7388     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_single_raw_message_config_set) {
   7389         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_single_raw_message_config_set(unit, port, msg_id, msg_type);
   7390         _SOC_IF_ERR_EXIT(__rv__);
   7391     } else { 
   7392         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_single_raw_message_config_set isn't implemented for driver type"));
   7393     }
   7394         
   7395 exit:
   7396     SOC_FUNC_RETURN; 
   7397     
   7398 }
   7399 
   7400 
   7401 int cprimod_rsvd4_tx_single_tunnel_message_config_set(int unit, int port, cprimod_cpri_crc_option_t crc_option)
   7402 {
   7403 
   7404     cprimod_dispatch_type_t __type__;
   7405     int __rv__;        
   7406     SOC_INIT_FUNC_DEFS;
   7407     
   7408     /* Dispatch */
   7409     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7410     if(__type__ >= cprimodDispatchTypeCount) { 
   7411         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7412     }
   7413 
   7414     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_single_tunnel_message_config_set) {
   7415         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_single_tunnel_message_config_set(unit, port, crc_option);
   7416         _SOC_IF_ERR_EXIT(__rv__);
   7417     } else { 
   7418         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_single_tunnel_message_config_set isn't implemented for driver type"));
   7419     }
   7420         
   7421 exit:
   7422     SOC_FUNC_RETURN; 
   7423     
   7424 }
   7425 
   7426 
   7427 int cprimod_rsvd4_tx_config_info_t_validate(const cprimod_rsvd4_tx_config_info_t* cprimod_rsvd4_tx_config_info)
   7428 {        
   7429     SOC_INIT_FUNC_DEFS;
   7430     if(cprimod_rsvd4_tx_config_info == NULL) {
   7431         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   7432     }
   7433 
   7434 
   7435         
   7436 exit:
   7437     SOC_FUNC_RETURN; 
   7438     
   7439 }
   7440 
   7441 int cprimod_rsvd4_tx_config_info_t_init(cprimod_rsvd4_tx_config_info_t* cprimod_rsvd4_tx_config_info)
   7442 {        
   7443     SOC_INIT_FUNC_DEFS;
   7444     
   7445     if(cprimod_rsvd4_tx_config_info == NULL){
   7446         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_rsvd4_tx_config_info NULL parameter"));
   7447     }
   7448     sal_memset(cprimod_rsvd4_tx_config_info, 0, sizeof(cprimod_rsvd4_tx_config_info_t));
   7449     cprimod_rsvd4_tx_config_info->proc_type = 0;
   7450 
   7451         
   7452 exit:
   7453     SOC_FUNC_RETURN; 
   7454     
   7455 }
   7456 
   7457 int cprimod_rsvd4_tx_control_flow_config_set(int unit, int port, uint32 flow_id, const cprimod_rsvd4_tx_config_info_t* config_info)
   7458 {
   7459 
   7460     cprimod_dispatch_type_t __type__;
   7461     int __rv__;        
   7462     SOC_INIT_FUNC_DEFS;
   7463     
   7464     if(SOC_E_NONE != cprimod_rsvd4_tx_config_info_t_validate(config_info)) {
   7465         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info validation failed"));
   7466     }
   7467 
   7468     /* Dispatch */
   7469     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7470     if(__type__ >= cprimodDispatchTypeCount) { 
   7471         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7472     }
   7473 
   7474     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_flow_config_set) {
   7475         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_flow_config_set(unit, port, flow_id, config_info);
   7476         _SOC_IF_ERR_EXIT(__rv__);
   7477     } else { 
   7478         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_control_flow_config_set isn't implemented for driver type"));
   7479     }
   7480         
   7481 exit:
   7482     SOC_FUNC_RETURN; 
   7483     
   7484 }
   7485 
   7486 
   7487 int cprimod_rsvd4_tx_control_flow_config_get(int unit, int port, uint32 flow_id, cprimod_rsvd4_tx_config_info_t* config_info)
   7488 {
   7489 
   7490     cprimod_dispatch_type_t __type__;
   7491     int __rv__;        
   7492     SOC_INIT_FUNC_DEFS;
   7493     
   7494     if(config_info == NULL) {
   7495         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info NULL parameter"));
   7496     }
   7497     if(SOC_E_NONE != cprimod_rsvd4_tx_config_info_t_init(config_info)) {
   7498         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config_info initialization failed"));
   7499     }
   7500 
   7501     /* Dispatch */
   7502     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7503     if(__type__ >= cprimodDispatchTypeCount) { 
   7504         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7505     }
   7506 
   7507     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_flow_config_get) {
   7508         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_flow_config_get(unit, port, flow_id, config_info);
   7509         _SOC_IF_ERR_EXIT(__rv__);
   7510     } else { 
   7511         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_control_flow_config_get isn't implemented for driver type"));
   7512     }
   7513         
   7514 exit:
   7515     SOC_FUNC_RETURN; 
   7516     
   7517 }
   7518 
   7519 
   7520 int cprimod_rsvd4_tx_control_flow_header_index_set(int unit, int port, uint32 roe_flow_id, uint32 index)
   7521 {
   7522 
   7523     cprimod_dispatch_type_t __type__;
   7524     int __rv__;        
   7525     SOC_INIT_FUNC_DEFS;
   7526     
   7527     /* Dispatch */
   7528     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7529     if(__type__ >= cprimodDispatchTypeCount) { 
   7530         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7531     }
   7532 
   7533     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_flow_header_index_set) {
   7534         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_flow_header_index_set(unit, port, roe_flow_id, index);
   7535         _SOC_IF_ERR_EXIT(__rv__);
   7536     } else { 
   7537         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_control_flow_header_index_set isn't implemented for driver type"));
   7538     }
   7539         
   7540 exit:
   7541     SOC_FUNC_RETURN; 
   7542     
   7543 }
   7544 
   7545 
   7546 int cprimod_rsvd4_tx_control_flow_header_index_get(int unit, int port, uint32 roe_flow_id, uint32* index)
   7547 {
   7548 
   7549     cprimod_dispatch_type_t __type__;
   7550     int __rv__;        
   7551     SOC_INIT_FUNC_DEFS;
   7552     
   7553     if(index == NULL) {
   7554         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("index NULL parameter"));
   7555     }
   7556     /* Dispatch */
   7557     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7558     if(__type__ >= cprimodDispatchTypeCount) { 
   7559         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7560     }
   7561 
   7562     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_flow_header_index_get) {
   7563         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_flow_header_index_get(unit, port, roe_flow_id, index);
   7564         _SOC_IF_ERR_EXIT(__rv__);
   7565     } else { 
   7566         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_control_flow_header_index_get isn't implemented for driver type"));
   7567     }
   7568         
   7569 exit:
   7570     SOC_FUNC_RETURN; 
   7571     
   7572 }
   7573 
   7574 
   7575 int cprimod_rsvd4_tx_control_header_entry_set(int unit, int port, uint32 index, uint32 header_node, uint32 header_subnode, uint32 payload_node)
   7576 {
   7577 
   7578     cprimod_dispatch_type_t __type__;
   7579     int __rv__;        
   7580     SOC_INIT_FUNC_DEFS;
   7581     
   7582     /* Dispatch */
   7583     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7584     if(__type__ >= cprimodDispatchTypeCount) { 
   7585         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7586     }
   7587 
   7588     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_header_entry_set) {
   7589         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_header_entry_set(unit, port, index, header_node, header_subnode, payload_node);
   7590         _SOC_IF_ERR_EXIT(__rv__);
   7591     } else { 
   7592         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_control_header_entry_set isn't implemented for driver type"));
   7593     }
   7594         
   7595 exit:
   7596     SOC_FUNC_RETURN; 
   7597     
   7598 }
   7599 
   7600 
   7601 int cprimod_rsvd4_tx_control_header_entry_get(int unit, int port, uint32 index, uint32* header_node, uint32* header_subnode, uint32* payload_node)
   7602 {
   7603 
   7604     cprimod_dispatch_type_t __type__;
   7605     int __rv__;        
   7606     SOC_INIT_FUNC_DEFS;
   7607     
   7608     if(header_node == NULL) {
   7609         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("header_node NULL parameter"));
   7610     }
   7611     if(header_subnode == NULL) {
   7612         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("header_subnode NULL parameter"));
   7613     }
   7614     if(payload_node == NULL) {
   7615         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("payload_node NULL parameter"));
   7616     }
   7617     /* Dispatch */
   7618     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7619     if(__type__ >= cprimodDispatchTypeCount) { 
   7620         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7621     }
   7622 
   7623     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_header_entry_get) {
   7624         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_control_header_entry_get(unit, port, index, header_node, header_subnode, payload_node);
   7625         _SOC_IF_ERR_EXIT(__rv__);
   7626     } else { 
   7627         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_control_header_entry_get isn't implemented for driver type"));
   7628     }
   7629         
   7630 exit:
   7631     SOC_FUNC_RETURN; 
   7632     
   7633 }
   7634 
   7635 
   7636 int cprimod_rsvd4_fast_eth_config_set(int unit, int port, const cprimod_cpri_fast_eth_config_t* config_info)
   7637 {
   7638 
   7639     cprimod_dispatch_type_t __type__;
   7640     int __rv__;        
   7641     SOC_INIT_FUNC_DEFS;
   7642     
   7643     /* Dispatch */
   7644     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7645     if(__type__ >= cprimodDispatchTypeCount) { 
   7646         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7647     }
   7648 
   7649     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_fast_eth_config_set) {
   7650         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_fast_eth_config_set(unit, port, config_info);
   7651         _SOC_IF_ERR_EXIT(__rv__);
   7652     } else { 
   7653         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_fast_eth_config_set isn't implemented for driver type"));
   7654     }
   7655         
   7656 exit:
   7657     SOC_FUNC_RETURN; 
   7658     
   7659 }
   7660 
   7661 
   7662 int cprimod_cpri_or_enet_port_set(int unit, int port, int val)
   7663 {
   7664 
   7665     cprimod_dispatch_type_t __type__;
   7666     int __rv__;        
   7667     SOC_INIT_FUNC_DEFS;
   7668     
   7669     /* Dispatch */
   7670     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7671     if(__type__ >= cprimodDispatchTypeCount) { 
   7672         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7673     }
   7674 
   7675     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_or_enet_port_set) {
   7676         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_or_enet_port_set(unit, port, val);
   7677         _SOC_IF_ERR_EXIT(__rv__);
   7678     } else { 
   7679         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_or_enet_port_set isn't implemented for driver type"));
   7680     }
   7681         
   7682 exit:
   7683     SOC_FUNC_RETURN; 
   7684     
   7685 }
   7686 
   7687 
   7688 int cprimod_cpri_or_enet_port_get(int unit, int port, int* val)
   7689 {
   7690 
   7691     cprimod_dispatch_type_t __type__;
   7692     int __rv__;        
   7693     SOC_INIT_FUNC_DEFS;
   7694     
   7695     if(val == NULL) {
   7696         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("val NULL parameter"));
   7697     }
   7698     /* Dispatch */
   7699     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7700     if(__type__ >= cprimodDispatchTypeCount) { 
   7701         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7702     }
   7703 
   7704     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_or_enet_port_get) {
   7705         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_or_enet_port_get(unit, port, val);
   7706         _SOC_IF_ERR_EXIT(__rv__);
   7707     } else { 
   7708         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_or_enet_port_get isn't implemented for driver type"));
   7709     }
   7710         
   7711 exit:
   7712     SOC_FUNC_RETURN; 
   7713     
   7714 }
   7715 
   7716 
   7717 int cprimod_cpri_port_rx_enable_set(int unit, int port, int val)
   7718 {
   7719 
   7720     cprimod_dispatch_type_t __type__;
   7721     int __rv__;        
   7722     SOC_INIT_FUNC_DEFS;
   7723     
   7724     /* Dispatch */
   7725     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7726     if(__type__ >= cprimodDispatchTypeCount) { 
   7727         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7728     }
   7729 
   7730     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_enable_set) {
   7731         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_enable_set(unit, port, val);
   7732         _SOC_IF_ERR_EXIT(__rv__);
   7733     } else { 
   7734         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_enable_set isn't implemented for driver type"));
   7735     }
   7736         
   7737 exit:
   7738     SOC_FUNC_RETURN; 
   7739     
   7740 }
   7741 
   7742 
   7743 int cprimod_cpri_port_rx_enable_get(int unit, int port, int* val)
   7744 {
   7745 
   7746     cprimod_dispatch_type_t __type__;
   7747     int __rv__;        
   7748     SOC_INIT_FUNC_DEFS;
   7749     
   7750     if(val == NULL) {
   7751         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("val NULL parameter"));
   7752     }
   7753     /* Dispatch */
   7754     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7755     if(__type__ >= cprimodDispatchTypeCount) { 
   7756         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7757     }
   7758 
   7759     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_enable_get) {
   7760         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_enable_get(unit, port, val);
   7761         _SOC_IF_ERR_EXIT(__rv__);
   7762     } else { 
   7763         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_enable_get isn't implemented for driver type"));
   7764     }
   7765         
   7766 exit:
   7767     SOC_FUNC_RETURN; 
   7768     
   7769 }
   7770 
   7771 
   7772 int cprimod_cpri_port_tx_enable_set(int unit, int port, int val)
   7773 {
   7774 
   7775     cprimod_dispatch_type_t __type__;
   7776     int __rv__;        
   7777     SOC_INIT_FUNC_DEFS;
   7778     
   7779     /* Dispatch */
   7780     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7781     if(__type__ >= cprimodDispatchTypeCount) { 
   7782         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7783     }
   7784 
   7785     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_enable_set) {
   7786         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_enable_set(unit, port, val);
   7787         _SOC_IF_ERR_EXIT(__rv__);
   7788     } else { 
   7789         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_enable_set isn't implemented for driver type"));
   7790     }
   7791         
   7792 exit:
   7793     SOC_FUNC_RETURN; 
   7794     
   7795 }
   7796 
   7797 
   7798 int cprimod_cpri_port_tx_enable_get(int unit, int port, int* val)
   7799 {
   7800 
   7801     cprimod_dispatch_type_t __type__;
   7802     int __rv__;        
   7803     SOC_INIT_FUNC_DEFS;
   7804     
   7805     if(val == NULL) {
   7806         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("val NULL parameter"));
   7807     }
   7808     /* Dispatch */
   7809     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7810     if(__type__ >= cprimodDispatchTypeCount) { 
   7811         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7812     }
   7813 
   7814     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_enable_get) {
   7815         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_enable_get(unit, port, val);
   7816         _SOC_IF_ERR_EXIT(__rv__);
   7817     } else { 
   7818         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_enable_get isn't implemented for driver type"));
   7819     }
   7820         
   7821 exit:
   7822     SOC_FUNC_RETURN; 
   7823     
   7824 }
   7825 
   7826 
   7827 int cprimod_cpri_port_interrupt_link_status_get(int unit, int port, const int* is_link_intr_status)
   7828 {
   7829 
   7830     cprimod_dispatch_type_t __type__;
   7831     int __rv__;        
   7832     SOC_INIT_FUNC_DEFS;
   7833     
   7834     /* Dispatch */
   7835     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7836     if(__type__ >= cprimodDispatchTypeCount) { 
   7837         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7838     }
   7839 
   7840     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_interrupt_link_status_get) {
   7841         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_interrupt_link_status_get(unit, port, is_link_intr_status);
   7842         _SOC_IF_ERR_EXIT(__rv__);
   7843     } else { 
   7844         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_interrupt_link_status_get isn't implemented for driver type"));
   7845     }
   7846         
   7847 exit:
   7848     SOC_FUNC_RETURN; 
   7849     
   7850 }
   7851 
   7852 
   7853 int cprimod_interrupt_callback_entry_t_validate(const cprimod_interrupt_callback_entry_t* cprimod_interrupt_callback_entry)
   7854 {        
   7855     SOC_INIT_FUNC_DEFS;
   7856     if(cprimod_interrupt_callback_entry == NULL) {
   7857         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   7858     }
   7859 
   7860 
   7861         
   7862 exit:
   7863     SOC_FUNC_RETURN; 
   7864     
   7865 }
   7866 
   7867 int cprimod_interrupt_callback_entry_t_init(cprimod_interrupt_callback_entry_t* cprimod_interrupt_callback_entry)
   7868 {        
   7869     SOC_INIT_FUNC_DEFS;
   7870     
   7871     if(cprimod_interrupt_callback_entry == NULL){
   7872         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_interrupt_callback_entry NULL parameter"));
   7873     }
   7874     sal_memset(cprimod_interrupt_callback_entry, 0, sizeof(cprimod_interrupt_callback_entry_t));
   7875     cprimod_interrupt_callback_entry->cb_func = NULL;
   7876     cprimod_interrupt_callback_entry->cb_data = NULL;
   7877 
   7878         
   7879 exit:
   7880     SOC_FUNC_RETURN; 
   7881     
   7882 }
   7883 
   7884 int cprimod_cpri_port_interrupt_enable_set(int unit, int port, cprimod_cpri_port_intr_type_t cpri_intr_type, int data, int enable)
   7885 {
   7886 
   7887     cprimod_dispatch_type_t __type__;
   7888     int __rv__;        
   7889     SOC_INIT_FUNC_DEFS;
   7890     
   7891     /* Dispatch */
   7892     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7893     if(__type__ >= cprimodDispatchTypeCount) { 
   7894         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7895     }
   7896 
   7897     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_interrupt_enable_set) {
   7898         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_interrupt_enable_set(unit, port, cpri_intr_type, data, enable);
   7899         _SOC_IF_ERR_EXIT(__rv__);
   7900     } else { 
   7901         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_interrupt_enable_set isn't implemented for driver type"));
   7902     }
   7903         
   7904 exit:
   7905     SOC_FUNC_RETURN; 
   7906     
   7907 }
   7908 
   7909 
   7910 int cprimod_cpri_port_interrupt_process(int unit, int port)
   7911 {
   7912 
   7913     cprimod_dispatch_type_t __type__;
   7914     int __rv__;        
   7915     SOC_INIT_FUNC_DEFS;
   7916     
   7917     /* Dispatch */
   7918     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   7919     if(__type__ >= cprimodDispatchTypeCount) { 
   7920         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   7921     }
   7922 
   7923     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_interrupt_process) {
   7924         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_interrupt_process(unit, port);
   7925         _SOC_IF_ERR_EXIT(__rv__);
   7926     } else { 
   7927         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_interrupt_process isn't implemented for driver type"));
   7928     }
   7929         
   7930 exit:
   7931     SOC_FUNC_RETURN; 
   7932     
   7933 }
   7934 
   7935 
   7936 int cprimod_1588_capture_mode_t_validate(cprimod_1588_capture_mode_t cprimod_1588_capture_mode)
   7937 {        
   7938     SOC_INIT_FUNC_DEFS;
   7939     if(cprimod_1588_capture_mode >= cprimod_1588_MATCH_Count) {
   7940         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   7941     }
   7942         
   7943 exit:
   7944     SOC_FUNC_RETURN; 
   7945     
   7946 }
   7947 
   7948 int cprimod_1588_capture_config_t_validate(const cprimod_1588_capture_config_t* cprimod_1588_capture_config)
   7949 {        
   7950     SOC_INIT_FUNC_DEFS;
   7951     if(cprimod_1588_capture_config == NULL) {
   7952         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   7953     }
   7954 
   7955     if(SOC_E_NONE != cprimod_1588_capture_mode_t_validate(cprimod_1588_capture_config->mode)) {
   7956         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mode validation failed"));
   7957     }
   7958 
   7959 
   7960         
   7961 exit:
   7962     SOC_FUNC_RETURN; 
   7963     
   7964 }
   7965 
   7966 int cprimod_1588_capture_config_t_init(cprimod_1588_capture_config_t* cprimod_1588_capture_config)
   7967 {        
   7968     SOC_INIT_FUNC_DEFS;
   7969     
   7970     if(cprimod_1588_capture_config == NULL){
   7971         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_1588_capture_config NULL parameter"));
   7972     }
   7973     sal_memset(cprimod_1588_capture_config, 0, sizeof(cprimod_1588_capture_config_t));
   7974     cprimod_1588_capture_config->mode = 0;
   7975     cprimod_1588_capture_config->capture_bfn_num = 0;
   7976     cprimod_1588_capture_config->capture_hfn_num = 0;
   7977 
   7978         
   7979 exit:
   7980     SOC_FUNC_RETURN; 
   7981     
   7982 }
   7983 
   7984 int cprimod_1588_time_t_validate(const cprimod_1588_time_t* cprimod_1588_time)
   7985 {        
   7986     SOC_INIT_FUNC_DEFS;
   7987     if(cprimod_1588_time == NULL) {
   7988         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   7989     }
   7990 
   7991 
   7992         
   7993 exit:
   7994     SOC_FUNC_RETURN; 
   7995     
   7996 }
   7997 
   7998 int cprimod_1588_time_t_init(cprimod_1588_time_t* cprimod_1588_time)
   7999 {        
   8000     SOC_INIT_FUNC_DEFS;
   8001     
   8002     if(cprimod_1588_time == NULL){
   8003         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_1588_time NULL parameter"));
   8004     }
   8005     sal_memset(cprimod_1588_time, 0, sizeof(cprimod_1588_time_t));
   8006     COMPILER_64_ZERO(cprimod_1588_time->nano_sec);
   8007     cprimod_1588_time->sub_nano_sec = 0;
   8008     cprimod_1588_time->sign_bit = 0;
   8009 
   8010         
   8011 exit:
   8012     SOC_FUNC_RETURN; 
   8013     
   8014 }
   8015 
   8016 int cprimod_fast_clk_bit_time_period_set(int unit, int port, uint32 bit_time_period)
   8017 {
   8018 
   8019     cprimod_dispatch_type_t __type__;
   8020     int __rv__;        
   8021     SOC_INIT_FUNC_DEFS;
   8022     
   8023     /* Dispatch */
   8024     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8025     if(__type__ >= cprimodDispatchTypeCount) { 
   8026         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8027     }
   8028 
   8029     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_fast_clk_bit_time_period_set) {
   8030         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_fast_clk_bit_time_period_set(unit, port, bit_time_period);
   8031         _SOC_IF_ERR_EXIT(__rv__);
   8032     } else { 
   8033         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_fast_clk_bit_time_period_set isn't implemented for driver type"));
   8034     }
   8035         
   8036 exit:
   8037     SOC_FUNC_RETURN; 
   8038     
   8039 }
   8040 
   8041 
   8042 int cprimod_fast_clk_bit_time_period_get(int unit, int port, uint32* bit_time_period)
   8043 {
   8044 
   8045     cprimod_dispatch_type_t __type__;
   8046     int __rv__;        
   8047     SOC_INIT_FUNC_DEFS;
   8048     
   8049     if(bit_time_period == NULL) {
   8050         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("bit_time_period NULL parameter"));
   8051     }
   8052     /* Dispatch */
   8053     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8054     if(__type__ >= cprimodDispatchTypeCount) { 
   8055         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8056     }
   8057 
   8058     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_fast_clk_bit_time_period_get) {
   8059         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_fast_clk_bit_time_period_get(unit, port, bit_time_period);
   8060         _SOC_IF_ERR_EXIT(__rv__);
   8061     } else { 
   8062         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_fast_clk_bit_time_period_get isn't implemented for driver type"));
   8063     }
   8064         
   8065 exit:
   8066     SOC_FUNC_RETURN; 
   8067     
   8068 }
   8069 
   8070 
   8071 int cprimod_1588_bit_time_period_set(int unit, int port, cprimod_direction_t direction, cprimod_port_speed_t speed)
   8072 {
   8073 
   8074     cprimod_dispatch_type_t __type__;
   8075     int __rv__;        
   8076     SOC_INIT_FUNC_DEFS;
   8077     
   8078     if(SOC_E_NONE != cprimod_port_speed_t_validate(speed)) {
   8079         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("speed validation failed"));
   8080     }
   8081 
   8082     /* Dispatch */
   8083     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8084     if(__type__ >= cprimodDispatchTypeCount) { 
   8085         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8086     }
   8087 
   8088     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_1588_bit_time_period_set) {
   8089         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_1588_bit_time_period_set(unit, port, direction, speed);
   8090         _SOC_IF_ERR_EXIT(__rv__);
   8091     } else { 
   8092         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_1588_bit_time_period_set isn't implemented for driver type"));
   8093     }
   8094         
   8095 exit:
   8096     SOC_FUNC_RETURN; 
   8097     
   8098 }
   8099 
   8100 
   8101 int cprimod_1588_bit_time_period_get(int unit, int port, cprimod_direction_t direction, uint32* bit_time_period)
   8102 {
   8103 
   8104     cprimod_dispatch_type_t __type__;
   8105     int __rv__;        
   8106     SOC_INIT_FUNC_DEFS;
   8107     
   8108     if(bit_time_period == NULL) {
   8109         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("bit_time_period NULL parameter"));
   8110     }
   8111     /* Dispatch */
   8112     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8113     if(__type__ >= cprimodDispatchTypeCount) { 
   8114         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8115     }
   8116 
   8117     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_1588_bit_time_period_get) {
   8118         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_1588_bit_time_period_get(unit, port, direction, bit_time_period);
   8119         _SOC_IF_ERR_EXIT(__rv__);
   8120     } else { 
   8121         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_1588_bit_time_period_get isn't implemented for driver type"));
   8122     }
   8123         
   8124 exit:
   8125     SOC_FUNC_RETURN; 
   8126     
   8127 }
   8128 
   8129 
   8130 int cprimod_1588_timestamp_capture_config_set(int unit, int port, cprimod_direction_t direction, const cprimod_1588_capture_config_t* config)
   8131 {
   8132 
   8133     cprimod_dispatch_type_t __type__;
   8134     int __rv__;        
   8135     SOC_INIT_FUNC_DEFS;
   8136     
   8137     if(SOC_E_NONE != cprimod_1588_capture_config_t_validate(config)) {
   8138         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config validation failed"));
   8139     }
   8140 
   8141     /* Dispatch */
   8142     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8143     if(__type__ >= cprimodDispatchTypeCount) { 
   8144         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8145     }
   8146 
   8147     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_capture_config_set) {
   8148         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_capture_config_set(unit, port, direction, config);
   8149         _SOC_IF_ERR_EXIT(__rv__);
   8150     } else { 
   8151         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_1588_timestamp_capture_config_set isn't implemented for driver type"));
   8152     }
   8153         
   8154 exit:
   8155     SOC_FUNC_RETURN; 
   8156     
   8157 }
   8158 
   8159 
   8160 int cprimod_1588_timestamp_capture_config_get(int unit, int port, cprimod_direction_t direction, cprimod_1588_capture_config_t* config)
   8161 {
   8162 
   8163     cprimod_dispatch_type_t __type__;
   8164     int __rv__;        
   8165     SOC_INIT_FUNC_DEFS;
   8166     
   8167     if(config == NULL) {
   8168         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config NULL parameter"));
   8169     }
   8170     if(SOC_E_NONE != cprimod_1588_capture_config_t_init(config)) {
   8171         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config initialization failed"));
   8172     }
   8173 
   8174     /* Dispatch */
   8175     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8176     if(__type__ >= cprimodDispatchTypeCount) { 
   8177         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8178     }
   8179 
   8180     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_capture_config_get) {
   8181         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_capture_config_get(unit, port, direction, config);
   8182         _SOC_IF_ERR_EXIT(__rv__);
   8183     } else { 
   8184         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_1588_timestamp_capture_config_get isn't implemented for driver type"));
   8185     }
   8186         
   8187 exit:
   8188     SOC_FUNC_RETURN; 
   8189     
   8190 }
   8191 
   8192 
   8193 int cprimod_1588_captured_timestamp_get(int unit, int port, cprimod_direction_t direction, uint8 fifo0_sw1, uint8 mx_cnt, uint8* count, uint64* captured_time)
   8194 {
   8195 
   8196     cprimod_dispatch_type_t __type__;
   8197     int __rv__;        
   8198     SOC_INIT_FUNC_DEFS;
   8199     
   8200     if(count == NULL) {
   8201         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("count NULL parameter"));
   8202     }
   8203     if(captured_time == NULL) {
   8204         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("captured_time NULL parameter"));
   8205     }
   8206     /* Dispatch */
   8207     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8208     if(__type__ >= cprimodDispatchTypeCount) { 
   8209         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8210     }
   8211 
   8212     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_1588_captured_timestamp_get) {
   8213         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_1588_captured_timestamp_get(unit, port, direction, fifo0_sw1, mx_cnt, count, captured_time);
   8214         _SOC_IF_ERR_EXIT(__rv__);
   8215     } else { 
   8216         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_1588_captured_timestamp_get isn't implemented for driver type"));
   8217     }
   8218         
   8219 exit:
   8220     SOC_FUNC_RETURN; 
   8221     
   8222 }
   8223 
   8224 
   8225 int cprimod_1588_timestamp_adjust_set(int unit, int port, cprimod_direction_t direction, const cprimod_1588_time_t* adjust_time)
   8226 {
   8227 
   8228     cprimod_dispatch_type_t __type__;
   8229     int __rv__;        
   8230     SOC_INIT_FUNC_DEFS;
   8231     
   8232     if(SOC_E_NONE != cprimod_1588_time_t_validate(adjust_time)) {
   8233         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("adjust_time validation failed"));
   8234     }
   8235 
   8236     /* Dispatch */
   8237     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8238     if(__type__ >= cprimodDispatchTypeCount) { 
   8239         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8240     }
   8241 
   8242     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_adjust_set) {
   8243         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_adjust_set(unit, port, direction, adjust_time);
   8244         _SOC_IF_ERR_EXIT(__rv__);
   8245     } else { 
   8246         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_1588_timestamp_adjust_set isn't implemented for driver type"));
   8247     }
   8248         
   8249 exit:
   8250     SOC_FUNC_RETURN; 
   8251     
   8252 }
   8253 
   8254 
   8255 int cprimod_1588_timestamp_adjust_get(int unit, int port, cprimod_direction_t direction, cprimod_1588_time_t* adjust_time)
   8256 {
   8257 
   8258     cprimod_dispatch_type_t __type__;
   8259     int __rv__;        
   8260     SOC_INIT_FUNC_DEFS;
   8261     
   8262     if(adjust_time == NULL) {
   8263         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("adjust_time NULL parameter"));
   8264     }
   8265     if(SOC_E_NONE != cprimod_1588_time_t_init(adjust_time)) {
   8266         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("adjust_time initialization failed"));
   8267     }
   8268 
   8269     /* Dispatch */
   8270     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8271     if(__type__ >= cprimodDispatchTypeCount) { 
   8272         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8273     }
   8274 
   8275     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_adjust_get) {
   8276         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_adjust_get(unit, port, direction, adjust_time);
   8277         _SOC_IF_ERR_EXIT(__rv__);
   8278     } else { 
   8279         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_1588_timestamp_adjust_get isn't implemented for driver type"));
   8280     }
   8281         
   8282 exit:
   8283     SOC_FUNC_RETURN; 
   8284     
   8285 }
   8286 
   8287 
   8288 int cprimod_1588_timestamp_fifo_config_set(int unit, int port, cprimod_direction_t direction, uint16 modulo)
   8289 {
   8290 
   8291     cprimod_dispatch_type_t __type__;
   8292     int __rv__;        
   8293     SOC_INIT_FUNC_DEFS;
   8294     
   8295     /* Dispatch */
   8296     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8297     if(__type__ >= cprimodDispatchTypeCount) { 
   8298         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8299     }
   8300 
   8301     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_fifo_config_set) {
   8302         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_fifo_config_set(unit, port, direction, modulo);
   8303         _SOC_IF_ERR_EXIT(__rv__);
   8304     } else { 
   8305         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_1588_timestamp_fifo_config_set isn't implemented for driver type"));
   8306     }
   8307         
   8308 exit:
   8309     SOC_FUNC_RETURN; 
   8310     
   8311 }
   8312 
   8313 
   8314 int cprimod_1588_timestamp_fifo_config_get(int unit, int port, cprimod_direction_t direction, uint16* modulo)
   8315 {
   8316 
   8317     cprimod_dispatch_type_t __type__;
   8318     int __rv__;        
   8319     SOC_INIT_FUNC_DEFS;
   8320     
   8321     if(modulo == NULL) {
   8322         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("modulo NULL parameter"));
   8323     }
   8324     /* Dispatch */
   8325     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8326     if(__type__ >= cprimodDispatchTypeCount) { 
   8327         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8328     }
   8329 
   8330     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_fifo_config_get) {
   8331         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_fifo_config_get(unit, port, direction, modulo);
   8332         _SOC_IF_ERR_EXIT(__rv__);
   8333     } else { 
   8334         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_1588_timestamp_fifo_config_get isn't implemented for driver type"));
   8335     }
   8336         
   8337 exit:
   8338     SOC_FUNC_RETURN; 
   8339     
   8340 }
   8341 
   8342 
   8343 int cprimod_1588_timestamp_cmic_config_set(int unit, int port, cprimod_direction_t direction, uint16 modulo)
   8344 {
   8345 
   8346     cprimod_dispatch_type_t __type__;
   8347     int __rv__;        
   8348     SOC_INIT_FUNC_DEFS;
   8349     
   8350     /* Dispatch */
   8351     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8352     if(__type__ >= cprimodDispatchTypeCount) { 
   8353         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8354     }
   8355 
   8356     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_cmic_config_set) {
   8357         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_cmic_config_set(unit, port, direction, modulo);
   8358         _SOC_IF_ERR_EXIT(__rv__);
   8359     } else { 
   8360         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_1588_timestamp_cmic_config_set isn't implemented for driver type"));
   8361     }
   8362         
   8363 exit:
   8364     SOC_FUNC_RETURN; 
   8365     
   8366 }
   8367 
   8368 
   8369 int cprimod_1588_timestamp_cmic_config_get(int unit, int port, cprimod_direction_t direction, uint16* modulo)
   8370 {
   8371 
   8372     cprimod_dispatch_type_t __type__;
   8373     int __rv__;        
   8374     SOC_INIT_FUNC_DEFS;
   8375     
   8376     if(modulo == NULL) {
   8377         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("modulo NULL parameter"));
   8378     }
   8379     /* Dispatch */
   8380     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8381     if(__type__ >= cprimodDispatchTypeCount) { 
   8382         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8383     }
   8384 
   8385     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_cmic_config_get) {
   8386         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_1588_timestamp_cmic_config_get(unit, port, direction, modulo);
   8387         _SOC_IF_ERR_EXIT(__rv__);
   8388     } else { 
   8389         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_1588_timestamp_cmic_config_get isn't implemented for driver type"));
   8390     }
   8391         
   8392 exit:
   8393     SOC_FUNC_RETURN; 
   8394     
   8395 }
   8396 
   8397 
   8398 int cprimod_cpri_basic_frame_info_get(int unit, int port, cprimod_direction_t dir, uint32* frame_len_in_bits, uint32* control_word_len_in_bits)
   8399 {
   8400 
   8401     cprimod_dispatch_type_t __type__;
   8402     int __rv__;        
   8403     SOC_INIT_FUNC_DEFS;
   8404     
   8405     if(frame_len_in_bits == NULL) {
   8406         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("frame_len_in_bits NULL parameter"));
   8407     }
   8408     if(control_word_len_in_bits == NULL) {
   8409         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("control_word_len_in_bits NULL parameter"));
   8410     }
   8411     /* Dispatch */
   8412     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8413     if(__type__ >= cprimodDispatchTypeCount) { 
   8414         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8415     }
   8416 
   8417     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_basic_frame_info_get) {
   8418         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_basic_frame_info_get(unit, port, dir, frame_len_in_bits, control_word_len_in_bits);
   8419         _SOC_IF_ERR_EXIT(__rv__);
   8420     } else { 
   8421         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_basic_frame_info_get isn't implemented for driver type"));
   8422     }
   8423         
   8424 exit:
   8425     SOC_FUNC_RETURN; 
   8426     
   8427 }
   8428 
   8429 
   8430 int cprimod_cpri_agnostic_mode_basic_frame_config_set(int unit, int port, cprimod_direction_t dir, int enable)
   8431 {
   8432 
   8433     cprimod_dispatch_type_t __type__;
   8434     int __rv__;        
   8435     SOC_INIT_FUNC_DEFS;
   8436     
   8437     /* Dispatch */
   8438     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8439     if(__type__ >= cprimodDispatchTypeCount) { 
   8440         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8441     }
   8442 
   8443     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_agnostic_mode_basic_frame_config_set) {
   8444         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_agnostic_mode_basic_frame_config_set(unit, port, dir, enable);
   8445         _SOC_IF_ERR_EXIT(__rv__);
   8446     } else { 
   8447         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_agnostic_mode_basic_frame_config_set isn't implemented for driver type"));
   8448     }
   8449         
   8450 exit:
   8451     SOC_FUNC_RETURN; 
   8452     
   8453 }
   8454 
   8455 
   8456 int cprimod_cpri_interface_bus_width_get(int unit, int port, int* is_10bit_mode)
   8457 {
   8458 
   8459     cprimod_dispatch_type_t __type__;
   8460     int __rv__;        
   8461     SOC_INIT_FUNC_DEFS;
   8462     
   8463     if(is_10bit_mode == NULL) {
   8464         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("is_10bit_mode NULL parameter"));
   8465     }
   8466     /* Dispatch */
   8467     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8468     if(__type__ >= cprimodDispatchTypeCount) { 
   8469         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8470     }
   8471 
   8472     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_interface_bus_width_get) {
   8473         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_interface_bus_width_get(unit, port, is_10bit_mode);
   8474         _SOC_IF_ERR_EXIT(__rv__);
   8475     } else { 
   8476         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_interface_bus_width_get isn't implemented for driver type"));
   8477     }
   8478         
   8479 exit:
   8480     SOC_FUNC_RETURN; 
   8481     
   8482 }
   8483 
   8484 
   8485 int cprimod_cpri_tunnel_mode_basic_frame_config_set(int unit, int port, cprimod_direction_t dir, int enable)
   8486 {
   8487 
   8488     cprimod_dispatch_type_t __type__;
   8489     int __rv__;        
   8490     SOC_INIT_FUNC_DEFS;
   8491     
   8492     /* Dispatch */
   8493     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8494     if(__type__ >= cprimodDispatchTypeCount) { 
   8495         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8496     }
   8497 
   8498     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_tunnel_mode_basic_frame_config_set) {
   8499         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_tunnel_mode_basic_frame_config_set(unit, port, dir, enable);
   8500         _SOC_IF_ERR_EXIT(__rv__);
   8501     } else { 
   8502         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_tunnel_mode_basic_frame_config_set isn't implemented for driver type"));
   8503     }
   8504         
   8505 exit:
   8506     SOC_FUNC_RETURN; 
   8507     
   8508 }
   8509 
   8510 
   8511 int cprimod_rsvd4_agnostic_mode_basic_frame_config_set(int unit, int port, cprimod_direction_t dir, int enable)
   8512 {
   8513 
   8514     cprimod_dispatch_type_t __type__;
   8515     int __rv__;        
   8516     SOC_INIT_FUNC_DEFS;
   8517     
   8518     /* Dispatch */
   8519     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8520     if(__type__ >= cprimodDispatchTypeCount) { 
   8521         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8522     }
   8523 
   8524     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_agnostic_mode_basic_frame_config_set) {
   8525         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_agnostic_mode_basic_frame_config_set(unit, port, dir, enable);
   8526         _SOC_IF_ERR_EXIT(__rv__);
   8527     } else { 
   8528         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_agnostic_mode_basic_frame_config_set isn't implemented for driver type"));
   8529     }
   8530         
   8531 exit:
   8532     SOC_FUNC_RETURN; 
   8533     
   8534 }
   8535 
   8536 
   8537 int cprimod_encap_presentation_time_enable_set(int unit, int port, int enable)
   8538 {
   8539 
   8540     cprimod_dispatch_type_t __type__;
   8541     int __rv__;        
   8542     SOC_INIT_FUNC_DEFS;
   8543     
   8544     /* Dispatch */
   8545     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8546     if(__type__ >= cprimodDispatchTypeCount) { 
   8547         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8548     }
   8549 
   8550     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_enable_set) {
   8551         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_enable_set(unit, port, enable);
   8552         _SOC_IF_ERR_EXIT(__rv__);
   8553     } else { 
   8554         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_presentation_time_enable_set isn't implemented for driver type"));
   8555     }
   8556         
   8557 exit:
   8558     SOC_FUNC_RETURN; 
   8559     
   8560 }
   8561 
   8562 
   8563 int cprimod_encap_presentation_time_enable_get(int unit, int port, int* enable)
   8564 {
   8565 
   8566     cprimod_dispatch_type_t __type__;
   8567     int __rv__;        
   8568     SOC_INIT_FUNC_DEFS;
   8569     
   8570     if(enable == NULL) {
   8571         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("enable NULL parameter"));
   8572     }
   8573     /* Dispatch */
   8574     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8575     if(__type__ >= cprimodDispatchTypeCount) { 
   8576         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8577     }
   8578 
   8579     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_enable_get) {
   8580         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_enable_get(unit, port, enable);
   8581         _SOC_IF_ERR_EXIT(__rv__);
   8582     } else { 
   8583         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_presentation_time_enable_get isn't implemented for driver type"));
   8584     }
   8585         
   8586 exit:
   8587     SOC_FUNC_RETURN; 
   8588     
   8589 }
   8590 
   8591 
   8592 int cprimod_encap_presentation_time_config_t_validate(const cprimod_encap_presentation_time_config_t* cprimod_encap_presentation_time_config)
   8593 {        
   8594     SOC_INIT_FUNC_DEFS;
   8595     if(cprimod_encap_presentation_time_config == NULL) {
   8596         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   8597     }
   8598 
   8599 
   8600         
   8601 exit:
   8602     SOC_FUNC_RETURN; 
   8603     
   8604 }
   8605 
   8606 int cprimod_encap_presentation_time_config_t_init(cprimod_encap_presentation_time_config_t* cprimod_encap_presentation_time_config)
   8607 {        
   8608     SOC_INIT_FUNC_DEFS;
   8609     
   8610     if(cprimod_encap_presentation_time_config == NULL){
   8611         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_encap_presentation_time_config NULL parameter"));
   8612     }
   8613     sal_memset(cprimod_encap_presentation_time_config, 0, sizeof(cprimod_encap_presentation_time_config_t));
   8614     cprimod_encap_presentation_time_config->mod_count = 0;
   8615     cprimod_encap_presentation_time_config->frame_sync_mode = 0;
   8616     cprimod_encap_presentation_time_config->radio_frame_offset = 0;
   8617     cprimod_encap_presentation_time_config->hyper_frame_offset = 0;
   8618     cprimod_encap_presentation_time_config->approx_inc_disable = 0;
   8619 
   8620         
   8621 exit:
   8622     SOC_FUNC_RETURN; 
   8623     
   8624 }
   8625 
   8626 int cprimod_encap_presentation_time_config_set(int unit, int port, const cprimod_encap_presentation_time_config_t* config)
   8627 {
   8628 
   8629     cprimod_dispatch_type_t __type__;
   8630     int __rv__;        
   8631     SOC_INIT_FUNC_DEFS;
   8632     
   8633     if(SOC_E_NONE != cprimod_encap_presentation_time_config_t_validate(config)) {
   8634         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config validation failed"));
   8635     }
   8636 
   8637     /* Dispatch */
   8638     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8639     if(__type__ >= cprimodDispatchTypeCount) { 
   8640         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8641     }
   8642 
   8643     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_config_set) {
   8644         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_config_set(unit, port, config);
   8645         _SOC_IF_ERR_EXIT(__rv__);
   8646     } else { 
   8647         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_presentation_time_config_set isn't implemented for driver type"));
   8648     }
   8649         
   8650 exit:
   8651     SOC_FUNC_RETURN; 
   8652     
   8653 }
   8654 
   8655 
   8656 int cprimod_encap_presentation_time_config_get(int unit, int port, cprimod_encap_presentation_time_config_t* config)
   8657 {
   8658 
   8659     cprimod_dispatch_type_t __type__;
   8660     int __rv__;        
   8661     SOC_INIT_FUNC_DEFS;
   8662     
   8663     if(config == NULL) {
   8664         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config NULL parameter"));
   8665     }
   8666     if(SOC_E_NONE != cprimod_encap_presentation_time_config_t_init(config)) {
   8667         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config initialization failed"));
   8668     }
   8669 
   8670     /* Dispatch */
   8671     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8672     if(__type__ >= cprimodDispatchTypeCount) { 
   8673         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8674     }
   8675 
   8676     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_config_get) {
   8677         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_config_get(unit, port, config);
   8678         _SOC_IF_ERR_EXIT(__rv__);
   8679     } else { 
   8680         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_presentation_time_config_get isn't implemented for driver type"));
   8681     }
   8682         
   8683 exit:
   8684     SOC_FUNC_RETURN; 
   8685     
   8686 }
   8687 
   8688 
   8689 int cprimod_encap_presentation_time_adjust_set(int unit, int port, uint32 time)
   8690 {
   8691 
   8692     cprimod_dispatch_type_t __type__;
   8693     int __rv__;        
   8694     SOC_INIT_FUNC_DEFS;
   8695     
   8696     /* Dispatch */
   8697     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8698     if(__type__ >= cprimodDispatchTypeCount) { 
   8699         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8700     }
   8701 
   8702     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_adjust_set) {
   8703         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_adjust_set(unit, port, time);
   8704         _SOC_IF_ERR_EXIT(__rv__);
   8705     } else { 
   8706         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_presentation_time_adjust_set isn't implemented for driver type"));
   8707     }
   8708         
   8709 exit:
   8710     SOC_FUNC_RETURN; 
   8711     
   8712 }
   8713 
   8714 
   8715 int cprimod_encap_presentation_time_adjust_get(int unit, int port, uint32* time)
   8716 {
   8717 
   8718     cprimod_dispatch_type_t __type__;
   8719     int __rv__;        
   8720     SOC_INIT_FUNC_DEFS;
   8721     
   8722     if(time == NULL) {
   8723         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("time NULL parameter"));
   8724     }
   8725     /* Dispatch */
   8726     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8727     if(__type__ >= cprimodDispatchTypeCount) { 
   8728         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8729     }
   8730 
   8731     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_adjust_get) {
   8732         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_adjust_get(unit, port, time);
   8733         _SOC_IF_ERR_EXIT(__rv__);
   8734     } else { 
   8735         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_presentation_time_adjust_get isn't implemented for driver type"));
   8736     }
   8737         
   8738 exit:
   8739     SOC_FUNC_RETURN; 
   8740     
   8741 }
   8742 
   8743 
   8744 int cprimod_encap_presentation_time_approximate_increment_set(int unit, int port, uint32 time)
   8745 {
   8746 
   8747     cprimod_dispatch_type_t __type__;
   8748     int __rv__;        
   8749     SOC_INIT_FUNC_DEFS;
   8750     
   8751     /* Dispatch */
   8752     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8753     if(__type__ >= cprimodDispatchTypeCount) { 
   8754         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8755     }
   8756 
   8757     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_approximate_increment_set) {
   8758         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_approximate_increment_set(unit, port, time);
   8759         _SOC_IF_ERR_EXIT(__rv__);
   8760     } else { 
   8761         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_presentation_time_approximate_increment_set isn't implemented for driver type"));
   8762     }
   8763         
   8764 exit:
   8765     SOC_FUNC_RETURN; 
   8766     
   8767 }
   8768 
   8769 
   8770 int cprimod_encap_presentation_time_approximate_increment_get(int unit, int port, uint32* time)
   8771 {
   8772 
   8773     cprimod_dispatch_type_t __type__;
   8774     int __rv__;        
   8775     SOC_INIT_FUNC_DEFS;
   8776     
   8777     if(time == NULL) {
   8778         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("time NULL parameter"));
   8779     }
   8780     /* Dispatch */
   8781     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8782     if(__type__ >= cprimodDispatchTypeCount) { 
   8783         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8784     }
   8785 
   8786     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_approximate_increment_get) {
   8787         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_encap_presentation_time_approximate_increment_get(unit, port, time);
   8788         _SOC_IF_ERR_EXIT(__rv__);
   8789     } else { 
   8790         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_encap_presentation_time_approximate_increment_get isn't implemented for driver type"));
   8791     }
   8792         
   8793 exit:
   8794     SOC_FUNC_RETURN; 
   8795     
   8796 }
   8797 
   8798 
   8799 int cprimod_decap_agnostic_mode_enable_set(int unit, int port, int enable, cprimod_cpri_roe_ordering_info_option_t mode)
   8800 {
   8801 
   8802     cprimod_dispatch_type_t __type__;
   8803     int __rv__;        
   8804     SOC_INIT_FUNC_DEFS;
   8805     
   8806     /* Dispatch */
   8807     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8808     if(__type__ >= cprimodDispatchTypeCount) { 
   8809         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8810     }
   8811 
   8812     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_agnostic_mode_enable_set) {
   8813         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_agnostic_mode_enable_set(unit, port, enable, mode);
   8814         _SOC_IF_ERR_EXIT(__rv__);
   8815     } else { 
   8816         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_agnostic_mode_enable_set isn't implemented for driver type"));
   8817     }
   8818         
   8819 exit:
   8820     SOC_FUNC_RETURN; 
   8821     
   8822 }
   8823 
   8824 
   8825 int cprimod_decap_agnostic_mode_enable_get(int unit, int port, int* enable, cprimod_cpri_roe_ordering_info_option_t* mode)
   8826 {
   8827 
   8828     cprimod_dispatch_type_t __type__;
   8829     int __rv__;        
   8830     SOC_INIT_FUNC_DEFS;
   8831     
   8832     if(enable == NULL) {
   8833         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("enable NULL parameter"));
   8834     }
   8835     if(mode == NULL) {
   8836         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mode NULL parameter"));
   8837     }
   8838     /* Dispatch */
   8839     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8840     if(__type__ >= cprimodDispatchTypeCount) { 
   8841         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8842     }
   8843 
   8844     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_agnostic_mode_enable_get) {
   8845         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_agnostic_mode_enable_get(unit, port, enable, mode);
   8846         _SOC_IF_ERR_EXIT(__rv__);
   8847     } else { 
   8848         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_agnostic_mode_enable_get isn't implemented for driver type"));
   8849     }
   8850         
   8851 exit:
   8852     SOC_FUNC_RETURN; 
   8853     
   8854 }
   8855 
   8856 
   8857 int cprimod_decap_agnostic_mode_config_t_validate(const cprimod_decap_agnostic_mode_config_t* cprimod_decap_agnostic_mode_config)
   8858 {        
   8859     SOC_INIT_FUNC_DEFS;
   8860     if(cprimod_decap_agnostic_mode_config == NULL) {
   8861         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   8862     }
   8863 
   8864 
   8865         
   8866 exit:
   8867     SOC_FUNC_RETURN; 
   8868     
   8869 }
   8870 
   8871 int cprimod_decap_agnostic_mode_config_t_init(cprimod_decap_agnostic_mode_config_t* cprimod_decap_agnostic_mode_config)
   8872 {        
   8873     SOC_INIT_FUNC_DEFS;
   8874     
   8875     if(cprimod_decap_agnostic_mode_config == NULL){
   8876         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_decap_agnostic_mode_config NULL parameter"));
   8877     }
   8878     sal_memset(cprimod_decap_agnostic_mode_config, 0, sizeof(cprimod_decap_agnostic_mode_config_t));
   8879     cprimod_decap_agnostic_mode_config->mod_count = 0;
   8880     cprimod_decap_agnostic_mode_config->packet_size = 0;
   8881     cprimod_decap_agnostic_mode_config->queue_num = 0;
   8882 
   8883         
   8884 exit:
   8885     SOC_FUNC_RETURN; 
   8886     
   8887 }
   8888 
   8889 int cprimod_decap_agnostic_mode_config_set(int unit, int port, const cprimod_decap_agnostic_mode_config_t* config)
   8890 {
   8891 
   8892     cprimod_dispatch_type_t __type__;
   8893     int __rv__;        
   8894     SOC_INIT_FUNC_DEFS;
   8895     
   8896     if(SOC_E_NONE != cprimod_decap_agnostic_mode_config_t_validate(config)) {
   8897         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config validation failed"));
   8898     }
   8899 
   8900     /* Dispatch */
   8901     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8902     if(__type__ >= cprimodDispatchTypeCount) { 
   8903         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8904     }
   8905 
   8906     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_agnostic_mode_config_set) {
   8907         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_agnostic_mode_config_set(unit, port, config);
   8908         _SOC_IF_ERR_EXIT(__rv__);
   8909     } else { 
   8910         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_agnostic_mode_config_set isn't implemented for driver type"));
   8911     }
   8912         
   8913 exit:
   8914     SOC_FUNC_RETURN; 
   8915     
   8916 }
   8917 
   8918 
   8919 int cprimod_decap_agnostic_mode_config_get(int unit, int port, cprimod_decap_agnostic_mode_config_t* config)
   8920 {
   8921 
   8922     cprimod_dispatch_type_t __type__;
   8923     int __rv__;        
   8924     SOC_INIT_FUNC_DEFS;
   8925     
   8926     if(config == NULL) {
   8927         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config NULL parameter"));
   8928     }
   8929     if(SOC_E_NONE != cprimod_decap_agnostic_mode_config_t_init(config)) {
   8930         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config initialization failed"));
   8931     }
   8932 
   8933     /* Dispatch */
   8934     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8935     if(__type__ >= cprimodDispatchTypeCount) { 
   8936         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8937     }
   8938 
   8939     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_agnostic_mode_config_get) {
   8940         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_agnostic_mode_config_get(unit, port, config);
   8941         _SOC_IF_ERR_EXIT(__rv__);
   8942     } else { 
   8943         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_agnostic_mode_config_get isn't implemented for driver type"));
   8944     }
   8945         
   8946 exit:
   8947     SOC_FUNC_RETURN; 
   8948     
   8949 }
   8950 
   8951 
   8952 int cprimod_decap_presentation_time_config_set(int unit, int port, uint32 mod_offset, uint32 mod_count)
   8953 {
   8954 
   8955     cprimod_dispatch_type_t __type__;
   8956     int __rv__;        
   8957     SOC_INIT_FUNC_DEFS;
   8958     
   8959     /* Dispatch */
   8960     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8961     if(__type__ >= cprimodDispatchTypeCount) { 
   8962         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8963     }
   8964 
   8965     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_presentation_time_config_set) {
   8966         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_presentation_time_config_set(unit, port, mod_offset, mod_count);
   8967         _SOC_IF_ERR_EXIT(__rv__);
   8968     } else { 
   8969         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_presentation_time_config_set isn't implemented for driver type"));
   8970     }
   8971         
   8972 exit:
   8973     SOC_FUNC_RETURN; 
   8974     
   8975 }
   8976 
   8977 
   8978 int cprimod_decap_presentation_time_config_get(int unit, int port, uint32* mod_offset, uint32* mod_count)
   8979 {
   8980 
   8981     cprimod_dispatch_type_t __type__;
   8982     int __rv__;        
   8983     SOC_INIT_FUNC_DEFS;
   8984     
   8985     if(mod_offset == NULL) {
   8986         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mod_offset NULL parameter"));
   8987     }
   8988     if(mod_count == NULL) {
   8989         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mod_count NULL parameter"));
   8990     }
   8991     /* Dispatch */
   8992     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   8993     if(__type__ >= cprimodDispatchTypeCount) { 
   8994         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   8995     }
   8996 
   8997     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decap_presentation_time_config_get) {
   8998         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decap_presentation_time_config_get(unit, port, mod_offset, mod_count);
   8999         _SOC_IF_ERR_EXIT(__rv__);
   9000     } else { 
   9001         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decap_presentation_time_config_get isn't implemented for driver type"));
   9002     }
   9003         
   9004 exit:
   9005     SOC_FUNC_RETURN; 
   9006     
   9007 }
   9008 
   9009 
   9010 int cprimod_compression_lookup_table_set(int unit, int port, int table_depth, const uint32* table)
   9011 {
   9012 
   9013     cprimod_dispatch_type_t __type__;
   9014     int __rv__;        
   9015     SOC_INIT_FUNC_DEFS;
   9016     
   9017     /* Dispatch */
   9018     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9019     if(__type__ >= cprimodDispatchTypeCount) { 
   9020         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9021     }
   9022 
   9023     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_compression_lookup_table_set) {
   9024         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_compression_lookup_table_set(unit, port, table_depth, table);
   9025         _SOC_IF_ERR_EXIT(__rv__);
   9026     } else { 
   9027         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_compression_lookup_table_set isn't implemented for driver type"));
   9028     }
   9029         
   9030 exit:
   9031     SOC_FUNC_RETURN; 
   9032     
   9033 }
   9034 
   9035 
   9036 int cprimod_compression_lookup_table_get(int unit, int port, int max_depth, int* table_depth, uint32* table)
   9037 {
   9038 
   9039     cprimod_dispatch_type_t __type__;
   9040     int __rv__;        
   9041     SOC_INIT_FUNC_DEFS;
   9042     
   9043     if(table_depth == NULL) {
   9044         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table_depth NULL parameter"));
   9045     }
   9046     if(table == NULL) {
   9047         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table NULL parameter"));
   9048     }
   9049     /* Dispatch */
   9050     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9051     if(__type__ >= cprimodDispatchTypeCount) { 
   9052         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9053     }
   9054 
   9055     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_compression_lookup_table_get) {
   9056         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_compression_lookup_table_get(unit, port, max_depth, table_depth, table);
   9057         _SOC_IF_ERR_EXIT(__rv__);
   9058     } else { 
   9059         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_compression_lookup_table_get isn't implemented for driver type"));
   9060     }
   9061         
   9062 exit:
   9063     SOC_FUNC_RETURN; 
   9064     
   9065 }
   9066 
   9067 
   9068 int cprimod_decompression_lookup_table_set(int unit, int port, int table_depth, const uint32* table)
   9069 {
   9070 
   9071     cprimod_dispatch_type_t __type__;
   9072     int __rv__;        
   9073     SOC_INIT_FUNC_DEFS;
   9074     
   9075     /* Dispatch */
   9076     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9077     if(__type__ >= cprimodDispatchTypeCount) { 
   9078         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9079     }
   9080 
   9081     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decompression_lookup_table_set) {
   9082         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decompression_lookup_table_set(unit, port, table_depth, table);
   9083         _SOC_IF_ERR_EXIT(__rv__);
   9084     } else { 
   9085         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decompression_lookup_table_set isn't implemented for driver type"));
   9086     }
   9087         
   9088 exit:
   9089     SOC_FUNC_RETURN; 
   9090     
   9091 }
   9092 
   9093 
   9094 int cprimod_decompression_lookup_table_get(int unit, int port, int max_depth, int* table_depth, uint32* table)
   9095 {
   9096 
   9097     cprimod_dispatch_type_t __type__;
   9098     int __rv__;        
   9099     SOC_INIT_FUNC_DEFS;
   9100     
   9101     if(table_depth == NULL) {
   9102         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table_depth NULL parameter"));
   9103     }
   9104     if(table == NULL) {
   9105         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("table NULL parameter"));
   9106     }
   9107     /* Dispatch */
   9108     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9109     if(__type__ >= cprimodDispatchTypeCount) { 
   9110         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9111     }
   9112 
   9113     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_decompression_lookup_table_get) {
   9114         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_decompression_lookup_table_get(unit, port, max_depth, table_depth, table);
   9115         _SOC_IF_ERR_EXIT(__rv__);
   9116     } else { 
   9117         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_decompression_lookup_table_get isn't implemented for driver type"));
   9118     }
   9119         
   9120 exit:
   9121     SOC_FUNC_RETURN; 
   9122     
   9123 }
   9124 
   9125 
   9126 int cprimod_cpri_port_decap_queue_flow_control_set(int unit, int port, uint32 queue_num, int enable, uint32_t xon_threshold, uint32_t xoff_threshold)
   9127 {
   9128 
   9129     cprimod_dispatch_type_t __type__;
   9130     int __rv__;        
   9131     SOC_INIT_FUNC_DEFS;
   9132     
   9133     /* Dispatch */
   9134     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9135     if(__type__ >= cprimodDispatchTypeCount) { 
   9136         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9137     }
   9138 
   9139     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_decap_queue_flow_control_set) {
   9140         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_decap_queue_flow_control_set(unit, port, queue_num, enable, xon_threshold, xoff_threshold);
   9141         _SOC_IF_ERR_EXIT(__rv__);
   9142     } else { 
   9143         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_decap_queue_flow_control_set isn't implemented for driver type"));
   9144     }
   9145         
   9146 exit:
   9147     SOC_FUNC_RETURN; 
   9148     
   9149 }
   9150 
   9151 
   9152 int cprimod_cpri_port_decap_queue_flow_control_get(int unit, int port, uint32 queue_num, int* enable, uint32_t* xon_threshold, uint32_t* xoff_threshold)
   9153 {
   9154 
   9155     cprimod_dispatch_type_t __type__;
   9156     int __rv__;        
   9157     SOC_INIT_FUNC_DEFS;
   9158     
   9159     if(enable == NULL) {
   9160         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("enable NULL parameter"));
   9161     }
   9162     if(xon_threshold == NULL) {
   9163         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("xon_threshold NULL parameter"));
   9164     }
   9165     if(xoff_threshold == NULL) {
   9166         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("xoff_threshold NULL parameter"));
   9167     }
   9168     /* Dispatch */
   9169     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9170     if(__type__ >= cprimodDispatchTypeCount) { 
   9171         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9172     }
   9173 
   9174     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_decap_queue_flow_control_get) {
   9175         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_decap_queue_flow_control_get(unit, port, queue_num, enable, xon_threshold, xoff_threshold);
   9176         _SOC_IF_ERR_EXIT(__rv__);
   9177     } else { 
   9178         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_decap_queue_flow_control_get isn't implemented for driver type"));
   9179     }
   9180         
   9181 exit:
   9182     SOC_FUNC_RETURN; 
   9183     
   9184 }
   9185 
   9186 
   9187 int cprimod_fec_timestamp_config_t_validate(const cprimod_fec_timestamp_config_t* cprimod_fec_timestamp_config)
   9188 {        
   9189     SOC_INIT_FUNC_DEFS;
   9190     if(cprimod_fec_timestamp_config == NULL) {
   9191         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   9192     }
   9193 
   9194 
   9195         
   9196 exit:
   9197     SOC_FUNC_RETURN; 
   9198     
   9199 }
   9200 
   9201 int cprimod_fec_timestamp_config_t_init(cprimod_fec_timestamp_config_t* cprimod_fec_timestamp_config)
   9202 {        
   9203     SOC_INIT_FUNC_DEFS;
   9204     
   9205     if(cprimod_fec_timestamp_config == NULL){
   9206         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_fec_timestamp_config NULL parameter"));
   9207     }
   9208     sal_memset(cprimod_fec_timestamp_config, 0, sizeof(cprimod_fec_timestamp_config_t));
   9209     cprimod_fec_timestamp_config->enable = 0;
   9210     cprimod_fec_timestamp_config->fec_fifo_ts_source_select = 1;
   9211     cprimod_fec_timestamp_config->fec_cmic_ts_source_select = 0;
   9212     cprimod_fec_timestamp_config->control_bit_offset_0 = 0;
   9213     cprimod_fec_timestamp_config->control_bit_offset_1 = 0x45;
   9214     cprimod_fec_timestamp_config->control_bit_offset_2 = 0x85;
   9215     cprimod_fec_timestamp_config->control_bit_offset_3 = 0xc5;
   9216 
   9217         
   9218 exit:
   9219     SOC_FUNC_RETURN; 
   9220     
   9221 }
   9222 
   9223 int cprimod_cpri_port_fec_enable_set(int unit, int port, cprimod_direction_t dir, int enable)
   9224 {
   9225 
   9226     cprimod_dispatch_type_t __type__;
   9227     int __rv__;        
   9228     SOC_INIT_FUNC_DEFS;
   9229     
   9230     /* Dispatch */
   9231     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9232     if(__type__ >= cprimodDispatchTypeCount) { 
   9233         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9234     }
   9235 
   9236     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_fec_enable_set) {
   9237         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_fec_enable_set(unit, port, dir, enable);
   9238         _SOC_IF_ERR_EXIT(__rv__);
   9239     } else { 
   9240         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_fec_enable_set isn't implemented for driver type"));
   9241     }
   9242         
   9243 exit:
   9244     SOC_FUNC_RETURN; 
   9245     
   9246 }
   9247 
   9248 
   9249 int cprimod_cpri_port_fec_enable_get(int unit, int port, cprimod_direction_t dir, int* enable)
   9250 {
   9251 
   9252     cprimod_dispatch_type_t __type__;
   9253     int __rv__;        
   9254     SOC_INIT_FUNC_DEFS;
   9255     
   9256     if(enable == NULL) {
   9257         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("enable NULL parameter"));
   9258     }
   9259     /* Dispatch */
   9260     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9261     if(__type__ >= cprimodDispatchTypeCount) { 
   9262         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9263     }
   9264 
   9265     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_fec_enable_get) {
   9266         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_fec_enable_get(unit, port, dir, enable);
   9267         _SOC_IF_ERR_EXIT(__rv__);
   9268     } else { 
   9269         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_fec_enable_get isn't implemented for driver type"));
   9270     }
   9271         
   9272 exit:
   9273     SOC_FUNC_RETURN; 
   9274     
   9275 }
   9276 
   9277 
   9278 int cprimod_cpri_port_fec_timestamp_config_set(int unit, int port, cprimod_direction_t dir, const cprimod_fec_timestamp_config_t* config)
   9279 {
   9280 
   9281     cprimod_dispatch_type_t __type__;
   9282     int __rv__;        
   9283     SOC_INIT_FUNC_DEFS;
   9284     
   9285     if(SOC_E_NONE != cprimod_fec_timestamp_config_t_validate(config)) {
   9286         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config validation failed"));
   9287     }
   9288 
   9289     /* Dispatch */
   9290     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9291     if(__type__ >= cprimodDispatchTypeCount) { 
   9292         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9293     }
   9294 
   9295     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_fec_timestamp_config_set) {
   9296         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_fec_timestamp_config_set(unit, port, dir, config);
   9297         _SOC_IF_ERR_EXIT(__rv__);
   9298     } else { 
   9299         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_fec_timestamp_config_set isn't implemented for driver type"));
   9300     }
   9301         
   9302 exit:
   9303     SOC_FUNC_RETURN; 
   9304     
   9305 }
   9306 
   9307 
   9308 int cprimod_cpri_port_fec_timestamp_config_get(int unit, int port, cprimod_direction_t dir, const cprimod_fec_timestamp_config_t* config)
   9309 {
   9310 
   9311     cprimod_dispatch_type_t __type__;
   9312     int __rv__;        
   9313     SOC_INIT_FUNC_DEFS;
   9314     
   9315     if(SOC_E_NONE != cprimod_fec_timestamp_config_t_validate(config)) {
   9316         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("config validation failed"));
   9317     }
   9318 
   9319     /* Dispatch */
   9320     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9321     if(__type__ >= cprimodDispatchTypeCount) { 
   9322         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9323     }
   9324 
   9325     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_fec_timestamp_config_get) {
   9326         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_fec_timestamp_config_get(unit, port, dir, config);
   9327         _SOC_IF_ERR_EXIT(__rv__);
   9328     } else { 
   9329         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_fec_timestamp_config_get isn't implemented for driver type"));
   9330     }
   9331         
   9332 exit:
   9333     SOC_FUNC_RETURN; 
   9334     
   9335 }
   9336 
   9337 
   9338 int cprimod_cpri_port_fec_aux_config_set(int unit, int port, cprimod_fec_aux_config_para_t parameter_id, uint32 value)
   9339 {
   9340 
   9341     cprimod_dispatch_type_t __type__;
   9342     int __rv__;        
   9343     SOC_INIT_FUNC_DEFS;
   9344     
   9345     /* Dispatch */
   9346     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9347     if(__type__ >= cprimodDispatchTypeCount) { 
   9348         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9349     }
   9350 
   9351     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_fec_aux_config_set) {
   9352         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_fec_aux_config_set(unit, port, parameter_id, value);
   9353         _SOC_IF_ERR_EXIT(__rv__);
   9354     } else { 
   9355         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_fec_aux_config_set isn't implemented for driver type"));
   9356     }
   9357         
   9358 exit:
   9359     SOC_FUNC_RETURN; 
   9360     
   9361 }
   9362 
   9363 
   9364 int cprimod_cpri_port_fec_aux_config_get(int unit, int port, cprimod_fec_aux_config_para_t parameter_id, const uint32* value)
   9365 {
   9366 
   9367     cprimod_dispatch_type_t __type__;
   9368     int __rv__;        
   9369     SOC_INIT_FUNC_DEFS;
   9370     
   9371     /* Dispatch */
   9372     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9373     if(__type__ >= cprimodDispatchTypeCount) { 
   9374         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9375     }
   9376 
   9377     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_fec_aux_config_get) {
   9378         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_fec_aux_config_get(unit, port, parameter_id, value);
   9379         _SOC_IF_ERR_EXIT(__rv__);
   9380     } else { 
   9381         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_fec_aux_config_get isn't implemented for driver type"));
   9382     }
   9383         
   9384 exit:
   9385     SOC_FUNC_RETURN; 
   9386     
   9387 }
   9388 
   9389 
   9390 #ifdef CPRIMOD_SUPPORT
   9391 int cprimod_cpri_ecc_intr_info_t_validate(const cprimod_cpri_ecc_intr_info_t* cprimod_cpri_ecc_intr_info)
   9392 {        
   9393     SOC_INIT_FUNC_DEFS;
   9394     if(cprimod_cpri_ecc_intr_info == NULL) {
   9395         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
   9396     }
   9397 
   9398 
   9399         
   9400 exit:
   9401     SOC_FUNC_RETURN; 
   9402     
   9403 }
   9404 #endif /* CPRIMOD_SUPPORT */
   9405 
   9406 #ifdef CPRIMOD_SUPPORT
   9407 int cprimod_cpri_ecc_intr_info_t_init(cprimod_cpri_ecc_intr_info_t* cprimod_cpri_ecc_intr_info)
   9408 {        
   9409     SOC_INIT_FUNC_DEFS;
   9410     
   9411     if(cprimod_cpri_ecc_intr_info == NULL){
   9412         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_ecc_intr_info NULL parameter"));
   9413     }
   9414     sal_memset(cprimod_cpri_ecc_intr_info, 0, sizeof(cprimod_cpri_ecc_intr_info_t));
   9415     cprimod_cpri_ecc_intr_info->port = 0;
   9416     cprimod_cpri_ecc_intr_info->err_mem_info = INVALIDm;
   9417     cprimod_cpri_ecc_intr_info->ecc_reg_info = 0;
   9418     cprimod_cpri_ecc_intr_info->ecc_num_bits_err = 0;
   9419     cprimod_cpri_ecc_intr_info->err_addr = 0;
   9420     cprimod_cpri_ecc_intr_info->mem_str = NULL;
   9421 
   9422         
   9423 exit:
   9424     SOC_FUNC_RETURN; 
   9425     
   9426 }
   9427 #endif /* CPRIMOD_SUPPORT */
   9428 
   9429 #ifdef CPRIMOD_SUPPORT
   9430 int cprimod_cpri_port_ecc_interrupt_enable_set(int unit, int port, int enable)
   9431 {
   9432 
   9433     cprimod_dispatch_type_t __type__;
   9434     int __rv__;        
   9435     SOC_INIT_FUNC_DEFS;
   9436     
   9437     /* Dispatch */
   9438     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9439     if(__type__ >= cprimodDispatchTypeCount) { 
   9440         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9441     }
   9442 
   9443     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_ecc_interrupt_enable_set) {
   9444         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_ecc_interrupt_enable_set(unit, port, enable);
   9445         _SOC_IF_ERR_EXIT(__rv__);
   9446     } else { 
   9447         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_ecc_interrupt_enable_set isn't implemented for driver type"));
   9448     }
   9449         
   9450 exit:
   9451     SOC_FUNC_RETURN; 
   9452     
   9453 }
   9454 #endif /* CPRIMOD_SUPPORT */
   9455 
   9456 
   9457 #ifdef CPRIMOD_SUPPORT
   9458 int cprimod_cpri_port_ecc_interrupt_status_get(int unit, int port, const cprimod_cpri_ecc_intr_info_t* ecc_err_info)
   9459 {
   9460 
   9461     cprimod_dispatch_type_t __type__;
   9462     int __rv__;        
   9463     SOC_INIT_FUNC_DEFS;
   9464     
   9465     if(SOC_E_NONE != cprimod_cpri_ecc_intr_info_t_validate(ecc_err_info)) {
   9466         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("ecc_err_info validation failed"));
   9467     }
   9468 
   9469     /* Dispatch */
   9470     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9471     if(__type__ >= cprimodDispatchTypeCount) { 
   9472         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9473     }
   9474 
   9475     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_ecc_interrupt_status_get) {
   9476         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_ecc_interrupt_status_get(unit, port, ecc_err_info);
   9477         _SOC_IF_ERR_EXIT(__rv__);
   9478     } else { 
   9479         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_ecc_interrupt_status_get isn't implemented for driver type"));
   9480     }
   9481         
   9482 exit:
   9483     SOC_FUNC_RETURN; 
   9484     
   9485 }
   9486 #endif /* CPRIMOD_SUPPORT */
   9487 
   9488 
   9489 #ifdef CPRIMOD_SUPPORT_ECC_INJECT
   9490 int cprimod_cpri_port_ecc_interrupt_test(int unit, int port)
   9491 {
   9492 
   9493     cprimod_dispatch_type_t __type__;
   9494     int __rv__;        
   9495     SOC_INIT_FUNC_DEFS;
   9496     
   9497     /* Dispatch */
   9498     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9499     if(__type__ >= cprimodDispatchTypeCount) { 
   9500         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9501     }
   9502 
   9503     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_ecc_interrupt_test) {
   9504         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_ecc_interrupt_test(unit, port);
   9505         _SOC_IF_ERR_EXIT(__rv__);
   9506     } else { 
   9507         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_ecc_interrupt_test isn't implemented for driver type"));
   9508     }
   9509         
   9510 exit:
   9511     SOC_FUNC_RETURN; 
   9512     
   9513 }
   9514 #endif /* CPRIMOD_SUPPORT_ECC_INJECT */
   9515 
   9516 
   9517 int cprimod_cpri_pll_status_get(int unit, int port, const phymod_phy_access_t* phy, int* pll_sel, int* pll_lock)
   9518 {
   9519 
   9520     cprimod_dispatch_type_t __type__;
   9521     int __rv__;        
   9522     SOC_INIT_FUNC_DEFS;
   9523     
   9524     if(pll_sel == NULL) {
   9525         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pll_sel NULL parameter"));
   9526     }
   9527     if(pll_lock == NULL) {
   9528         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("pll_lock NULL parameter"));
   9529     }
   9530     /* Dispatch */
   9531     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9532     if(__type__ >= cprimodDispatchTypeCount) { 
   9533         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9534     }
   9535 
   9536     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_pll_status_get) {
   9537         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_pll_status_get(unit, port, phy, pll_sel, pll_lock);
   9538         _SOC_IF_ERR_EXIT(__rv__);
   9539     } else { 
   9540         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_pll_status_get isn't implemented for driver type"));
   9541     }
   9542         
   9543 exit:
   9544     SOC_FUNC_RETURN; 
   9545     
   9546 }
   9547 
   9548 
   9549 int cprimod_cpri_port_reset_set(int unit, int port, int rst)
   9550 {
   9551 
   9552     cprimod_dispatch_type_t __type__;
   9553     int __rv__;        
   9554     SOC_INIT_FUNC_DEFS;
   9555     
   9556     /* Dispatch */
   9557     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9558     if(__type__ >= cprimodDispatchTypeCount) { 
   9559         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9560     }
   9561 
   9562     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_reset_set) {
   9563         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_reset_set(unit, port, rst);
   9564         _SOC_IF_ERR_EXIT(__rv__);
   9565     } else { 
   9566         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_reset_set isn't implemented for driver type"));
   9567     }
   9568         
   9569 exit:
   9570     SOC_FUNC_RETURN; 
   9571     
   9572 }
   9573 
   9574 
   9575 int cprimod_cpri_port_reset_get(int unit, int port, int* rst)
   9576 {
   9577 
   9578     cprimod_dispatch_type_t __type__;
   9579     int __rv__;        
   9580     SOC_INIT_FUNC_DEFS;
   9581     
   9582     if(rst == NULL) {
   9583         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("rst NULL parameter"));
   9584     }
   9585     /* Dispatch */
   9586     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9587     if(__type__ >= cprimodDispatchTypeCount) { 
   9588         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9589     }
   9590 
   9591     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_reset_get) {
   9592         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_reset_get(unit, port, rst);
   9593         _SOC_IF_ERR_EXIT(__rv__);
   9594     } else { 
   9595         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_reset_get isn't implemented for driver type"));
   9596     }
   9597         
   9598 exit:
   9599     SOC_FUNC_RETURN; 
   9600     
   9601 }
   9602 
   9603 
   9604 int cprimod_cpri_init(int unit, int port)
   9605 {
   9606 
   9607     cprimod_dispatch_type_t __type__;
   9608     int __rv__;        
   9609     SOC_INIT_FUNC_DEFS;
   9610     
   9611     /* Dispatch */
   9612     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9613     if(__type__ >= cprimodDispatchTypeCount) { 
   9614         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9615     }
   9616 
   9617     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_init) {
   9618         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_init(unit, port);
   9619         _SOC_IF_ERR_EXIT(__rv__);
   9620     } else { 
   9621         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_init isn't implemented for driver type"));
   9622     }
   9623         
   9624 exit:
   9625     SOC_FUNC_RETURN; 
   9626     
   9627 }
   9628 
   9629 
   9630 int cprimod_cpri_port_rx_gcw_word_get(int unit, int port, int group_index, uint16* gcw_word)
   9631 {
   9632 
   9633     cprimod_dispatch_type_t __type__;
   9634     int __rv__;        
   9635     SOC_INIT_FUNC_DEFS;
   9636     
   9637     if(gcw_word == NULL) {
   9638         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("gcw_word NULL parameter"));
   9639     }
   9640     /* Dispatch */
   9641     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9642     if(__type__ >= cprimodDispatchTypeCount) { 
   9643         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9644     }
   9645 
   9646     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_gcw_word_get) {
   9647         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_gcw_word_get(unit, port, group_index, gcw_word);
   9648         _SOC_IF_ERR_EXIT(__rv__);
   9649     } else { 
   9650         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_gcw_word_get isn't implemented for driver type"));
   9651     }
   9652         
   9653 exit:
   9654     SOC_FUNC_RETURN; 
   9655     
   9656 }
   9657 
   9658 
   9659 int cprimod_cpri_port_tx_gcw_word_set(int unit, int port, int group_index, uint16 gcw_word)
   9660 {
   9661 
   9662     cprimod_dispatch_type_t __type__;
   9663     int __rv__;        
   9664     SOC_INIT_FUNC_DEFS;
   9665     
   9666     /* Dispatch */
   9667     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9668     if(__type__ >= cprimodDispatchTypeCount) { 
   9669         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9670     }
   9671 
   9672     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_gcw_word_set) {
   9673         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_gcw_word_set(unit, port, group_index, gcw_word);
   9674         _SOC_IF_ERR_EXIT(__rv__);
   9675     } else { 
   9676         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_gcw_word_set isn't implemented for driver type"));
   9677     }
   9678         
   9679 exit:
   9680     SOC_FUNC_RETURN; 
   9681     
   9682 }
   9683 
   9684 
   9685 int cprimod_cpri_mac_drain_start(int unit, int port)
   9686 {
   9687 
   9688     cprimod_dispatch_type_t __type__;
   9689     int __rv__;        
   9690     SOC_INIT_FUNC_DEFS;
   9691     
   9692     /* Dispatch */
   9693     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9694     if(__type__ >= cprimodDispatchTypeCount) { 
   9695         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9696     }
   9697 
   9698     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_mac_drain_start) {
   9699         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_mac_drain_start(unit, port);
   9700         _SOC_IF_ERR_EXIT(__rv__);
   9701     } else { 
   9702         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_mac_drain_start isn't implemented for driver type"));
   9703     }
   9704         
   9705 exit:
   9706     SOC_FUNC_RETURN; 
   9707     
   9708 }
   9709 
   9710 
   9711 int cprimod_cpri_mac_drain_stop(int unit, int port)
   9712 {
   9713 
   9714     cprimod_dispatch_type_t __type__;
   9715     int __rv__;        
   9716     SOC_INIT_FUNC_DEFS;
   9717     
   9718     /* Dispatch */
   9719     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9720     if(__type__ >= cprimodDispatchTypeCount) { 
   9721         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9722     }
   9723 
   9724     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_mac_drain_stop) {
   9725         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_mac_drain_stop(unit, port);
   9726         _SOC_IF_ERR_EXIT(__rv__);
   9727     } else { 
   9728         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_mac_drain_stop isn't implemented for driver type"));
   9729     }
   9730         
   9731 exit:
   9732     SOC_FUNC_RETURN; 
   9733     
   9734 }
   9735 
   9736 
   9737 int cprimod_cpri_mac_credit_reset_set(int unit, int port, int rst)
   9738 {
   9739 
   9740     cprimod_dispatch_type_t __type__;
   9741     int __rv__;        
   9742     SOC_INIT_FUNC_DEFS;
   9743     
   9744     /* Dispatch */
   9745     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9746     if(__type__ >= cprimodDispatchTypeCount) { 
   9747         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9748     }
   9749 
   9750     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_mac_credit_reset_set) {
   9751         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_mac_credit_reset_set(unit, port, rst);
   9752         _SOC_IF_ERR_EXIT(__rv__);
   9753     } else { 
   9754         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_mac_credit_reset_set isn't implemented for driver type"));
   9755     }
   9756         
   9757 exit:
   9758     SOC_FUNC_RETURN; 
   9759     
   9760 }
   9761 
   9762 
   9763 int cprimod_cpri_mac_credit_reset_get(int unit, int port, int* rst)
   9764 {
   9765 
   9766     cprimod_dispatch_type_t __type__;
   9767     int __rv__;        
   9768     SOC_INIT_FUNC_DEFS;
   9769     
   9770     if(rst == NULL) {
   9771         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("rst NULL parameter"));
   9772     }
   9773     /* Dispatch */
   9774     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9775     if(__type__ >= cprimodDispatchTypeCount) { 
   9776         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9777     }
   9778 
   9779     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_mac_credit_reset_get) {
   9780         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_mac_credit_reset_get(unit, port, rst);
   9781         _SOC_IF_ERR_EXIT(__rv__);
   9782     } else { 
   9783         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_mac_credit_reset_get isn't implemented for driver type"));
   9784     }
   9785         
   9786 exit:
   9787     SOC_FUNC_RETURN; 
   9788     
   9789 }
   9790 
   9791 
   9792 int cprimod_cpri_port_link_up_event(int unit, int port)
   9793 {
   9794 
   9795     cprimod_dispatch_type_t __type__;
   9796     int __rv__;        
   9797     SOC_INIT_FUNC_DEFS;
   9798     
   9799     /* Dispatch */
   9800     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9801     if(__type__ >= cprimodDispatchTypeCount) { 
   9802         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9803     }
   9804 
   9805     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_link_up_event) {
   9806         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_link_up_event(unit, port);
   9807         _SOC_IF_ERR_EXIT(__rv__);
   9808     } else { 
   9809         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_link_up_event isn't implemented for driver type"));
   9810     }
   9811         
   9812 exit:
   9813     SOC_FUNC_RETURN; 
   9814     
   9815 }
   9816 
   9817 
   9818 int cprimod_cpri_port_link_down_event(int unit, int port)
   9819 {
   9820 
   9821     cprimod_dispatch_type_t __type__;
   9822     int __rv__;        
   9823     SOC_INIT_FUNC_DEFS;
   9824     
   9825     /* Dispatch */
   9826     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9827     if(__type__ >= cprimodDispatchTypeCount) { 
   9828         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9829     }
   9830 
   9831     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_link_down_event) {
   9832         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_link_down_event(unit, port);
   9833         _SOC_IF_ERR_EXIT(__rv__);
   9834     } else { 
   9835         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_link_down_event isn't implemented for driver type"));
   9836     }
   9837         
   9838 exit:
   9839     SOC_FUNC_RETURN; 
   9840     
   9841 }
   9842 
   9843 
   9844 int cprimod_agnostic_mode_type_t_validate(cprimod_agnostic_mode_type_t cprimod_agnostic_mode_type)
   9845 {        
   9846     SOC_INIT_FUNC_DEFS;
   9847     if(cprimod_agnostic_mode_type >= cprimod_agnostic_mode_Count) {
   9848         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
   9849     }
   9850         
   9851 exit:
   9852     SOC_FUNC_RETURN; 
   9853     
   9854 }
   9855 
   9856 int cprimod_cpri_port_rx_tunnel_mode_set(int unit, int port, int enable, uint32 payload_size)
   9857 {
   9858 
   9859     cprimod_dispatch_type_t __type__;
   9860     int __rv__;        
   9861     SOC_INIT_FUNC_DEFS;
   9862     
   9863     /* Dispatch */
   9864     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9865     if(__type__ >= cprimodDispatchTypeCount) { 
   9866         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9867     }
   9868 
   9869     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_tunnel_mode_set) {
   9870         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_tunnel_mode_set(unit, port, enable, payload_size);
   9871         _SOC_IF_ERR_EXIT(__rv__);
   9872     } else { 
   9873         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_tunnel_mode_set isn't implemented for driver type"));
   9874     }
   9875         
   9876 exit:
   9877     SOC_FUNC_RETURN; 
   9878     
   9879 }
   9880 
   9881 
   9882 int cprimod_cpri_port_rx_tunnel_mode_get(int unit, int port, int* enable, uint32* payload_size)
   9883 {
   9884 
   9885     cprimod_dispatch_type_t __type__;
   9886     int __rv__;        
   9887     SOC_INIT_FUNC_DEFS;
   9888     
   9889     if(enable == NULL) {
   9890         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("enable NULL parameter"));
   9891     }
   9892     if(payload_size == NULL) {
   9893         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("payload_size NULL parameter"));
   9894     }
   9895     /* Dispatch */
   9896     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9897     if(__type__ >= cprimodDispatchTypeCount) { 
   9898         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9899     }
   9900 
   9901     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_tunnel_mode_get) {
   9902         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_tunnel_mode_get(unit, port, enable, payload_size);
   9903         _SOC_IF_ERR_EXIT(__rv__);
   9904     } else { 
   9905         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_tunnel_mode_get isn't implemented for driver type"));
   9906     }
   9907         
   9908 exit:
   9909     SOC_FUNC_RETURN; 
   9910     
   9911 }
   9912 
   9913 
   9914 int cprimod_cpri_port_tx_agnostic_mode_set(int unit, int port, int enable, cprimod_agnostic_mode_type_t mode, uint32 payload_size)
   9915 {
   9916 
   9917     cprimod_dispatch_type_t __type__;
   9918     int __rv__;        
   9919     SOC_INIT_FUNC_DEFS;
   9920     
   9921     if(SOC_E_NONE != cprimod_agnostic_mode_type_t_validate(mode)) {
   9922         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mode validation failed"));
   9923     }
   9924 
   9925     /* Dispatch */
   9926     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9927     if(__type__ >= cprimodDispatchTypeCount) { 
   9928         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9929     }
   9930 
   9931     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_agnostic_mode_set) {
   9932         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_agnostic_mode_set(unit, port, enable, mode, payload_size);
   9933         _SOC_IF_ERR_EXIT(__rv__);
   9934     } else { 
   9935         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_agnostic_mode_set isn't implemented for driver type"));
   9936     }
   9937         
   9938 exit:
   9939     SOC_FUNC_RETURN; 
   9940     
   9941 }
   9942 
   9943 
   9944 int cprimod_cpri_port_tx_agnostic_mode_get(int unit, int port, int* enable, cprimod_agnostic_mode_type_t* mode, uint32* payload_size)
   9945 {
   9946 
   9947     cprimod_dispatch_type_t __type__;
   9948     int __rv__;        
   9949     SOC_INIT_FUNC_DEFS;
   9950     
   9951     if(enable == NULL) {
   9952         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("enable NULL parameter"));
   9953     }
   9954     if(mode == NULL) {
   9955         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mode NULL parameter"));
   9956     }
   9957     if(payload_size == NULL) {
   9958         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("payload_size NULL parameter"));
   9959     }
   9960     /* Dispatch */
   9961     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9962     if(__type__ >= cprimodDispatchTypeCount) { 
   9963         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9964     }
   9965 
   9966     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_agnostic_mode_get) {
   9967         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_tx_agnostic_mode_get(unit, port, enable, mode, payload_size);
   9968         _SOC_IF_ERR_EXIT(__rv__);
   9969     } else { 
   9970         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_tx_agnostic_mode_get isn't implemented for driver type"));
   9971     }
   9972         
   9973 exit:
   9974     SOC_FUNC_RETURN; 
   9975     
   9976 }
   9977 
   9978 
   9979 int cprimod_cpri_port_rx_agnostic_mode_get(int unit, int port, int* enable, cprimod_agnostic_mode_type_t* mode)
   9980 {
   9981 
   9982     cprimod_dispatch_type_t __type__;
   9983     int __rv__;        
   9984     SOC_INIT_FUNC_DEFS;
   9985     
   9986     if(enable == NULL) {
   9987         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("enable NULL parameter"));
   9988     }
   9989     if(mode == NULL) {
   9990         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mode NULL parameter"));
   9991     }
   9992     /* Dispatch */
   9993     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
   9994     if(__type__ >= cprimodDispatchTypeCount) { 
   9995         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
   9996     }
   9997 
   9998     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_agnostic_mode_get) {
   9999         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_rx_agnostic_mode_get(unit, port, enable, mode);
  10000         _SOC_IF_ERR_EXIT(__rv__);
  10001     } else { 
  10002         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_rx_agnostic_mode_get isn't implemented for driver type"));
  10003     }
  10004         
  10005 exit:
  10006     SOC_FUNC_RETURN; 
  10007     
  10008 }
  10009 
  10010 
  10011 int cprimod_pmd_port_status_t_validate(cprimod_pmd_port_status_t cprimod_pmd_port_status)
  10012 {        
  10013     SOC_INIT_FUNC_DEFS;
  10014     if(cprimod_pmd_port_status >= cprimodPmdPortStatusCount) {
  10015         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Parameter is out of range"));
  10016     }
  10017         
  10018 exit:
  10019     SOC_FUNC_RETURN; 
  10020     
  10021 }
  10022 
  10023 int cprimod_port_pmd_status_get(int unit, int port, cprimod_pmd_port_status_t status, uint32* value)
  10024 {
  10025 
  10026     cprimod_dispatch_type_t __type__;
  10027     int __rv__;        
  10028     SOC_INIT_FUNC_DEFS;
  10029     
  10030     if(SOC_E_NONE != cprimod_pmd_port_status_t_validate(status)) {
  10031         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("status validation failed"));
  10032     }
  10033 
  10034     if(value == NULL) {
  10035         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("value NULL parameter"));
  10036     }
  10037     /* Dispatch */
  10038     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10039     if(__type__ >= cprimodDispatchTypeCount) { 
  10040         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10041     }
  10042 
  10043     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_port_pmd_status_get) {
  10044         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_port_pmd_status_get(unit, port, status, value);
  10045         _SOC_IF_ERR_EXIT(__rv__);
  10046     } else { 
  10047         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_port_pmd_status_get isn't implemented for driver type"));
  10048     }
  10049         
  10050 exit:
  10051     SOC_FUNC_RETURN; 
  10052     
  10053 }
  10054 
  10055 
  10056 int cprimod_cpri_port_link_get(int unit, int port, int* link)
  10057 {
  10058 
  10059     cprimod_dispatch_type_t __type__;
  10060     int __rv__;        
  10061     SOC_INIT_FUNC_DEFS;
  10062     
  10063     if(link == NULL) {
  10064         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("link NULL parameter"));
  10065     }
  10066     /* Dispatch */
  10067     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10068     if(__type__ >= cprimodDispatchTypeCount) { 
  10069         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10070     }
  10071 
  10072     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_link_get) {
  10073         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_link_get(unit, port, link);
  10074         _SOC_IF_ERR_EXIT(__rv__);
  10075     } else { 
  10076         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_link_get isn't implemented for driver type"));
  10077     }
  10078         
  10079 exit:
  10080     SOC_FUNC_RETURN; 
  10081     
  10082 }
  10083 
  10084 
  10085 #ifdef CPRIMOD_SUPPORT
  10086 int cprimod_cpri_encap_header_field_mapping_t_validate(const cprimod_cpri_encap_header_field_mapping_t* cprimod_cpri_encap_header_field_mapping)
  10087 {        
  10088     SOC_INIT_FUNC_DEFS;
  10089     if(cprimod_cpri_encap_header_field_mapping == NULL) {
  10090         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
  10091     }
  10092 
  10093 
  10094         
  10095 exit:
  10096     SOC_FUNC_RETURN; 
  10097     
  10098 }
  10099 #endif /* CPRIMOD_SUPPORT */
  10100 
  10101 #ifdef CPRIMOD_SUPPORT
  10102 int cprimod_cpri_encap_header_field_mapping_t_init(cprimod_cpri_encap_header_field_mapping_t* cprimod_cpri_encap_header_field_mapping)
  10103 {        
  10104     SOC_INIT_FUNC_DEFS;
  10105     
  10106     if(cprimod_cpri_encap_header_field_mapping == NULL){
  10107         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_encap_header_field_mapping NULL parameter"));
  10108     }
  10109     sal_memset(cprimod_cpri_encap_header_field_mapping, 0, sizeof(cprimod_cpri_encap_header_field_mapping_t));
  10110     cprimod_cpri_encap_header_field_mapping->hdr_byte0_sel = CPRIMOD_CPRI_ROE_HEADER_FIELD_SUBTYPE;
  10111     cprimod_cpri_encap_header_field_mapping->hdr_byte1_sel = CPRIMOD_CPRI_ROE_HEADER_FIELD_FLOW_ID;
  10112     cprimod_cpri_encap_header_field_mapping->hdr_byte2_sel = CPRIMOD_CPRI_ROE_HEADER_FIELD_LENGTH_15_8;
  10113     cprimod_cpri_encap_header_field_mapping->hdr_byte3_sel = CPRIMOD_CPRI_ROE_HEADER_FIELD_LENGTH_7_0;
  10114     cprimod_cpri_encap_header_field_mapping->hdr_byte4_sel = CPRIMOD_CPRI_ROE_HEADER_FIELD_ORDER_INFO_31_24;
  10115     cprimod_cpri_encap_header_field_mapping->hdr_byte5_sel = CPRIMOD_CPRI_ROE_HEADER_FIELD_ORDER_INFO_23_16;
  10116     cprimod_cpri_encap_header_field_mapping->hdr_byte6_sel = CPRIMOD_CPRI_ROE_HEADER_FIELD_ORDER_INFO_15_8;
  10117     cprimod_cpri_encap_header_field_mapping->hdr_byte7_sel = CPRIMOD_CPRI_ROE_HEADER_FIELD_ORDER_INFO_7_0;
  10118     cprimod_cpri_encap_header_field_mapping->hdr_byte8_sel = CPRIMOD_CPRI_ROE_HEADER_FIELD_UNMAPPED;
  10119     cprimod_cpri_encap_header_field_mapping->hdr_byte9_sel = CPRIMOD_CPRI_ROE_HEADER_FIELD_UNMAPPED;
  10120     cprimod_cpri_encap_header_field_mapping->hdr_byte10_sel = CPRIMOD_CPRI_ROE_HEADER_FIELD_UNMAPPED;
  10121     cprimod_cpri_encap_header_field_mapping->hdr_byte11_sel = CPRIMOD_CPRI_ROE_HEADER_FIELD_UNMAPPED;
  10122 
  10123         
  10124 exit:
  10125     SOC_FUNC_RETURN; 
  10126     
  10127 }
  10128 #endif /* CPRIMOD_SUPPORT */
  10129 
  10130 #ifdef CPRIMOD_SUPPORT
  10131 int cprimod_cpri_decap_header_field_mapping_t_validate(const cprimod_cpri_decap_header_field_mapping_t* cprimod_cpri_decap_header_field_mapping)
  10132 {        
  10133     SOC_INIT_FUNC_DEFS;
  10134     if(cprimod_cpri_decap_header_field_mapping == NULL) {
  10135         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("NULL parameter"));
  10136     }
  10137 
  10138 
  10139         
  10140 exit:
  10141     SOC_FUNC_RETURN; 
  10142     
  10143 }
  10144 #endif /* CPRIMOD_SUPPORT */
  10145 
  10146 #ifdef CPRIMOD_SUPPORT
  10147 int cprimod_cpri_decap_header_field_mapping_t_init(cprimod_cpri_decap_header_field_mapping_t* cprimod_cpri_decap_header_field_mapping)
  10148 {        
  10149     SOC_INIT_FUNC_DEFS;
  10150     
  10151     if(cprimod_cpri_decap_header_field_mapping == NULL){
  10152         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("cprimod_cpri_decap_header_field_mapping NULL parameter"));
  10153     }
  10154     sal_memset(cprimod_cpri_decap_header_field_mapping, 0, sizeof(cprimod_cpri_decap_header_field_mapping_t));
  10155     cprimod_cpri_decap_header_field_mapping->subtype_sel = CPRIMOD_CPRI_ECPRI_HEADER_FIELD_BYTE_0;
  10156     cprimod_cpri_decap_header_field_mapping->flowid_sel = CPRIMOD_CPRI_ECPRI_HEADER_FIELD_BYTE_1;
  10157     cprimod_cpri_decap_header_field_mapping->length_15_8_sel = CPRIMOD_CPRI_ECPRI_HEADER_FIELD_BYTE_2;
  10158     cprimod_cpri_decap_header_field_mapping->length_7_0_sel = CPRIMOD_CPRI_ECPRI_HEADER_FIELD_BYTE_3;
  10159     cprimod_cpri_decap_header_field_mapping->orderinginfo_31_24_sel = CPRIMOD_CPRI_ECPRI_HEADER_FIELD_BYTE_4;
  10160     cprimod_cpri_decap_header_field_mapping->orderinginfo_23_16_sel = CPRIMOD_CPRI_ECPRI_HEADER_FIELD_BYTE_5;
  10161     cprimod_cpri_decap_header_field_mapping->orderinginfo_15_8_sel = CPRIMOD_CPRI_ECPRI_HEADER_FIELD_BYTE_6;
  10162     cprimod_cpri_decap_header_field_mapping->orderinginfo_7_0_sel = CPRIMOD_CPRI_ECPRI_HEADER_FIELD_BYTE_7;
  10163 
  10164         
  10165 exit:
  10166     SOC_FUNC_RETURN; 
  10167     
  10168 }
  10169 #endif /* CPRIMOD_SUPPORT */
  10170 
  10171 #ifdef CPRIMOD_SUPPORT
  10172 int cprimod_cpri_encap_header_field_mapping_set(int unit, int port, const cprimod_cpri_encap_header_field_mapping_t* mapping)
  10173 {
  10174 
  10175     cprimod_dispatch_type_t __type__;
  10176     int __rv__;        
  10177     SOC_INIT_FUNC_DEFS;
  10178     
  10179     if(SOC_E_NONE != cprimod_cpri_encap_header_field_mapping_t_validate(mapping)) {
  10180         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mapping validation failed"));
  10181     }
  10182 
  10183     /* Dispatch */
  10184     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10185     if(__type__ >= cprimodDispatchTypeCount) { 
  10186         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10187     }
  10188 
  10189     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_encap_header_field_mapping_set) {
  10190         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_encap_header_field_mapping_set(unit, port, mapping);
  10191         _SOC_IF_ERR_EXIT(__rv__);
  10192     } else { 
  10193         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_encap_header_field_mapping_set isn't implemented for driver type"));
  10194     }
  10195         
  10196 exit:
  10197     SOC_FUNC_RETURN; 
  10198     
  10199 }
  10200 #endif /* CPRIMOD_SUPPORT */
  10201 
  10202 
  10203 #ifdef CPRIMOD_SUPPORT
  10204 int cprimod_cpri_encap_header_field_mapping_get(int unit, int port, cprimod_cpri_encap_header_field_mapping_t* mapping)
  10205 {
  10206 
  10207     cprimod_dispatch_type_t __type__;
  10208     int __rv__;        
  10209     SOC_INIT_FUNC_DEFS;
  10210     
  10211     if(mapping == NULL) {
  10212         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mapping NULL parameter"));
  10213     }
  10214     if(SOC_E_NONE != cprimod_cpri_encap_header_field_mapping_t_init(mapping)) {
  10215         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mapping initialization failed"));
  10216     }
  10217 
  10218     /* Dispatch */
  10219     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10220     if(__type__ >= cprimodDispatchTypeCount) { 
  10221         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10222     }
  10223 
  10224     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_encap_header_field_mapping_get) {
  10225         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_encap_header_field_mapping_get(unit, port, mapping);
  10226         _SOC_IF_ERR_EXIT(__rv__);
  10227     } else { 
  10228         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_encap_header_field_mapping_get isn't implemented for driver type"));
  10229     }
  10230         
  10231 exit:
  10232     SOC_FUNC_RETURN; 
  10233     
  10234 }
  10235 #endif /* CPRIMOD_SUPPORT */
  10236 
  10237 
  10238 #ifdef CPRIMOD_SUPPORT
  10239 int cprimod_cpri_decap_header_field_mapping_set(int unit, int port, const cprimod_cpri_decap_header_field_mapping_t* mapping)
  10240 {
  10241 
  10242     cprimod_dispatch_type_t __type__;
  10243     int __rv__;        
  10244     SOC_INIT_FUNC_DEFS;
  10245     
  10246     if(SOC_E_NONE != cprimod_cpri_decap_header_field_mapping_t_validate(mapping)) {
  10247         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mapping validation failed"));
  10248     }
  10249 
  10250     /* Dispatch */
  10251     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10252     if(__type__ >= cprimodDispatchTypeCount) { 
  10253         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10254     }
  10255 
  10256     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_decap_header_field_mapping_set) {
  10257         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_decap_header_field_mapping_set(unit, port, mapping);
  10258         _SOC_IF_ERR_EXIT(__rv__);
  10259     } else { 
  10260         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_decap_header_field_mapping_set isn't implemented for driver type"));
  10261     }
  10262         
  10263 exit:
  10264     SOC_FUNC_RETURN; 
  10265     
  10266 }
  10267 #endif /* CPRIMOD_SUPPORT */
  10268 
  10269 
  10270 #ifdef CPRIMOD_SUPPORT
  10271 int cprimod_cpri_decap_header_field_mapping_get(int unit, int port, cprimod_cpri_decap_header_field_mapping_t* mapping)
  10272 {
  10273 
  10274     cprimod_dispatch_type_t __type__;
  10275     int __rv__;        
  10276     SOC_INIT_FUNC_DEFS;
  10277     
  10278     if(mapping == NULL) {
  10279         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mapping NULL parameter"));
  10280     }
  10281     if(SOC_E_NONE != cprimod_cpri_decap_header_field_mapping_t_init(mapping)) {
  10282         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mapping initialization failed"));
  10283     }
  10284 
  10285     /* Dispatch */
  10286     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10287     if(__type__ >= cprimodDispatchTypeCount) { 
  10288         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10289     }
  10290 
  10291     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_decap_header_field_mapping_get) {
  10292         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_decap_header_field_mapping_get(unit, port, mapping);
  10293         _SOC_IF_ERR_EXIT(__rv__);
  10294     } else { 
  10295         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_decap_header_field_mapping_get isn't implemented for driver type"));
  10296     }
  10297         
  10298 exit:
  10299     SOC_FUNC_RETURN; 
  10300     
  10301 }
  10302 #endif /* CPRIMOD_SUPPORT */
  10303 
  10304 
  10305 #ifdef CPRIMOD_SUPPORT
  10306 int cprimod_cpri_header_field_adjustment_config_set(int unit, int port, cprimod_direction_t dir, int ext_hdr_enable, int len_field_adj)
  10307 {
  10308 
  10309     cprimod_dispatch_type_t __type__;
  10310     int __rv__;        
  10311     SOC_INIT_FUNC_DEFS;
  10312     
  10313     /* Dispatch */
  10314     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10315     if(__type__ >= cprimodDispatchTypeCount) { 
  10316         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10317     }
  10318 
  10319     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_header_field_adjustment_config_set) {
  10320         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_header_field_adjustment_config_set(unit, port, dir, ext_hdr_enable, len_field_adj);
  10321         _SOC_IF_ERR_EXIT(__rv__);
  10322     } else { 
  10323         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_header_field_adjustment_config_set isn't implemented for driver type"));
  10324     }
  10325         
  10326 exit:
  10327     SOC_FUNC_RETURN; 
  10328     
  10329 }
  10330 #endif /* CPRIMOD_SUPPORT */
  10331 
  10332 
  10333 #ifdef CPRIMOD_SUPPORT
  10334 int cprimod_cpri_header_field_adjustment_config_get(int unit, int port, cprimod_direction_t dir, int* ext_hdr_enable, int* len_field_adj)
  10335 {
  10336 
  10337     cprimod_dispatch_type_t __type__;
  10338     int __rv__;        
  10339     SOC_INIT_FUNC_DEFS;
  10340     
  10341     if(ext_hdr_enable == NULL) {
  10342         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("ext_hdr_enable NULL parameter"));
  10343     }
  10344     if(len_field_adj == NULL) {
  10345         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("len_field_adj NULL parameter"));
  10346     }
  10347     /* Dispatch */
  10348     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10349     if(__type__ >= cprimodDispatchTypeCount) { 
  10350         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10351     }
  10352 
  10353     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_header_field_adjustment_config_get) {
  10354         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_header_field_adjustment_config_get(unit, port, dir, ext_hdr_enable, len_field_adj);
  10355         _SOC_IF_ERR_EXIT(__rv__);
  10356     } else { 
  10357         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_header_field_adjustment_config_get isn't implemented for driver type"));
  10358     }
  10359         
  10360 exit:
  10361     SOC_FUNC_RETURN; 
  10362     
  10363 }
  10364 #endif /* CPRIMOD_SUPPORT */
  10365 
  10366 
  10367 #ifdef CPRIMOD_SUPPORT
  10368 int cprimod_cpri_decap_header_field_mask_set(int unit, int port, cprimod_cpri_roe_header_field_t field_id, uint32 mask)
  10369 {
  10370 
  10371     cprimod_dispatch_type_t __type__;
  10372     int __rv__;        
  10373     SOC_INIT_FUNC_DEFS;
  10374     
  10375     /* Dispatch */
  10376     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10377     if(__type__ >= cprimodDispatchTypeCount) { 
  10378         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10379     }
  10380 
  10381     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_decap_header_field_mask_set) {
  10382         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_decap_header_field_mask_set(unit, port, field_id, mask);
  10383         _SOC_IF_ERR_EXIT(__rv__);
  10384     } else { 
  10385         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_decap_header_field_mask_set isn't implemented for driver type"));
  10386     }
  10387         
  10388 exit:
  10389     SOC_FUNC_RETURN; 
  10390     
  10391 }
  10392 #endif /* CPRIMOD_SUPPORT */
  10393 
  10394 
  10395 #ifdef CPRIMOD_SUPPORT
  10396 int cprimod_cpri_decap_header_field_mask_get(int unit, int port, cprimod_cpri_roe_header_field_t field_id, uint32* mask)
  10397 {
  10398 
  10399     cprimod_dispatch_type_t __type__;
  10400     int __rv__;        
  10401     SOC_INIT_FUNC_DEFS;
  10402     
  10403     if(mask == NULL) {
  10404         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("mask NULL parameter"));
  10405     }
  10406     /* Dispatch */
  10407     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10408     if(__type__ >= cprimodDispatchTypeCount) { 
  10409         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10410     }
  10411 
  10412     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_decap_header_field_mask_get) {
  10413         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_decap_header_field_mask_get(unit, port, field_id, mask);
  10414         _SOC_IF_ERR_EXIT(__rv__);
  10415     } else { 
  10416         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_decap_header_field_mask_get isn't implemented for driver type"));
  10417     }
  10418         
  10419 exit:
  10420     SOC_FUNC_RETURN; 
  10421     
  10422 }
  10423 #endif /* CPRIMOD_SUPPORT */
  10424 
  10425 
  10426 #ifdef CPRIMOD_SUPPORT
  10427 int cprimod_cpri_port_compression_saturation_config_set(int unit, int port, uint32 threshold_value)
  10428 {
  10429 
  10430     cprimod_dispatch_type_t __type__;
  10431     int __rv__;        
  10432     SOC_INIT_FUNC_DEFS;
  10433     
  10434     /* Dispatch */
  10435     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10436     if(__type__ >= cprimodDispatchTypeCount) { 
  10437         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10438     }
  10439 
  10440     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_compression_saturation_config_set) {
  10441         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_compression_saturation_config_set(unit, port, threshold_value);
  10442         _SOC_IF_ERR_EXIT(__rv__);
  10443     } else { 
  10444         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_compression_saturation_config_set isn't implemented for driver type"));
  10445     }
  10446         
  10447 exit:
  10448     SOC_FUNC_RETURN; 
  10449     
  10450 }
  10451 #endif /* CPRIMOD_SUPPORT */
  10452 
  10453 
  10454 #ifdef CPRIMOD_SUPPORT
  10455 int cprimod_cpri_port_compression_saturation_config_get(int unit, int port, uint32* threshold_value)
  10456 {
  10457 
  10458     cprimod_dispatch_type_t __type__;
  10459     int __rv__;        
  10460     SOC_INIT_FUNC_DEFS;
  10461     
  10462     if(threshold_value == NULL) {
  10463         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("threshold_value NULL parameter"));
  10464     }
  10465     /* Dispatch */
  10466     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10467     if(__type__ >= cprimodDispatchTypeCount) { 
  10468         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10469     }
  10470 
  10471     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_compression_saturation_config_get) {
  10472         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_compression_saturation_config_get(unit, port, threshold_value);
  10473         _SOC_IF_ERR_EXIT(__rv__);
  10474     } else { 
  10475         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_compression_saturation_config_get isn't implemented for driver type"));
  10476     }
  10477         
  10478 exit:
  10479     SOC_FUNC_RETURN; 
  10480     
  10481 }
  10482 #endif /* CPRIMOD_SUPPORT */
  10483 
  10484 
  10485 #ifdef CPRIMOD_SUPPORT
  10486 int cprimod_cpri_port_decompression_saturation_config_set(int unit, int port, uint32 sat_value)
  10487 {
  10488 
  10489     cprimod_dispatch_type_t __type__;
  10490     int __rv__;        
  10491     SOC_INIT_FUNC_DEFS;
  10492     
  10493     /* Dispatch */
  10494     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10495     if(__type__ >= cprimodDispatchTypeCount) { 
  10496         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10497     }
  10498 
  10499     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_decompression_saturation_config_set) {
  10500         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_decompression_saturation_config_set(unit, port, sat_value);
  10501         _SOC_IF_ERR_EXIT(__rv__);
  10502     } else { 
  10503         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_decompression_saturation_config_set isn't implemented for driver type"));
  10504     }
  10505         
  10506 exit:
  10507     SOC_FUNC_RETURN; 
  10508     
  10509 }
  10510 #endif /* CPRIMOD_SUPPORT */
  10511 
  10512 
  10513 #ifdef CPRIMOD_SUPPORT
  10514 int cprimod_cpri_port_decompression_saturation_config_get(int unit, int port, uint32* sat_value)
  10515 {
  10516 
  10517     cprimod_dispatch_type_t __type__;
  10518     int __rv__;        
  10519     SOC_INIT_FUNC_DEFS;
  10520     
  10521     if(sat_value == NULL) {
  10522         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("sat_value NULL parameter"));
  10523     }
  10524     /* Dispatch */
  10525     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10526     if(__type__ >= cprimodDispatchTypeCount) { 
  10527         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10528     }
  10529 
  10530     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_decompression_saturation_config_get) {
  10531         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_cpri_port_decompression_saturation_config_get(unit, port, sat_value);
  10532         _SOC_IF_ERR_EXIT(__rv__);
  10533     } else { 
  10534         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_cpri_port_decompression_saturation_config_get isn't implemented for driver type"));
  10535     }
  10536         
  10537 exit:
  10538     SOC_FUNC_RETURN; 
  10539     
  10540 }
  10541 #endif /* CPRIMOD_SUPPORT */
  10542 
  10543 
  10544 #ifdef CPRIMOD_SUPPORT
  10545 int cprimod_rsvd4_tx_padding_size_set(int unit, int port, uint32 padding_size)
  10546 {
  10547 
  10548     cprimod_dispatch_type_t __type__;
  10549     int __rv__;        
  10550     SOC_INIT_FUNC_DEFS;
  10551     
  10552     /* Dispatch */
  10553     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10554     if(__type__ >= cprimodDispatchTypeCount) { 
  10555         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10556     }
  10557 
  10558     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_padding_size_set) {
  10559         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_padding_size_set(unit, port, padding_size);
  10560         _SOC_IF_ERR_EXIT(__rv__);
  10561     } else { 
  10562         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_padding_size_set isn't implemented for driver type"));
  10563     }
  10564         
  10565 exit:
  10566     SOC_FUNC_RETURN; 
  10567     
  10568 }
  10569 #endif /* CPRIMOD_SUPPORT */
  10570 
  10571 
  10572 #ifdef CPRIMOD_SUPPORT
  10573 int cprimod_rsvd4_tx_padding_size_get(int unit, int port, uint32* padding_size)
  10574 {
  10575 
  10576     cprimod_dispatch_type_t __type__;
  10577     int __rv__;        
  10578     SOC_INIT_FUNC_DEFS;
  10579     
  10580     if(padding_size == NULL) {
  10581         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("padding_size NULL parameter"));
  10582     }
  10583     /* Dispatch */
  10584     _SOC_IF_ERR_EXIT(cprimod_port_cpm_type_get(unit, port, &__type__));
  10585     if(__type__ >= cprimodDispatchTypeCount) { 
  10586         _SOC_EXIT_WITH_ERR(SOC_E_PARAM, ("Driver is out of range"));
  10587     }
  10588 
  10589     if(NULL != __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_padding_size_get) {
  10590         __rv__ = __cprimod__dispatch__[__type__]->f_cprimod_rsvd4_tx_padding_size_get(unit, port, padding_size);
  10591         _SOC_IF_ERR_EXIT(__rv__);
  10592     } else { 
  10593         _SOC_EXIT_WITH_ERR(SOC_E_UNAVAIL, ("cprimod_rsvd4_tx_padding_size_get isn't implemented for driver type"));
  10594     }
  10595         
  10596 exit:
  10597     SOC_FUNC_RETURN; 
  10598     
  10599 }
  10600 #endif /* CPRIMOD_SUPPORT */
  10601 
  10602 
  10603 
  10604 #undef _ERR_MSG_MODULE_NAME
  10605 #endif /* CPRIMOD_SUPPORT */