On Tue, Apr 7, 2015 at 4:59 PM, Jesse Gross <je...@nicira.com> wrote: > On Tue, Apr 7, 2015 at 4:22 PM, Pravin Shelar <pshe...@nicira.com> wrote: >> On Mon, Mar 30, 2015 at 3:14 PM, Jesse Gross <je...@nicira.com> wrote: >>> diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c >>> index 0c9f5a4..ef96862 100644 >>> --- a/lib/netdev-vport.c >>> +++ b/lib/netdev-vport.c >>> @@ -61,6 +61,11 @@ static struct vlog_rate_limit err_rl = >>> VLOG_RATE_LIMIT_INIT(60, 5); >>> sizeof(struct udp_header) + \ >>> sizeof(struct vxlanhdr)) >>> >> ...
>>> +netdev_geneve_pop_header(struct netdev *netdev_ OVS_UNUSED, >> .... >> >>> + >>> +static int >>> +netdev_geneve_push_header(const struct netdev *netdev OVS_UNUSED, >>> + struct dp_packet **packets, int cnt, >>> + const struct ovs_action_push_tnl *data) >>> +{ >>> + int i; >>> + >>> + for (i = 0; i < cnt; i++) { >>> + push_udp_header(packets[i], data->header, data->header_len); >>> + packets[i]->md = >>> PKT_METADATA_INITIALIZER(u32_to_odp(data->out_port)); >>> + } >>> + return 0; >>> +} >>> + >> This looks like vxlan_push, Is there reason for having two different >> function? > > Looking a little bigger, GRE also has pretty much the same function; > the only difference being that it calls a GRE function inside the > loop. Similarly all three pop functions are basically the same except > with a different inner function. I think we can avoid all of this by > making the netdev functions provide a loop for us, which is a little > less generic but is a little cleaner in practice. Any reason to not do > this? > At this point I do not see them changing. So lets refactor this code. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev