X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fflow.c;h=922412fd8ce53cdb24e32c47ff69b447fc27ed25;hb=9c8e276ec3f4a3368ec1cb7f713543d46d8ad23a;hp=a491afffc54c50aef07cbe3b961ead3b06cfe542;hpb=0fd0d0834f79d6cfe8a0eccc19732bae365aa575;p=openvswitch diff --git a/lib/flow.c b/lib/flow.c index a491afff..922412fd 100644 --- a/lib/flow.c +++ b/lib/flow.c @@ -1020,6 +1020,7 @@ flow_compose(struct ofpbuf *b, const struct flow *flow) b->l4 = tcp = ofpbuf_put_zeros(b, sizeof *tcp); tcp->tcp_src = flow->tp_src; tcp->tcp_dst = flow->tp_dst; + tcp->tcp_ctl = TCP_CTL(0, 5); } else if (flow->nw_proto == IPPROTO_UDP) { struct udp_header *udp; @@ -1034,6 +1035,9 @@ flow_compose(struct ofpbuf *b, const struct flow *flow) icmp->icmp_code = ntohs(flow->tp_dst); } } + + ip->ip_tot_len = htons((uint8_t *) b->data + b->size + - (uint8_t *) b->l3); } else if (flow->dl_type == htons(ETH_TYPE_IPV6)) { /* XXX */ } else if (flow->dl_type == htons(ETH_TYPE_ARP)) {