Damien Zammit, le dim. 20 juil. 2025 02:49:16 +0000, a ecrit:
> +  flag = 0;
> +  err = rump_sys_ioctl (nd->bpf_fd, BIOCIMMEDIATE, &flag);
> +  if (err < 0)
> +    {
> +      mach_print("ERROR: biocimmediate failed\n");
> +      errno = rump_errno2host(err);
> +      return errno;
> +    }
> +
> +  /* We need this timeout for blocking requests to flush even if not full */
> +  err = rump_sys_ioctl (nd->bpf_fd, BIOCSRTIMEOUT, &timeout);

? Is that not BIOCIMMEDIATE that achieves this? You are talking about
incomming packets, right? rarpd for instance only uses BIOCIMMEDIATE,
not BIOCSRTIMEOUT.

> +static io_return_t
> +send_packet (struct net_data *nd, io_buf_ptr_t buf, unsigned int bytes)
> +{
> +  io_return_t err;
> +  struct ethhdr *hdr = (struct ethhdr *)buf;

I don't think you need the cast?

> +  struct iovec iov;
> +  int result;
> +  int flag;
> +  int i;
> +
> +  iov.iov_base = hdr;
> +  iov.iov_len = bytes;
> +
> +  result = rump_sys_writev (nd->bpf_fd, &iov, 1);
> +  if (result < 0)
> +    {

Samuel

Reply via email to