compat_6515.h (4255B)
1 /* 2 * $Id: compat_6515.h,v 2.0 2018/09/20 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2020 Broadcom Inc. All rights reserved. 6 * 7 * RPC Compatibility with sdk-6.5.15 routines 8 */ 9 10 #ifndef _COMPAT_6515_H_ 11 #define _COMPAT_6515_H_ 12 13 #ifdef BCM_RPC_SUPPORT 14 #include <bcm/types.h> 15 #include <bcm/mpls.h> 16 #include <bcm/l3.h> 17 #include <bcm/ipmc.h> 18 19 #ifdef INCLUDE_L3 20 /* IPMC address type. */ 21 typedef struct bcm_compat6515_ipmc_addr_s { 22 bcm_ip_t s_ip_addr; /* IPv4 Source address. */ 23 bcm_ip_t mc_ip_addr; /* IPv4 Destination address. */ 24 bcm_ip6_t s_ip6_addr; /* IPv6 Source address. */ 25 bcm_ip6_t mc_ip6_addr; /* IPv6 Destination address. */ 26 bcm_vlan_t vid; /* VLAN identifier. */ 27 bcm_vrf_t vrf; /* Virtual Router Instance. */ 28 bcm_cos_t cos; /* COS based on dst IP multicast addr. */ 29 int ts; /* Source port or TGID bit. */ 30 int port_tgid; /* Source port or TGID. */ 31 int v; /* Valid bit. */ 32 int mod_id; /* Module ID. */ 33 bcm_multicast_t group; /* Use this index to program IPMC table 34 for XGS chips based on flags value. 35 For SBX chips it is the Multicast 36 Group index */ 37 uint32 flags; /* See BCM_IPMC_XXX flag definitions. */ 38 int lookup_class; /* Classification lookup class ID. */ 39 bcm_fabric_distribution_t distribution_class; /* Fabric Distribution Class. */ 40 bcm_if_t l3a_intf; /* L3 interface associated with route. */ 41 int rp_id; /* Rendezvous point ID. */ 42 bcm_ip_t s_ip_mask; /* IPv4 Source subnet mask. */ 43 bcm_if_t ing_intf; /* L3 interface associated with this 44 Entry */ 45 bcm_ip_t mc_ip_mask; /* IPv4 Destination subnet mask. */ 46 bcm_ip6_t mc_ip6_mask; /* IPv6 Destination subnet mask. */ 47 bcm_multicast_t group_l2; /* Use this index to program IPMC table 48 for l2 recipients if TTL/RPF check 49 fails. */ 50 uint32 stat_id; /* Object statistics ID. */ 51 int stat_pp_profile; /* Statistics profile. */ 52 bcm_ip6_t s_ip6_mask; /* IPv6 Source subnet mask. */ 53 int priority; /* Entry priority. */ 54 } bcm_compat6515_ipmc_addr_t; 55 56 /* Add new IPMC group. */ 57 extern int bcm_compat6515_ipmc_add( 58 int unit, 59 bcm_compat6515_ipmc_addr_t *data); 60 61 /* Find info of an IPMC group. */ 62 extern int bcm_compat6515_ipmc_find( 63 int unit, 64 bcm_compat6515_ipmc_addr_t *data); 65 66 /* Remove IPMC group. */ 67 extern int bcm_compat6515_ipmc_remove( 68 int unit, 69 bcm_compat6515_ipmc_addr_t *data); 70 71 #endif 72 /* Port Resource Configuration */ 73 typedef struct bcm_compat6515port_resource_s { 74 uint32 flags; /* BCM_PORT_RESOURCE_XXX */ 75 bcm_gport_t port; /* Local logical port number to connect to 76 the given physical port */ 77 int physical_port; /* Local physical port, -1 if the logical to 78 physical mapping is to be deleted */ 79 int speed; /* Initial speed after FlexPort operation */ 80 int lanes; /* Number of PHY lanes for this physical 81 port */ 82 bcm_port_encap_t encap; /* Encapsulation mode for port */ 83 bcm_port_phy_fec_t fec_type; /* fec_type for port */ 84 int phy_lane_config; /* serdes pmd lane config for port */ 85 int link_training; /* link training on or off */ 86 int roe_compression; /* roe_compression enable */ 87 } bcm_compat6515_port_resource_t; 88 89 #endif 90 #endif /* !_COMPAT_6515_H */