tap: use in->buf_size rather than sizeof(pkt_buf)
buf_size is set to sizeof(pkt_buf) by default. And it seems more correct to provide the actual size of the buffer. Later a buf_size of 0 will allow vhost-user mode to detect guest memory buffers. Signed-off-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
7290335b14
commit
4070bac7a4
1 changed files with 5 additions and 5 deletions
10
tap.c
10
tap.c
|
@ -602,7 +602,7 @@ resume:
|
|||
if (!eh)
|
||||
continue;
|
||||
if (ntohs(eh->h_proto) == ETH_P_ARP) {
|
||||
PACKET_POOL_P(pkt, 1, in->buf, sizeof(pkt_buf));
|
||||
PACKET_POOL_P(pkt, 1, in->buf, in->buf_size);
|
||||
|
||||
packet_add(pkt, l2len, (char *)eh);
|
||||
arp(c, pkt);
|
||||
|
@ -642,7 +642,7 @@ resume:
|
|||
continue;
|
||||
|
||||
if (iph->protocol == IPPROTO_ICMP) {
|
||||
PACKET_POOL_P(pkt, 1, in->buf, sizeof(pkt_buf));
|
||||
PACKET_POOL_P(pkt, 1, in->buf, in->buf_size);
|
||||
|
||||
if (c->no_icmp)
|
||||
continue;
|
||||
|
@ -661,7 +661,7 @@ resume:
|
|||
continue;
|
||||
|
||||
if (iph->protocol == IPPROTO_UDP) {
|
||||
PACKET_POOL_P(pkt, 1, in->buf, sizeof(pkt_buf));
|
||||
PACKET_POOL_P(pkt, 1, in->buf, in->buf_size);
|
||||
|
||||
packet_add(pkt, l2len, (char *)eh);
|
||||
if (dhcp(c, pkt))
|
||||
|
@ -810,7 +810,7 @@ resume:
|
|||
}
|
||||
|
||||
if (proto == IPPROTO_ICMPV6) {
|
||||
PACKET_POOL_P(pkt, 1, in->buf, sizeof(pkt_buf));
|
||||
PACKET_POOL_P(pkt, 1, in->buf, in->buf_size);
|
||||
|
||||
if (c->no_icmp)
|
||||
continue;
|
||||
|
@ -834,7 +834,7 @@ resume:
|
|||
uh = (struct udphdr *)l4h;
|
||||
|
||||
if (proto == IPPROTO_UDP) {
|
||||
PACKET_POOL_P(pkt, 1, in->buf, sizeof(pkt_buf));
|
||||
PACKET_POOL_P(pkt, 1, in->buf, in->buf_size);
|
||||
|
||||
packet_add(pkt, l4len, l4h);
|
||||
|
||||
|
|
Loading…
Reference in a new issue