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

l3.h (1640B)


      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  * This file defines L3 constants 
      8  *
      9  * Its contents are not used directly by applications; it is used only
     10  * by header files of parent APIs which need to share  L3 constants.
     11  */
     12 
     13 #ifndef _SHR_L3_H
     14 #define _SHR_L3_H
     15 
     16 /* 
     17  *  Reserved VRF values 
     18  */
     19 #define _SHR_L3_VRF_OVERRIDE  (-1) /* Matches before vrf specific entries.*/
     20 #define _SHR_L3_VRF_GLOBAL    (-2) /* Matches after vrf specific entries. */
     21 #define _SHR_L3_VRF_INVALID   (-3) /* Invalid VRF ID.                     */
     22 #define _SHR_L3_VRF_DEFAULT    (0) /* Default vrf id.                     */
     23 
     24 #define _SHR_L3_IP6_ADDRLEN       (16)  /* IPv6 address length in bytes.      */
     25 #define _SHR_L3_IP6_ADDR_WORD_LEN (4)  /* IPv6 address length in bytes.      */
     26 #define _SHR_L3_IP6_MAX_NETLEN    ((_SHR_L3_IP6_ADDRLEN) * (8))
     27 #define _SHR_L3_IP_ADDRLEN     (4)   /* IPv4 address length in bytes.      */
     28 #define _SHR_L3_IP_MAX_NETLEN  ((_SHR_L3_IP_ADDRLEN) * (8))
     29 #define _SHR_L3_EGRESS_IDX_MIN   (0x186A0) /* Egress object start index    */
     30 
     31 typedef uint32  _shr_ip_addr_t;                          /* IP Address   */
     32 typedef uint8   _shr_ip6_addr_t[_SHR_L3_IP6_ADDRLEN];    /* IPv6 Address */
     33 
     34 extern int _shr_ip6_mask_create(uint8 *ip6, int len);
     35 extern int _shr_ip6_mask_length(uint8 *mask);
     36 extern uint32 _shr_ip_mask_create(int len);
     37 extern int _shr_ip_mask_length(uint32 mask);
     38 extern int _shr_ip6_addr_compare(uint8 *addr1, uint8 *addr2);
     39 
     40 #endif	/* !_SHR_L3_H */