Mirror Commands
Chips mirror actions:
PRONTO3290 PRONTO3296 PRONTO3295(TR2)(egress mirror=true)
PRONTO3780 PRONTO3920 PRONTO3922 PRONTO3930 PRONTO3960 PRONTO3965 PRONTO3980 PRONTO3920 PRONTO3924(TD)
ES4654 AS4610_54P AS4610_54T AS4610_30P AS4610_30T(Helix4)(egress mirror=true)
PRONTO5101 PRONTO5401 AS6701_32X N2632XL N2948_6XL AS6712_32X AS5712_54X S4048 ARCTICA4806XP(TD2)
AS5812_54T AS5812_54X(TD2P)
DCS7032Q28 AS7712_32X Z9100 (TH)
Note:Egress mirror works correctly only on those switches that the parameter 'egress mirror' is true.According to above chips,3290(Firebolt3),3296(Triumph2),helix4 support egress mirror.On other switches,the mirror port' traffics' action are not certain.
Below is the test result on some kinds of chips:
p3290(Firebolt3):
module name | mirror dst traffic test result |
multitable | pass |
udf/ttp multicast | pass |
push mpls/pop mpls | failed(3290 do not support mpls) |
egress mode | pass |
flow control | pass |
l2mpls | failed(3290 do not support mpls) |
p3297(trumph2):
module name | mirror dst traffic test result |
multitable | pass |
ttp multicast | pass |
udf/push mpls/pop mpls | pass |
egress mode | pass |
flow control | mirror test pass |
l2mpls | pass |
as5812_54t(trident2plus):
module name | mirror dst traffic test result |
multitable | pass |
ttp multicast | failed |
udf/push mpls/pop mpls | pass |
egress mode | pass |
flow control | mirror test pass |
l2mpls | failed(mirror port packets has one more vlan 4095) |
vxlan/l2gre/NAT | pass |
p6701(trident2):
module name | mirror dst traffic test result |
multitable | pass |
ttp multicast | failed |
udf/push mpls/pop mpls | pass |
egress mode | pass |
flow control | pass |
l2mpls/nat | pass |
vxlan/l2gre | failed |
p3920(trident+):
module name | mirror dst traffic test result |
multitable | pass |
ttp multicast | failed |
udf/push mpls/pop mpls | pass |
egress mode | pass |
flow control | pass |
l2mpls | pass |
4610_54t_b(helix4):
module name | mirror dst traffic test result |
multitable | pass |
ttp multicast /udf | pass |
push mpls/pop mpls | failed(4610 do not support mpls) |
egress mode | pass |
flow control | pass |
l2mpls | failed(4610 do not support l2mpls) |
as7712_32x(tomhark):
module name | mirror dst traffic test result |
multitable | pass |
ttp multicast | failed |
pop mpls/udf | failed(do not support mpls) |
egress mode | pass |
flow control /l2mpls/nat/push mpls(ip packets) | pass |
vxlan/l2gre | failed |
Create One Mirror
ovs-vsctl [--OPTION] -- set bridge <bridge> mirrors=@m -- --id=@<port1> get Port <port1> -- --id=@<port2> get Port <port2> [-- --id=@<port3> get Port <port3>]-- --id=@m create Mirror name=<mirror-name> select-src-port=@<port1>[,@<port3>] select-dst-port=@<port1>[,@<port3>] output-port=@<port2>
PicOS OVS supports mirroring, select-src-port and select-dst-port represent the source ports of mirroring, select-dst-port means some packets (in switch chip) will go-out from the specified port (egress); select-src-port means some packets will enter the specified port (ingress); output_port means the monitor port. PicOS OVS supports up to 4 mirrors.
Before PicOS2.10 ovs only support configure physical port as output_port, from PicOS2.10 ovs also support lag interface as output_port.
Example1:
Add port ge-1/1/1, ge-1/1/2 and ge-1/1/3 to mirror, ge-1/1/1 and ge-1/1/2 as ingress and egress, the output port is ge-1/1/3.
root@PicOS-OVS$ovs-vsctl set bridge br0 mirrors=@m -- --id=@ge-1/1/1 get Port ge-1/1/1 -- --id=@ge-1/1/2 get Port ge-1/1/2 -- --id=@ge-1/1/3 get Port ge-1/1/3 -- --id=@m create Mirror name=mymirror select-src-port=@ge-1/1/1,@ge-1/1/2 select-dst-port=@ge-1/1/1,@ge-1/1/2 output-port=@ge-1/1/3
Example2:
Add port ge-1/1/1, ge-1/1/2 and ae1 to mirror, ge-1/1/1 and ge-1/1/2 as ingress and egress, the output port is ae1.
root@PicOS-OVS$ovs-vsctl set bridge br0 mirrors=@m -- --id=@ge-1/1/1 get Port ge-1/1/1 -- --id=@ge-1/1/2 get Port ge-1/1/2 -- --id=@ae1 get Port ae1 -- --id=@m create Mirror name=mymirror select-src-port=@ge-1/1/1,@ge-1/1/2 select-dst-port=@ge-1/1/1,@ge-1/1/2 output-port=@ae1
ovs-vsctl [--OPTION] destroy <table> <record> – clear Bridge <bridge> mirrors
Example:
Delete a mirror named mymirror from mirror table in bridge br0.
admin@PicOS-OVS$ ovs-vsctl destroy Mirror mymirror -- clear Bridge br0 mirrors or admin@PicOS-OVS$ ovs-vsctl clear Bridge br0 mirrors
Create Two Mirrors
admin@PicOS-OVS$ovs-vsctl -- set bridge br-s mirrors=@m,@m1 -- --id=@ge-1/1/1 get Port ge-1/1/1 -- --id=@ge-1/1/3 get Port ge-1/1/3 -- --id=@m create Mirror name=mymirror select-src-port=@ge-1/1/1 output-port=@ge-1/1/3 -- --id=@m1 create Mirror name=mirror1 select-src-port=@ge-1/1/3 output-port=@ge-1/1/1
Add one mirror and monitor port is lag
admin@PicOS-OVS$ovs-vsctl -- add bridge br-s mirrors @m -- --id=@te-1/1/1 get Port te-1/1/1 -- --id=@te-1/1/2 get Port te-1/1/2 -- --id=@ae1 get Port ae1 -- --id=@m create Mirror name=mymirror select-src-port=@te-1/1/1 select-src-port=@te-1/1/2 output-port=@ae1
Delete one mirror
admin@PicOS-OVS$ovs-vsctl remove bridge br0 mirrors 76fd4479-67e9-4c65-8edb-b99d8706d8f9
Copyright © 2024 Pica8 Inc. All Rights Reserved.