• Dmitry Popov's avatar
    ip_vti: Fix 'ip tunnel add' with 'key' parameters · 7c8e6b9c
    Dmitry Popov authored
    ip tunnel add remote 10.2.2.1 local 10.2.2.2 mode vti ikey 1 okey 2
    translates to p->iflags = VTI_ISVTI|GRE_KEY and p->i_key = 1, but GRE_KEY !=
    TUNNEL_KEY, so ip_tunnel_ioctl would set i_key to 0 (same story with o_key)
    making us unable to create vti tunnels with [io]key via ip tunnel.
    
    We cannot simply translate GRE_KEY to TUNNEL_KEY (as GRE module does) because
    vti_tunnels with same local/remote addresses but different ikeys will be treated
    as different then. So, imo the best option here is to move p->i_flags & *_KEY
    check for vti tunnels from ip_tunnel.c to ip_vti.c and to think about [io]_mark
    field for ip_tunnel_parm in the future.
    Signed-off-by: default avatarDmitry Popov <ixaphire@qrator.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7c8e6b9c
ip_vti.c 14.1 KB