From: Jesse Gross Date: Mon, 25 Jan 2010 00:57:54 +0000 (-0500) Subject: datapath: Transport port is not part of psuedoheader. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=00ba5f3b155003640875b780d0f4ccd9274158c6;p=openvswitch datapath: Transport port is not part of psuedoheader. While updating the checksum after changing the transport port, we indicated that this was a change to the psuedoheader. Since this is not the case, it could produce an incorrect checksum. --- diff --git a/datapath/actions.c b/datapath/actions.c index a24abcae..53bf3efd 100644 --- a/datapath/actions.c +++ b/datapath/actions.c @@ -1,6 +1,6 @@ /* * Distributed under the terms of the GNU GPL version 2. - * Copyright (c) 2007, 2008, 2009 Nicira Networks. + * Copyright (c) 2007, 2008, 2009, 2010 Nicira Networks. * * Significant portions of this file may be copied from parts of the Linux * kernel, by Linus Torvalds and others. @@ -276,7 +276,7 @@ set_tp_port(struct sk_buff *skb, struct odp_flow_key *key, u16 old = *f; u16 new = a->tp_port; update_csum((u16*)(skb_transport_header(skb) + check_ofs), - skb, old, new, 1); + skb, old, new, 0); *f = new; } return skb;