}
static int
-netdev_tunnel_rx_recv(struct netdev_rx *rx_, void *buffer, size_t size)
+netdev_tunnel_rx_recv(struct netdev_rx *rx_, struct ofpbuf *buffer)
{
+ size_t size = ofpbuf_tailroom(buffer);
struct netdev_rx_tunnel *rx = netdev_rx_tunnel_cast(rx_);
struct netdev_tunnel *netdev =
netdev_tunnel_cast(rx_->netdev);
return -EAGAIN;
for (;;) {
ssize_t retval;
- retval = recv(rx->fd, buffer, size, MSG_TRUNC);
- VLOG_DBG("%s: recv(%"PRIxPTR", %zu, MSG_TRUNC) = %zd",
- netdev_rx_get_name(rx_), (uintptr_t)buffer, size, retval);
+ retval = recv(rx->fd, buffer->data, size, MSG_TRUNC);
+ VLOG_DBG("%s: recv(%"PRIxPTR", %"PRIuSIZE", MSG_TRUNC) = %"PRIdSIZE,
+ netdev_rx_get_name(rx_), (uintptr_t)buffer->data, size, retval);
if (retval >= 0) {
- netdev->stats.rx_packets++;
- netdev->stats.rx_bytes += retval;
+ netdev->stats.rx_packets++;
+ netdev->stats.rx_bytes += retval;
if (retval <= size) {
return retval;
} else {
for (;;) {
ssize_t retval;
retval = send(dev->sockfd, buffer, size, 0);
- VLOG_DBG("%s: send(%"PRIxPTR", %zu) = %zd",
+ VLOG_DBG("%s: send(%"PRIxPTR", %"PRIuSIZE") = %"PRIdSIZE,
netdev_get_name(netdev_), (uintptr_t)buffer, size, retval);
if (retval >= 0) {
dev->stats.tx_packets++;
dev->stats.tx_bytes += retval;
if (retval != size) {
- VLOG_WARN_RL(&rl, "sent partial Ethernet packet (%zd bytes of "
- "%zu) on %s", retval, size, netdev_get_name(netdev_));
+ VLOG_WARN_RL(&rl, "sent partial Ethernet packet (%"PRIdSIZE" bytes of "
+ "%"PRIuSIZE") on %s", retval, size, netdev_get_name(netdev_));
dev->stats.tx_errors++;
}
return 0;
NULL, /* get_in6 */
NULL, /* add_router */
NULL, /* get_next_hop */
- NULL, /* get_drv_info */
+ NULL, /* get_status */
NULL, /* arp_lookup */
netdev_tunnel_update_flags,
- netdev_tunnel_change_seq,
-
netdev_tunnel_rx_alloc,
netdev_tunnel_rx_construct,
netdev_tunnel_rx_destruct,