openvswitch: Extend packet attribute for egress tunnel info
OVS vswitch has extended IPFIX exporter to export tunnel headers to improve network visibility. To export this information userspace needs to know egress tunnel for given packet. By extending packet attributes datapath can export egress tunnel info for given packet. So that userspace can ask for egress tunnel info in userspace action. This information is used to build IPFIX data for given flow. Signed-off-by: Wenyu Zhang <wenyuz@vmware.com> Acked-by: Romain Lenglet <rlenglet@vmware.com> Acked-by: Ben Pfaff <blp@nicira.com> Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
This commit is contained in:

committed by
Pravin B Shelar

parent
9ba559d9ca
commit
8f0aad6f35
@@ -108,7 +108,7 @@ static int gre_rcv(struct sk_buff *skb,
|
||||
return PACKET_REJECT;
|
||||
|
||||
key = key_to_tunnel_id(tpi->key, tpi->seq);
|
||||
ovs_flow_tun_info_init(&tun_info, ip_hdr(skb), key,
|
||||
ovs_flow_tun_info_init(&tun_info, ip_hdr(skb), 0, 0, key,
|
||||
filter_tnl_flags(tpi->flags), NULL, 0);
|
||||
|
||||
ovs_vport_receive(vport, skb, &tun_info);
|
||||
@@ -284,12 +284,22 @@ static void gre_tnl_destroy(struct vport *vport)
|
||||
gre_exit();
|
||||
}
|
||||
|
||||
static int gre_get_egress_tun_info(struct vport *vport, struct sk_buff *skb,
|
||||
struct ovs_tunnel_info *egress_tun_info)
|
||||
{
|
||||
return ovs_tunnel_get_egress_info(egress_tun_info,
|
||||
ovs_dp_get_net(vport->dp),
|
||||
OVS_CB(skb)->egress_tun_info,
|
||||
IPPROTO_GRE, skb->mark, 0, 0);
|
||||
}
|
||||
|
||||
static struct vport_ops ovs_gre_vport_ops = {
|
||||
.type = OVS_VPORT_TYPE_GRE,
|
||||
.create = gre_create,
|
||||
.destroy = gre_tnl_destroy,
|
||||
.get_name = gre_get_name,
|
||||
.send = gre_tnl_send,
|
||||
.get_egress_tun_info = gre_get_egress_tun_info,
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user