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 */