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

eth_lm_dm_pkt.h (3083B)


      1 /* 
      2  * 
      3  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      4  * 
      5  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
      6  *
      7  * File:        eth_lm_dm_pkt.h
      8  * Purpose:     ETH_LM_DM Packet Format definitions
      9  *              common to SDK and uKernel.
     10  */
     11 
     12 #ifndef   _ETH_LM_DM_PKT_H_
     13 #define   _ETH_LM_DM_PKT_H_
     14 
     15 #ifdef BCM_UKERNEL
     16   /* Build for uKernel not SDK */
     17   #include "sdk_typedefs.h"
     18 #else
     19   #include <sal/types.h>
     20 #endif
     21 #include <soc/shared/olp_pkt.h>
     22 #include <soc/shared/olp_pack.h>
     23 #include <shared/pack.h>
     24 
     25 
     26 
     27 /*******************************************
     28  * Pack/Unpack Macros
     29  * 
     30  * Data is packed/unpacked in/from Network byte order
     31  */
     32 #define SHR_ETH_LM_DM_ENCAP_PACK_U8(_buf, _var)     _SHR_PACK_U8(_buf, _var)
     33 #define SHR_ETH_LM_DM_ENCAP_PACK_U16(_buf, _var)    _SHR_PACK_U16(_buf, _var)
     34 #define SHR_ETH_LM_DM_ENCAP_PACK_U32(_buf, _var)    _SHR_PACK_U32(_buf, _var)
     35 #define SHR_ETH_LM_DM_ENCAP_UNPACK_U8(_buf, _var)   _SHR_UNPACK_U8(_buf, _var)
     36 #define SHR_ETH_LM_DM_ENCAP_UNPACK_U16(_buf, _var)  _SHR_UNPACK_U16(_buf, _var)
     37 #define SHR_ETH_LM_DM_ENCAP_UNPACK_U32(_buf, _var)  _SHR_UNPACK_U32(_buf, _var)
     38 
     39 
     40 /******************************************
     41  * Network Packet Format definitions
     42  *
     43  * Note: LENGTH is specified in bytes unless noted otherwise
     44  */
     45 
     46 /* ETH_LM_DM Control Packet lengths */
     47 #define SHR_ETH_LM_DM_HEADER_LENGTH 						4               
     48 
     49 /*Macros for Packet replacement offset */
     50 #define ETH_LM_DM_RPL_OFFSET_START              14
     51 #define ETH_LM_DM_RPL_OFFSET_DIVIDER_BY_SHIFT   1
     52 
     53 
     54 /* Ether Type */
     55 #define SHR_ETH_LM_DM_L2_VLAN_ETYPE                  0x8100
     56 #define SHR_ETH_LM_DM_L2_ETYPE_OAM	                 0x8902
     57 #define SHR_ETH_LM_DM_L2_HEADER_TAGGED_LENGTH        18
     58 #define SHR_ETH_LM_DM_L2_HEADER_LENGTH        		 12
     59 #define SHR_ETH_LM_DM_L2_HEADER_TAGGED_ETYPE_OFFSET  16
     60 
     61 /* ETH_LM_DM op-code */
     62 #define SHR_ETH_LM_DM_OPCODE_LEN                     1
     63 #define SHR_ETH_LM_DM_OPCODE_LM_PREFIX              42
     64 #define SHR_ETH_LM_DM_OPCODE_DM_PREFIX              44
     65 
     66 
     67 #define SHR_ETH_LM_DM_OLP_L2_HEADER_LENGTH			18
     68 #define SHR_ETH_LM_DM_OLP_RX_HEADER_LENGTH			20
     69 
     70 
     71 
     72 /*************************************
     73  * ETH_LM_DM Control Packet Format
     74  */
     75 
     76 /*
     77  * ETH_LM_DM Y.1731 Header
     78  */
     79 typedef struct shr_eth_lm_dm_header_s {
     80     /* Mandatory */
     81 #ifdef LE_HOST
     82     uint32 tlv_offset:8,
     83     	   flags_type:1,
     84            flags_rsvd:7,
     85            opcode:8,
     86            version:5,
     87            mel:3;
     88 #else
     89     uint32 mel:3,
     90            version:5,
     91            opcode:8,
     92            flags_rsvd:7,
     93            flags_type:1,
     94            tlv_offset:8;
     95 #endif  /* LE_HOST */
     96 } shr_eth_lm_dm_header_t;
     97 
     98 typedef struct shr_eth_lm_dm_slm_info_header_s {
     99 	
    100 	uint16 src_mep_id;
    101 	uint16 resp_mep_id;
    102 	uint32 test_id;
    103 
    104   
    105 } shr_eth_lm_dm_slm_info_header_t;
    106 
    107 
    108 /*
    109  * ETH_LM_DM OLP Header
    110  */
    111 
    112 typedef struct soc_olp_rx_hdr olp_rx_hdr_t;
    113 
    114 typedef	struct soc_olp_tx_hdr olp_tx_hdr_t;
    115 
    116 /* L2 Header */
    117 typedef struct soc_olp_l2_hdr_s  _olp_l2_header_t;
    118 
    119 
    120 
    121 
    122 #endif /* _ETH_LM_DM_PKT_H_ */