X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Fvport-gre.c;h=e810173ff95e29cec03f302f377c57a1b54e921c;hb=e0d7fd09066712420ea076a8efb5559a3fe297b3;hp=d02d4ec625db8f01a71256cc74c16219dbcb3513;hpb=8989046dddb1e3d47a79ee720307cadd5dbb5a62;p=openvswitch diff --git a/datapath/vport-gre.c b/datapath/vport-gre.c index d02d4ec6..e810173f 100644 --- a/datapath/vport-gre.c +++ b/datapath/vport-gre.c @@ -488,6 +488,11 @@ static struct vport *gre_create(const struct vport_parms *parms) return ovs_tnl_create(parms, &ovs_gre_vport_ops, &gre_tnl_ops); } +static struct vport *gre_create_ft(const struct vport_parms *parms) +{ + return ovs_tnl_create(parms, &ovs_gre_ft_vport_ops, &gre_tnl_ops); +} + static const struct tnl_ops gre64_tnl_ops = { .tunnel_type = TNL_T_PROTO_GRE64, .ipproto = IPPROTO_GRE, @@ -536,6 +541,24 @@ static void gre_exit(void) inet_del_protocol(&gre_protocol_handlers, IPPROTO_GRE); } +const struct vport_ops ovs_gre_ft_vport_ops = { + .type = OVS_VPORT_TYPE_FT_GRE, + .flags = VPORT_F_TUN_ID, + .init = gre_init, + .exit = gre_exit, + .create = gre_create_ft, + .destroy = ovs_tnl_destroy, + .set_addr = ovs_tnl_set_addr, + .get_name = ovs_tnl_get_name, + .get_addr = ovs_tnl_get_addr, + .get_options = ovs_tnl_get_options, + .set_options = ovs_tnl_set_options, + .get_dev_flags = ovs_vport_gen_get_dev_flags, + .is_running = ovs_vport_gen_is_running, + .get_operstate = ovs_vport_gen_get_operstate, + .send = ovs_tnl_send, +}; + const struct vport_ops ovs_gre_vport_ops = { .type = OVS_VPORT_TYPE_GRE, .flags = VPORT_F_TUN_ID,