[ovs-dev] [PATCH] datapath-windows: Update OvsIPv4TunnelKey flags in geneve decap.

Shashank Ram rams at vmware.com
Wed Oct 18 16:07:27 UTC 2017



On 10/17/17, 5:31 PM, "ovs-dev-bounces at openvswitch.org on behalf of Anand Kumar" <ovs-dev-bounces at openvswitch.org on behalf of kumaranand at vmware.com> wrote:

    Set the geneve flags OVS_TNL_F_GENEVE_OPT and OVS_TNL_F_CRT_OPT
    in OvsDecapGeneve, so that windows behavior is similiar to linux
    https://github.com/openvswitch/ovs/blob/master/datapath/linux/compat/geneve.c#L242
    
    Signed-off-by: Anand Kumar <kumaranand at vmware.com>
    ---
     datapath-windows/ovsext/Geneve.c | 8 ++++----
     1 file changed, 4 insertions(+), 4 deletions(-)
    
    diff --git a/datapath-windows/ovsext/Geneve.c b/datapath-windows/ovsext/Geneve.c
    index 43374e2..77244b1 100644
    --- a/datapath-windows/ovsext/Geneve.c
    +++ b/datapath-windows/ovsext/Geneve.c
    @@ -324,10 +324,10 @@ NDIS_STATUS OvsDecapGeneve(POVS_SWITCH_CONTEXT switchContext,
             status = STATUS_NDIS_INVALID_PACKET;
             goto dropNbl;
         }
    -    tunKey->flags = OVS_TNL_F_KEY;
    -    if (geneveHdr->oam) {
    -        tunKey->flags |= OVS_TNL_F_OAM;
    -    }
    +    /* Update tunnelKey flags. */
    +    tunKey->flags = OVS_TNL_F_KEY | OVS_TNL_F_GENEVE_OPT |
    +                    (geneveHdr->oam ? OVS_TNL_F_OAM : 0) |
    +                    (geneveHdr->critical ? OVS_TNL_F_CRT_OPT : 0);

Shouldn’t OVS_TNL_F_GENEVE_OPT be set only when the options header is present?

         tunKey->tunnelId = GENEVE_VNI_TO_TUNNELID(geneveHdr->vni);
         tunKey->tunOptLen = (uint8)geneveHdr->optLen * 4;
         if (tunKey->tunOptLen > TUN_OPT_MAX_LEN ||
    -- 
    
    _______________________________________________
    

    



More information about the dev mailing list