Skip to content

Commit 37a46c9

Browse files
committed
fix(net): make HdrGso an enum instead of a flag
1 parent 07bcc57 commit 37a46c9

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

src/net.rs

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -77,28 +77,32 @@ virtio_bitflags! {
7777
}
7878
}
7979

80-
virtio_bitflags! {
81-
/// Network Device Header GSO Type
82-
#[doc(alias = "VIRTIO_NET_HDR_GSO")]
83-
pub struct HdrGso: u8 {
84-
#[doc(alias = "VIRTIO_NET_HDR_GSO_NONE")]
85-
const NONE = 0;
80+
/// Network Device Header GSO Type
81+
#[doc(alias = "VIRTIO_NET_HDR_GSO")]
82+
#[derive(IntoPrimitive, FromPrimitive, PartialEq, Eq, Clone, Copy, Debug)]
83+
#[non_exhaustive]
84+
#[repr(u8)]
85+
pub enum HdrGso {
86+
#[doc(alias = "VIRTIO_NET_HDR_GSO_NONE")]
87+
None = 0,
8688

87-
#[doc(alias = "VIRTIO_NET_HDR_GSO_TCPV4")]
88-
const TCPV4 = 1;
89+
#[doc(alias = "VIRTIO_NET_HDR_GSO_TCPV4")]
90+
Tcpv4 = 1,
8991

90-
#[doc(alias = "VIRTIO_NET_HDR_GSO_UDP")]
91-
const UDP = 3;
92+
#[doc(alias = "VIRTIO_NET_HDR_GSO_UDP")]
93+
Udp = 3,
9294

93-
#[doc(alias = "VIRTIO_NET_HDR_GSO_TCPV6")]
94-
const TCPV6 = 4;
95+
#[doc(alias = "VIRTIO_NET_HDR_GSO_TCPV6")]
96+
Tcpv6 = 4,
9597

96-
#[doc(alias = "VIRTIO_NET_HDR_GSO_UDP_L4")]
97-
const UDP_L4 = 5;
98+
#[doc(alias = "VIRTIO_NET_HDR_GSO_UDP_L4")]
99+
UdpL4 = 5,
98100

99-
#[doc(alias = "VIRTIO_NET_HDR_GSO_ECN")]
100-
const ECN = 0x80;
101-
}
101+
#[doc(alias = "VIRTIO_NET_HDR_GSO_ECN")]
102+
Ecn = 0x80,
103+
104+
#[num_enum(catch_all)]
105+
Unknown(u8),
102106
}
103107

104108
/// Network Device Header
@@ -116,7 +120,7 @@ virtio_bitflags! {
116120
#[repr(C)]
117121
pub struct Hdr {
118122
pub flags: HdrF,
119-
pub gso_type: HdrGso,
123+
pub gso_type: u8,
120124
pub hdr_len: le16,
121125
pub gso_size: le16,
122126
pub csum_start: le16,

0 commit comments

Comments
 (0)