Skip to content

Commit

Permalink
Merge "Using the correct FMD and setting pkt_type correctly for mirro…
Browse files Browse the repository at this point in the history
…red packets" into R3.0
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Feb 26, 2016
2 parents 16c05b7 + 747ec6e commit c959ff9
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
10 changes: 5 additions & 5 deletions dp-core/vr_datapath.c
Expand Up @@ -546,16 +546,16 @@ vr_virtual_input(unsigned short vrf, struct vr_interface *vif,
fmd.fmd_vlan = vlan_id;
fmd.fmd_dvrf = vrf;

if (vif->vif_flags & VIF_FLAG_MIRROR_RX) {
fmd.fmd_dvrf = vif->vif_vrf;
vr_mirror(vif->vif_router, vif->vif_mirror_id, pkt, &fmd);
}

if (vr_pkt_type(pkt, 0, &fmd) < 0) {
vif_drop_pkt(vif, pkt, 1);
return 0;
}

if (vif->vif_flags & VIF_FLAG_MIRROR_RX) {
fmd.fmd_dvrf = vif->vif_vrf;
vr_mirror(vif->vif_router, vif->vif_mirror_id, pkt, &fmd);
}

/*
* we really do not allow any broadcast packets from interfaces
* that are part of transparent service chain, since transparent
Expand Down
16 changes: 11 additions & 5 deletions dp-core/vr_mirror.c
Expand Up @@ -368,22 +368,28 @@ int
vr_mirror(struct vrouter *router, uint8_t mirror_id,
struct vr_packet *pkt, struct vr_forwarding_md *fmd)
{
bool reset;
unsigned int captured_len, clone_len = VR_MIRROR_PKT_HEAD_SPACE,
mirror_md_len = 0;
unsigned char default_mme[2] = {0xff, 0x0};
void *mirror_md;
unsigned char *buf;
struct vr_nexthop *nh;
struct vr_pcap *pcap;
struct vr_mirror_entry *mirror;
struct vr_mirror_meta_entry *mme;
unsigned int captured_len, clone_len = VR_MIRROR_PKT_HEAD_SPACE;
unsigned int mirror_md_len = 0;
unsigned char default_mme[2] = {0xff, 0x0};
void *mirror_md;
struct vr_nexthop *pkt_nh;
bool reset;
struct vr_forwarding_md new_fmd;

mirror = router->vr_mirrors[mirror_id];
if (!mirror)
return 0;

if (fmd) {
memcpy(&new_fmd, fmd, sizeof(*fmd));
fmd = &new_fmd;
}

if (fmd->fmd_flow_index >= 0) {
mme = (struct vr_mirror_meta_entry *)vr_itable_get(router->vr_mirror_md,
fmd->fmd_flow_index);
Expand Down

0 comments on commit c959ff9

Please sign in to comment.