commit 0f6968087779988f36a68423f4eceb4e92874035
Author: Divakar <email address hidden>
Date: Sat Feb 27 09:37:41 2016 +0530
Use innerpacket's destip as source ip while doing Tx Port mirroring
When Transmit port mirroring is enabled, packet received on Fabric
interface is right now mirrored using the source IP of the inner packet.
This results in RPF failure on Analyzer VM's compute node because the
compute node which is doing the port mirroring is using other compute
node's VM IP.
As a fix, if mirroring is Tax mirroring, rather using inner packets
source ip, dest ip is used, so that Analyzer VM's RPF will not have any
issues
Using the correct FMD and setting pkt_type correctly for mirrored packets
If port mirroring is enabled, cloned packet is subjected to mirroring
using the original packet's forwarding metadata. If mirroring code
changes the metadata content, original packet will be forwarded as per
the changed fmd and results in wrong forwarding.
In the current case, mirroring is to a VM in different VN (hence new VRF)
and mirroring code is modifying the fmd's dvrf to new VRF.
The original ARP packet's L2 and L3 looksups are happening on the
modified VRF resulting in ARP getting dropped.
Also the type of packet is identified using vr_pkt_type() after packet
is mirrored. This is resulting in wrong pkt_type being used for mirrored
packet hence the source IP packet the mirrored packet is not correctly
computed.
As a fix, new FMD is used for mirrored packet and packet type is
identified before mirroring itself.
Reviewed: https:/ /review. opencontrail. org/18616 github. org/Juniper/ contrail- vrouter/ commit/ 0f6968087779988 f36a68423f4eceb 4e92874035
Committed: http://
Submitter: Zuul
Branch: R2.20
commit 0f6968087779988 f36a68423f4eceb 4e92874035
Author: Divakar <email address hidden>
Date: Sat Feb 27 09:37:41 2016 +0530
Use innerpacket's destip as source ip while doing Tx Port mirroring
When Transmit port mirroring is enabled, packet received on Fabric
interface is right now mirrored using the source IP of the inner packet.
This results in RPF failure on Analyzer VM's compute node because the
compute node which is doing the port mirroring is using other compute
node's VM IP.
As a fix, if mirroring is Tax mirroring, rather using inner packets
source ip, dest ip is used, so that Analyzer VM's RPF will not have any
issues
Using the correct FMD and setting pkt_type correctly for mirrored packets
If port mirroring is enabled, cloned packet is subjected to mirroring
using the original packet's forwarding metadata. If mirroring code
changes the metadata content, original packet will be forwarded as per
the changed fmd and results in wrong forwarding.
In the current case, mirroring is to a VM in different VN (hence new VRF)
and mirroring code is modifying the fmd's dvrf to new VRF.
The original ARP packet's L2 and L3 looksups are happening on the
modified VRF resulting in ARP getting dropped.
Also the type of packet is identified using vr_pkt_type() after packet
is mirrored. This is resulting in wrong pkt_type being used for mirrored
packet hence the source IP packet the mirrored packet is not correctly
computed.
As a fix, new FMD is used for mirrored packet and packet type is
identified before mirroring itself.
Change-Id: If6c1d75692dbd2 9daf8594d35d145 2e5d5efad77
closes-bug: #1549727
closes-bug: #1550312