//-----------------------------------------------------------------------------
inline void MIH_C_LINK_ADDR_encode(Bit_Buffer_t* bbP, MIH_C_LINK_ADDR_T *dataP) {
//-----------------------------------------------------------------------------
    MIH_C_CHOICE_encode(bbP, &dataP->choice);
    switch (dataP->choice) {
    case MIH_C_CHOICE_MAC_ADDR:
        MIH_C_MAC_ADDR_encode(bbP, &dataP->_union.mac_addr);
        break;
    case MIH_C_CHOICE_3GPP_3G_CELL_ID:
        MIH_C_3GPP_3G_CELL_ID_encode(bbP, &dataP->_union._3gpp_3g_cell_id);
        break;
    case MIH_C_CHOICE_3GPP_2G_CELL_ID:
        MIH_C_3GPP_2G_CELL_ID_encode(bbP, &dataP->_union._3gpp_2g_cell_id);
        break;
    case MIH_C_CHOICE_3GPP_ADDR:
        MIH_C_3GPP_ADDR_encode(bbP, &dataP->_union._3gpp_addr);
        break;
    case MIH_C_CHOICE_3GPP2_ADDR:
        MIH_C_3GPP2_ADDR_encode(bbP, &dataP->_union._3gpp2_addr);
        break;
    case MIH_C_CHOICE_OTHER_L2_ADDR:
        MIH_C_OTHER_L2_ADDR_encode(bbP, &dataP->_union.other_l2_addr);
        break;
    default:
        printf("[MIH_C] ERROR NO KNOWN VALUE FOR ENCODING CHOICE OF MIH_C_LINK_ADDR_T %d\n", dataP->choice);
    }
}
//-----------------------------------------------------------------------------
void MIH_C_QOS_PARAM_VAL_encode(Bit_Buffer_t* bbP, MIH_C_QOS_PARAM_VAL_T *dataP)
{
  //-----------------------------------------------------------------------------
  MIH_C_CHOICE_encode(bbP, &dataP->choice);

  switch (dataP->choice) {
  case 0:
    MIH_C_NUM_COS_TYPES_encode(bbP, &dataP->_union.num_qos_types);
    break;

  case 1:
    MIH_C_MIN_PK_TX_DELAY_LIST_encode(bbP, &dataP->_union.min_pk_tx_delay_list);
    break;

  case 2:
    MIH_C_AVG_PK_TX_DELAY_LIST_encode(bbP, &dataP->_union.avg_pk_tx_delay_list);
    break;

  case 3:
    MIH_C_MAX_PK_TX_DELAY_LIST_encode(bbP, &dataP->_union.max_pk_tx_delay_list);
    break;

  case 4:
    MIH_C_PK_DELAY_JITTER_LIST_encode(bbP, &dataP->_union.pk_delay_jitter_list);
    break;

  case 5:
    MIH_C_PK_LOSS_RATE_LIST_encode(bbP, &dataP->_union.pk_loss_rate_list);
    break;

  default:
    printf("[MIH_C] ERROR NO KNOWN VALUE FOR ENCODING CHOICE OF MIH_C_QOS_PARAM_VAL_T %d\n", dataP->choice);
  }
}