In L2 route, path deletion is dependant on regular L2 key and vxlan_id.
Reason for same is that change of Vxlan id can result in withdrawal of said
route with old vxlan and export of same route again with new vxlan. When control
node sends withdraw in response to dissociate then Vxlan Id is used to identify
correct path for peer. This is the reason for presence of Vxlan ID present in
key and is used only during delete because of withdrawal from control node.

Deletion of path is done either via withdraw or explicit(peer down etc).
In case of explicit delete route walker is started for deleting paths sent by
peer. During this request L2 route key formed contained zero vxlan id. If L2
route is programmed with some vxlan sent by control node, then those paths were
not deleted as delete path routine will try matching vxlan and it will fail.
This resulted in issues where paths were not getting deleted for L2 route.

Fix sends extra attribute to delete path which identifies if deletion was issued
via withdrawal or explicit delete walker. In case of explicit walker it does not
match vxlan id from key and proceeds for delete of path if peer matches.

Change-Id: If20f72e2a723ffcbd2fb61327ebfc22976e4f30f
Closes-Bug: 1371486
Merge "In L2 route, path deletion is dependant on regular L2 key and vxlan_id. Reason for same is that change of Vxlan id can result in withdrawal of said route with old vxlan and export of same route again with new vxlan. When control node sends withdraw in response to dissociate then Vxlan Id is used to identify correct path for peer. This is the reason for presence of Vxlan ID present in key and is used only during delete because of withdrawal from control node."