Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Dont use link local flag in bgp-aas flow encode.
Presence of BGP service flag is indication of bgp-aas flows. Link local is not
needed to identify candidate for relaxed policy. Bgp flags also indicates
relaxed policy on fabric.
Presence of this flag used to cause port to be freed on flow delete even though
there will be a second flow using this port. Vrouter uses link local flag to
release port. Removing this flag ensures that vrouter deos not release the port
used in bgp-aas.
In case flow is not present and port is still part of relaxed policy then packet
will be sent to host, hence achieving the functionailty when port would have
been released.

Change-Id: Id6cfd2d0b0ff3dc0724715bc126ccee882068486
Closes-bug: #1664301
(cherry picked from commit e7f8716)
  • Loading branch information
manishsing authored and haripk committed Feb 24, 2017
1 parent 392d0be commit 52273eb
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions src/vnsw/agent/vrouter/ksync/flowtable_ksync.cc
Expand Up @@ -328,13 +328,14 @@ int FlowTableKSyncEntry::Encode(sandesh_op::type op, char *buf, int buf_len) {
}
}

//TODO Seperate flags for BgpRouterService??
if (nat_flow->is_flags_set(FlowEntry::LinkLocalBindLocalSrcPort) ||
nat_flow->is_flags_set(FlowEntry::BgpRouterService)) {
//Link local, flag determines relaxed policy
if (nat_flow->is_flags_set(FlowEntry::LinkLocalBindLocalSrcPort)) {
flags |= VR_FLOW_FLAG_LINK_LOCAL;
if (nat_flow->is_flags_set(FlowEntry::BgpRouterService)) {
flags |= VR_FLOW_BGP_SERVICE;
}
}

//Bgp service, flag determines relaxed policy
if (nat_flow->is_flags_set(FlowEntry::BgpRouterService)) {
flags |= VR_FLOW_BGP_SERVICE;
}

flags |= VR_FLOW_FLAG_VRFT;
Expand Down

0 comments on commit 52273eb

Please sign in to comment.