X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fnetdev-vport.c;h=621abd163bf5baba207557c084c43109a21c05ee;hb=61a7b1e6fee6c81b0d8551898d2b108de2b42536;hp=d5c288ff62331461e296ffc6348047816b9dea35;hpb=62827e6abef5844d61f2f57d9a643c0ffb092210;p=openvswitch diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c index d5c288ff..621abd16 100644 --- a/lib/netdev-vport.c +++ b/lib/netdev-vport.c @@ -162,6 +162,14 @@ netdev_vport_get_netdev_type(const struct dpif_linux_vport *vport) return (nl_attr_get_u32(a[OVS_TUNNEL_ATTR_FLAGS]) & TNL_F_IPSEC ? "ipsec_gre" : "gre"); + case OVS_VPORT_TYPE_GRE64: + if (tnl_port_config_from_nlattr(vport->options, vport->options_len, + a)) { + break; + } + return (nl_attr_get_u32(a[OVS_TUNNEL_ATTR_FLAGS]) & TNL_F_IPSEC + ? "ipsec_gre64" : "gre64"); + case OVS_VPORT_TYPE_CAPWAP: return "capwap"; @@ -583,9 +591,9 @@ parse_tunnel_config(const char *name, const char *type, uint32_t flags; flags = TNL_F_DF_DEFAULT | TNL_F_PMTUD | TNL_F_HDR_CACHE; - if (!strcmp(type, "gre")) { + if (!strcmp(type, "gre") || !strcmp(type, "gre64")) { is_gre = true; - } else if (!strcmp(type, "ipsec_gre")) { + } else if (!strcmp(type, "ipsec_gre") || !strcmp(type, "ipsec_gre64")) { is_gre = true; is_ipsec = true; flags |= TNL_F_IPSEC; @@ -970,6 +978,14 @@ netdev_vport_register(void) { "ipsec_gre", VPORT_FUNCTIONS(netdev_vport_get_drv_info) }, parse_tunnel_config, unparse_tunnel_config }, + { OVS_VPORT_TYPE_GRE64, + { "gre64", VPORT_FUNCTIONS(netdev_vport_get_drv_info) }, + parse_tunnel_config, unparse_tunnel_config }, + + { OVS_VPORT_TYPE_GRE64, + { "ipsec_gre64", VPORT_FUNCTIONS(netdev_vport_get_drv_info) }, + parse_tunnel_config, unparse_tunnel_config }, + { OVS_VPORT_TYPE_CAPWAP, { "capwap", VPORT_FUNCTIONS(netdev_vport_get_drv_info) }, parse_tunnel_config, unparse_tunnel_config },