Skip to content

Commit

Permalink
Dont use link local flag in bgp-aas flow encode.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
manishsing committed Feb 21, 2017
1 parent 6bdb476 commit e7f8716
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 @@ -345,13 +345,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 e7f8716

Please sign in to comment.