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

mpls_lm_dm_pkt.h (3139B)


      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:        mpls_lm_dm_pkt.h
      8  * Purpose:     MPLS_LM_DM Packet Format definitions
      9  *              common to SDK and uKernel.
     10  */
     11 
     12 #ifndef   _SOC_SHARED_MPLS_LM_DM_PKT_H_
     13 #define   _SOC_SHARED_MPLS_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 <shared/pack.h>
     22 
     23 /*
     24  * Network Packet Format definitions
     25  *
     26  * Note: LENGTH is specified in bytes unless noted otherwise
     27  */
     28  
     29 /* MPLS_LM_DM OLP HEADER LENGTH Tx */
     30 #define MPLS_LM_DM_OLP_L2_HDR_LEN                   18
     31 #define MPLS_LM_DM_OLP_OAM_HDR_LEN                  16
     32 #define MPLS_LM_DM_OLP_HDR_LEN          (MPLS_LM_DM_OLP_L2_HDR_LEN + \
     33                                          MPLS_LM_DM_OLP_OAM_HDR_LEN)
     34 /* MPLS_LM_DM OLP HEADER LENGTH Rx */
     35 #define MPLS_LM_DM_OLP_OAM_HDR_LEN_RX               20
     36 #define MPLS_LM_DM_OLP_HDR_LEN_RX       (MPLS_LM_DM_OLP_L2_HDR_LEN + \
     37                                          MPLS_LM_DM_OLP_OAM_HDR_LEN_RX)
     38 
     39 /* MPLS_LM_DM Control Packet lengths */
     40 #define SHR_MPLS_LM_DM_HEADER_LENGTH                4
     41 #define SHR_MPLS_LM_DM_ACH_LENGTH                   4
     42 #define SHR_MPLS_LM_DM_ACH_TYPE_LENGTH              2
     43 
     44 /* Associated Channel Header */
     45 #define SHR_MPLS_LM_DM_ACH_FIRST_NIBBLE             0x1
     46 #define SHR_MPLS_LM_DM_ACH_VERSION                  0x0
     47 
     48 /* ACH Types for MPLS LM/DM Feature */
     49 #define SHR_MPLS_LM_DM_ACH_TYPE_DLM                 0x000A
     50 #define SHR_MPLS_LM_DM_ACH_TYPE_ILM                 0x000B
     51 #define SHR_MPLS_LM_DM_ACH_TYPE_DM                  0x000C
     52 #define SHR_MPLS_LM_DM_ACH_TYPE_DLM_DM              0x000D
     53 #define SHR_MPLS_LM_DM_ACH_TYPE_ILM_DM              0x000E
     54 
     55 /* Msg Flags */
     56 #define SHR_MPLS_LM_DM_FLAG_PKT_TYPE_DLM            (1<<0)
     57 #define SHR_MPLS_LM_DM_FLAG_PKT_TYPE_DM             (1<<1)
     58 #define SHR_MPLS_LM_DM_FLAG_PKT_TYPE_DLM_DM         (1<<2)
     59 #define SHR_MPLS_LM_DM_FLAG_PKT_TYPE_ILM            (1<<3)
     60 #define SHR_MPLS_LM_DM_FLAG_PKT_TYPE_ILM_DM         (1<<4)
     61 #define SHR_MPLS_LM_DM_FLAG_PKT_TYPE_COMBINED       (1<<5)
     62 
     63 #define SHR_MPLS_LM_DM_PASSIVE_FLAG                 (1<<6)                          
     64 #define SHR_MPLS_LM_DM_SINGLE_ENDED_FLAG            (1<<7)
     65 
     66 #define SHR_MPLS_LM_DM_FLAG_LOSS_ADDED              (1<<8)
     67 #define SHR_MPLS_LM_DM_FLAG_DELAY_ADDED             (1<<9)
     68 
     69 #define SHR_MPLS_LM_DM_BYTE_COUNT_FLAG              (1<<10)
     70 #define SHR_MPLS_LM_DM_64_BIT_FLAG                  (1<<11)
     71 
     72 /* Init Flags */
     73 #define SHR_MPLS_LM_DM_PM_MODE_RAW                  (1<<0)
     74 #define SHR_MPLS_LM_DM_PM_MODE_STATS                (1<<1)
     75 
     76 
     77 /* ACH type Mask */
     78 #define SHR_MPLS_LM_DM_PKT_TYPE_MASK                0x001F
     79 
     80 /* MPLS */
     81 #define SHR_MPLS_LM_DM_MPLS_ROUTER_ALERT_LABEL      1
     82 #define SHR_MPLS_LM_DM_MPLS_GAL_LABEL               13
     83 #define SHR_MPLS_LM_DM_MPLS_PW_LABEL                0xFF
     84 #define SHR_MPLS_LM_DM_L2_ETYPE_MPLS_UCAST          0x8847
     85 
     86 #endif /* _SOC_SHARED_MPLS_LM_DM_PKT_H_ */