use std::ffi::{c_int, c_uint, c_ulong};
use libc::ifreq;
use crate::sys::ioctl::ioctl_iow;
use crate::{bitflags, ioctl_read, ioctl_write_ptr, ioctl_write_val};
ioctl_write_ptr!(tun_set_iff, ioctl_iow::<c_int>(b'T', 202), ifreq);
ioctl_write_val!(tun_set_offload, ioctl_iow::<c_uint>(b'T', 208), TunFeature);
ioctl_read!(tun_get_vnet_hdr_sz, b'T', 215, c_int);
ioctl_write_ptr!(tun_set_vnet_hdr_sz, b'T', 216, c_int);
bitflags! {
pub struct TunFeature(c_ulong) {
CSUM = 1 << 0;
TSO4 = 1 << 1;
TSO6 = 1 << 2;
TSO_ECN = 1 << 3;
UFO = 1 << 4;
USO4 = 1 << 5;
USO6 = 1 << 6;
}
}