summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDarrell Ball <dlu998@gmail.com>2019-02-22 18:48:46 -0800
committerBen Pfaff <blp@ovn.org>2019-02-25 09:44:52 -0800
commit206a26e555988539252fbc919409958a90a302e3 (patch)
tree66acb317d9a709ee010a71b7e748ac30465c0f42 /lib
parent00189ccda7da6df616064bfb393a985df75664a4 (diff)
downloadopenvswitch-206a26e555988539252fbc919409958a90a302e3.tar.gz
ipf: More cleanup.
No functional changes here. Signed-off-by: Darrell Ball <dlu998@gmail.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/ipf.c19
1 files changed, 4 insertions, 15 deletions
diff --git a/lib/ipf.c b/lib/ipf.c
index 97d5b580a..4cc0f2df6 100644
--- a/lib/ipf.c
+++ b/lib/ipf.c
@@ -522,9 +522,7 @@ ipf_list_state_transition(struct ipf *ipf, struct ipf_list *ipf_list,
}
break;
case IPF_LIST_STATE_FIRST_SEEN:
- if (ff) {
- next_state = IPF_LIST_STATE_FIRST_SEEN;
- } else if (lf) {
+ if (lf) {
next_state = IPF_LIST_STATE_FIRST_LAST_SEEN;
} else {
next_state = IPF_LIST_STATE_FIRST_SEEN;
@@ -714,16 +712,10 @@ ipf_v6_key_extract(struct dp_packet *pkt, ovs_be16 dl_type, uint16_t zone,
uint16_t *end_data_byte, bool *ff, bool *lf)
{
const struct ovs_16aligned_ip6_hdr *l3 = dp_packet_l3(pkt);
- const char *l4 = dp_packet_l4(pkt);
- const char *tail = dp_packet_tail(pkt);
- uint8_t pad = dp_packet_l2_pad_size(pkt);
- size_t l3_size = tail - (char *)l3 - pad;
- size_t l4_size = tail - (char *)l4 - pad;
- size_t l3_hdr_size = sizeof *l3;
uint8_t nw_frag = 0;
uint8_t nw_proto = l3->ip6_nxt;
const void *data = l3 + 1;
- size_t datasize = l3_size - l3_hdr_size;
+ size_t datasize = dp_packet_l3_size(pkt) - sizeof *l3;
const struct ovs_16aligned_ip6_frag *frag_hdr = NULL;
parse_ipv6_ext_hdrs(&data, &datasize, &nw_proto, &nw_frag, &frag_hdr);
@@ -731,7 +723,7 @@ ipf_v6_key_extract(struct dp_packet *pkt, ovs_be16 dl_type, uint16_t zone,
ovs_be16 ip6f_offlg = frag_hdr->ip6f_offlg;
*start_data_byte = ntohs(ip6f_offlg & IP6F_OFF_MASK) +
sizeof (struct ovs_16aligned_ip6_frag);
- *end_data_byte = *start_data_byte + l4_size - 1;
+ *end_data_byte = *start_data_byte + dp_packet_l4_size(pkt) - 1;
*ff = ipf_is_first_v6_frag(ip6f_offlg);
*lf = ipf_is_last_v6_frag(ip6f_offlg);
memset(key, 0, sizeof *key);
@@ -1175,12 +1167,9 @@ ipf_post_execute_reass_pkts(struct ipf *ipf,
}
const struct ipf_frag *frag_0 = &rp->list->frag_list[0];
- const char *tail_frag = dp_packet_tail(frag_0->pkt);
- uint8_t pad_frag = dp_packet_l2_pad_size(frag_0->pkt);
void *l4_frag = dp_packet_l4(frag_0->pkt);
void *l4_reass = dp_packet_l4(pkt);
- memcpy(l4_frag, l4_reass,
- tail_frag - (char *) l4_frag - pad_frag);
+ memcpy(l4_frag, l4_reass, dp_packet_l4_size(frag_0->pkt));
if (v6) {
struct ovs_16aligned_ip6_hdr *l3_frag