L3
Note
This command belongs to the shell mode for newer (logical-table) switch chips and is not available on Trident 3.
Manage L3 (IP) addresses
Built-in help
Usages:
l3 init - Init L3 function.
l3 detach - Detach L3 function.
l3 ing_intf add
[INTF=<val>] VRF=<val> [UrfpMode=<val>] [INtfClass=<val>]
[QOSmapID=<val>] [DSCPTrust=<val>] [UrpfDefaultRouteCheck=<val>]
[PIM_BIDIR=<val>
l3 ing_intf delete INTF=<val>
l3 ing_intf get INTF=<val>
l3 ing_intf clear
l3 ing_intf show
l3 intf add
[INTF=<val>] Vlan=<val> MAC=<val> [UnderLay=<val>]
l3 intf delete INTF=<val>
l3 intf get INTF=<val>
l3 intf clear
l3 intf show
l3 egress add
[EgrID=<val>] MAC=<val> Port=<val> INTF=<val> [MOdule=<val>]
[UnderLay=<val>] [Trunk=<val>] [L2tocpu=<val>]
l3 egress delete EgrID=<val>
l3 egress get EgrID=<val>
l3 egress clear
l3 egress show
l3 ecmp add
[GRouPID=<val>] [MaxPaths=<val>] [DynamicMode=<val>] [UnderLay=<val>]
OL_INTF0=<val> OL_INTF1=<val> ... OL_INTF31=<val>
UL_INTF0=<val> UL_INTF1=<val> ... UL_INTF31=<val>
[SECondary=<val>]
l3 ecmp delete GRouPID=<val>
l3 ecmp get GRouPID=<val>
l3 ecmp member insert GRouPID=<val> OL_INTF=<val> UL_INTF=<val>
l3 ecmp member remove GRouPID=<val> OL_INTF=<val> UL_INTF=<val>
l3 ecmp clear
l3 ecmp show
l3 ecmp perf
l3 host add
{ip=<val> | ip6=<val>} [vrf=<val>] [tc=<val>] intf=<val> [ul_intf=<val>]
[ecmp=<bool>] [<Replace>=<bool>] [<PortDBID>=<val>]
l3 host delete
{ip=<val> | ip6=<val>} [vrf=<val>] [tc=<val>] [<PortDBID>=<val>]
l3 host get
{ip=<val> | ip6=<val>} [vrf=<val>] [tc=<val>] [<PortDBID>=<val>]
l3 host clear [v6=<bool>]
l3 host show [v6=<bool>] [start=<val>] [end=<val>]
l3 host age
l3 route add
{ip=<val> | ip6=<val> | Mac=<val>} {masklen=<val> | MacMask=<val>}
[vrf=<val>] [tc=<val>] [ecmp=<bool>]
intf=<val> [ul_intf=<val>] [DEFaultIntf=<val>] [DstDiscard=<bool>] [<Replace>=<bool>]
[FORTE=<bool>] [AggHostWidth=<val>] [AggHostOffset=<val>]
[DENse=<bool>] [AFR=<bool>] [BASE=<val>] [<PortDBID>=<val>]
l3 route delete
{ip=<val> | ip6=<val> | Mac=<val>} {masklen=<val> | MacMask=<val>}
[vrf=<val>] [tc=<val>] [FORTE=<bool>]
[DENse=<bool>] [AFR=<bool>] [<PortDBID>=<val>]
l3 route get
{ip=<val> | ip6=<val> | Mac=<val>} {masklen=<val> | MacMask=<val>}
[vrf=<val>] [tc=<val>] [FORTE=<bool>]
[DENse=<bool>] [AFR=<bool>] [BASE=<val>] [COUNT=<val>] [<PortDBID>=<val>]
l3 route clear [v6=<bool>] [vrf=<val>]
[DENse=<bool>] [AFR=<bool>]
- vrf: -1 - OVERRIDE, -2 - GLOBAL; -4 - VRF_ALL.
l3 route show [v6=<bool>] [start=<val>] [end=<val>]
[DENse=<bool>] [AFR=<bool>]
l3 route perf v4v6=<val> OPs=<val> [VRF_OPs=<val>] [loops=<val>]
[nsets=<val>] [DataMode=<val>] [UseApi=<bool>] [FORTE=<bool>]
[DENse=<bool>] [AFR=<bool>]
- Test L3 route operation performance.
- v4v6: 1 - IPv4; 2 - IPv6; 3 - IPv4 + IPv6; 4 - IPv6 + IPv4.
- OPs: B0 - Add, B1 - Update, B2 - Lookup, B3 - Delete.
- VRFs: B0 - VRF, B1 - GLOBAL, B2 - OVERRIDE.
Default: 3 for parallel, 1 for combined.
- loops: Number of runs. Forced to 1 if no delete operation.
- nsets: Number of sets.
- DataMode: 1 - Reduced, 2 - Full.(for XFS only), 3 - 32 or 49 bits data
- UseApi: 1 - Use BCM API.
- FORTE: 1 - Use FORTE ALPM.
- DENse: 1 - Add dense routes.
- AFR: 1 - Add AFR routes.
l3 tunnel_init create [<TnlId>=<val>] <TYpe>=<val> <TTL>=<val>
<DIP>=<val> <SIP>=<val> <DSCPEcnSel>=<val> <DSCPV>=<val>
<DFSEL4>=<val> <DFSEL6>=<val> <SIP6>=<val> <DIP6>=<val>
<DSCPEcnMap>=<val>
l3 tunnel_init get <TnlId>=<val>
l3 tunnel_init destroy <TnlId>=<val>
l3 tunnel_init set <INtf>=<val> <TYpe>=<val> <TTL>=<val>
<Mac>=<val> <DIP>=<val> <SIP>=<val> <DSCPSel>=<val> <DSCPV>=<val>
<DFSEL4>=<val> <DFSEL6>=<val> <SIP6>=<val> <DIP6>=<val>
l3 tunnel_init show <INtf>=<val>
l3 tunnel_init clear <INtf>=<val>
l3 tunnel_term add <TYPE>=<val> <DIP>=<val> <SIP>=<val>
<DipMaskLen>=<val> <SipMaskLen>=<val> <DIP6>=<val> <SIP6>=<val>
<OuterTTL>=<bool>
<OuterDSCP>=<val>
<VLanid>=<val>
<Replace>=<bool> <EM>=<bool>
l3 tunnel_term delete <TYPE>=<val> <DIP>=<val> <SIP>=<val> <EM>=<bool>
<DipMaskLen>=<val> <SipMaskLen>=<val> <DIP6>=<val> <SIP6>=<val>
l3 tunnel_term show <TYPE>=<val> <DIP>=<val> <SIP>=<val> <EM>=<bool>
<DipMaskLen>=<val> <SipMaskLen>=<val> <DIP6>=<val> <SIP6>=<val>
l3 nat_egress add <NAPT>=<val> <SAT>=<val> <DNAT>=<val>
<SNAT_ID>=<val> <DNAT_ID>=<val>
<SIP>=<val> <DIP>=<val>
<SPORT>=<val> <DPORT>=<val>
l3 nat_egress get <NAPT>=<val> <SAT>=<val> <DNAT>=<val>
<SNAT_ID>=<val> <DNAT_ID>=<val>
l3 nat_egress destroy <NAPT>=<val> <SAT>=<val> <DNAT>=<val>
<SNAT_ID>=<val> <DNAT_ID>=<val>
l3 nat_egress show <NAPT>=<val> <SAT>=<val> <DNAT>=<val>
l3 nat_ingress add <NAPT>=<val> <DST_DISCARD>=<val>
<IP>=<val> <VRF>=<val> <PROTO>=<val> <L4_PORT>=<val>
<NAT_ID>=<val> <NEXTHOP>=<val>
<SREALM_ID>=<val> <CLASS_ID>=<val>
l3 nat_ingress get <NAPT>=<val> <DST_DISCARD>=<val>
<IP>=<val> <VRF>=<val> <PROTO>=<val> <L4_PORT>=<val>
l3 nat_ingress delete <NAPT>=<val> <DST_DISCARD>=<val>
<IP>=<val> <VRF>=<val> <PROTO>=<val> <L4_PORT>=<val>
l3 nat_ingress show <NAPT>=<val> <DST_DISCARD>=<val>
l3 large_nat_egress add <NAPT>=<val> <SNAT>=<val> <DNAT>=<val>
<NAT_ID>=<val>
<SIP>=<val> <DIP>=<val>
<SPORT>=<val> <DPORT>=<val>
l3 large_nat_egress get <NAPT>=<val> <SNAT>=<val> <DNAT>=<val>
<NAT_ID>=<val>
l3 large_nat_egress delete <NAPT>=<val> <SNAT>=<val> <DNAT>=<val>
<NAT_ID>=<val>
l3 large_nat_egress show <NAPT>=<val> <SNAT>=<val> <DNAT>=<val>
l3 large_nat_ingress add <NAPT>=<val> <SNAT>=<val> <DNAT>=<val>
<IP>=<val> <VRF>=<val> <PROTO>=<val> <L4_PORT>=<val>
<NAT_ID>=<val> <NEXTHOP>=<val>
<REALM_ID>=<val> <CLASS_ID>=<val>
l3 large_nat_ingress get <NAPT>=<val> <SNAT>=<val> <DNAT>=<val>
<IP>=<val> <VRF>=<val> <PROTO>=<val> <L4_PORT>=<val>
l3 large_nat_ingress delete <NAPT>=<val> <SNAT>=<val> <DNAT>=<val>
<IP>=<val> <VRF>=<val> <PROTO>=<val> <L4_PORT>=<val>
l3 large_nat_ingress show <NAPT>=<val> <SNAT>=<val> <DNAT>=<val>
l3 large_nat_egress_ctrl add <NAPT>=<val> <SNAT>=<val> <DNAT>=<val>
<IP>=<val> <L4_PORT>=<val>
<ING_INTF>=<val> <CLASS_ID>=<val>
l3 large_nat_egress_ctrl get <NAPT>=<val> <SNAT>=<val> <DNAT>=<val>
l3 large_nat_egress_ctrl delete <NAPT>=<val> <SNAT>=<val> <DNAT>=<val>
l3 large_nat_egress_ctrl show <NAPT>=<val> <SNAT>=<val> <DNAT>=<val>
l3 aacl add
{ip=<val> | ip6=<val>} masklen=<val> l4_port=<val>
l4_port_mask=<mask> vrf=<val> vrf_mask=<mask>
mac=<val> ip_protocol=<val> tcp_flags=<val> ip_flags=<val>
[<Replace>=<bool>] [<ip_src>=<bool>] [<class_id>=<val>] [<forte>=<bool>]
- l4_port_mask: If mask_value is not 0xffff, it will be treated as 0.
- vrf_mask: If mask_value is not 0xffff, it will be treated as 0.
l3 aacl delete
{ip=<val> | ip6=<val>} masklen=<val> l4_port=<val>
l4_port_mask=<mask> vrf=<val> vrf_mask=<mask>
mac=<val> ip_protocol=<val> tcp_flags=<val> ip_flags=<val>
[<ip_src>=<bool>] [<forte>=<bool>]
l3 aacl get
{ip=<val> | ip6=<val>} masklen=<val> l4_port=<val>
l4_port_mask=<mask> vrf=<val> vrf_mask=<mask>
mac=<val> ip_protocol=<val> tcp_flags=<val> ip_flags=<val>
[<ip_src>=<bool>] [<forte>=<bool>]
l3 aacl clear [v6=<bool>] [<ip_src>=<bool>] [<forte>=<bool>]
l3 aacl show [v4v6=<bool>] [<ip_src>=<bool>] [<forte>=<bool>]
- v4v6: 0 - IPv4 + IPv6; 1 - IPv4; 2 - IPv6.
l3 aacl perf v4v6=<val> OPs=<val> [loops=<val>]
[nsets=<val>] [UseApi=<bool>] [ip_src=<bool>]
- Test L3 aacl operation performance.
- v4v6: 1 - IPv4; 2 - IPv6; 3 - IPv4 + IPv6; 4 - IPv6 + IPv4.
- OPs: B0 - Add, B1 - Update, B2 - Lookup, B3 - Delete.
- loops: Number of runs. Forced to 1 if no delete operation.
- nsets: Number of sets.
- UseApi: 1 - Use BCM API.
- ip_src: 0 - Destination address and dst L4 port.
1 - Source address and src L4 port.