From: Thierry Parmentelat Date: Wed, 3 Oct 2012 13:58:38 +0000 (+0200) Subject: Revert "use proper tun_ip definitions" X-Git-Tag: sliver-openvswitch-1.8.90-5~25^2~1 X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=0dbc19217907c2a9045a13d6297684f8e17c3b50 Revert "use proper tun_ip definitions" This reverts commit bd2ccd1280b7b2b78e14abc78a4a07286a2f6c8d. this intendedly harmless change turned out harmful --- diff --git a/lib/netdev-pltap.c b/lib/netdev-pltap.c index dc56a386c..6c36e96d8 100644 --- a/lib/netdev-pltap.c +++ b/lib/netdev-pltap.c @@ -338,9 +338,9 @@ netdev_pltap_recv(struct netdev *netdev_, void *buffer, size_t size) { struct netdev_dev_pltap *dev = netdev_dev_pltap_cast(netdev_get_dev(netdev_)); - struct tun_pi pi; + char prefix[4]; struct iovec iov[2] = { - { .iov_base = &pi, .iov_len = sizeof(pi) }, + { .iov_base = prefix, .iov_len = 4 }, { .iov_base = buffer, .iov_len = size } }; if (!dev->finalized) @@ -379,9 +379,9 @@ netdev_pltap_send(struct netdev *netdev_, const void *buffer, size_t size) { struct netdev_dev_pltap *dev = netdev_dev_pltap_cast(netdev_get_dev(netdev_)); - struct tun_pi pi = { 0, htons(ETH_P_IP) }; + char prefix[4] = { 0, 0, 8, 6 }; struct iovec iov[2] = { - { .iov_base = &pi, .iov_len = sizeof(pi) }, + { .iov_base = prefix, .iov_len = 4 }, { .iov_base = buffer, .iov_len = size } }; if (dev->fd < 0 || !dev->finalized) @@ -390,9 +390,9 @@ netdev_pltap_send(struct netdev *netdev_, const void *buffer, size_t size) ssize_t retval; retval = writev(dev->fd, iov, 2); if (retval >= 0) { - if (retval != size + sizeof(pi)) { + if (retval != size + 4) { VLOG_WARN_RL(&rl, "sent partial Ethernet packet (%zd bytes of %zu) on %s", - retval, size + sizeof(pi), netdev_get_name(netdev_)); + retval, size + 4, netdev_get_name(netdev_)); } return 0; } else if (errno != EINTR) {