Page MenuHomeFreeBSD

D7792.id20071.diff
No OneTemporary

D7792.id20071.diff

Index: sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
===================================================================
--- sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
+++ sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
@@ -972,16 +972,14 @@
csum_info = (rndis_tcp_ip_csum_info *)((uint8_t *)rppi +
rppi->per_packet_info_offset);
- csum_info->xmit.is_ipv4 = 1;
+ csum_info->value = NDIS_TXCSUM_INFO_IPV4;
if (m_head->m_pkthdr.csum_flags & CSUM_IP)
- csum_info->xmit.ip_header_csum = 1;
+ csum_info->value |= NDIS_TXCSUM_INFO_IPCS;
- if (m_head->m_pkthdr.csum_flags & CSUM_TCP) {
- csum_info->xmit.tcp_csum = 1;
- csum_info->xmit.tcp_header_offset = 0;
- } else if (m_head->m_pkthdr.csum_flags & CSUM_UDP) {
- csum_info->xmit.udp_csum = 1;
- }
+ if (m_head->m_pkthdr.csum_flags & CSUM_TCP)
+ csum_info->value |= NDIS_TXCSUM_INFO_TCPCS;
+ else if (m_head->m_pkthdr.csum_flags & CSUM_UDP)
+ csum_info->value |= NDIS_TXCSUM_INFO_UDPCS;
}
rndis_mesg->msg_len = tot_data_buf_len + rndis_msg_size;
Index: sys/dev/hyperv/netvsc/ndis.h
===================================================================
--- sys/dev/hyperv/netvsc/ndis.h
+++ sys/dev/hyperv/netvsc/ndis.h
@@ -232,6 +232,7 @@
#define NDIS_RXCSUM_INFO_IPCS_INVAL 0x0100
/* LSOv2 */
+#define NDIS_LSO2_INFO_SIZE sizeof(uint32_t)
#define NDIS_LSO2_INFO_MSS_MASK 0x000fffff
#define NDIS_LSO2_INFO_THOFF_MASK 0x3ff00000
#define NDIS_LSO2_INFO_ISLSO2 0x40000000
@@ -248,4 +249,13 @@
#define NDIS_LSO2_INFO_MAKEIPV6(thoff, mss) \
(NDIS_LSO2_INFO_MAKE((thoff), (mss)) | NDIS_LSO2_INFO_ISIPV6)
+/* Transmission checksum */
+#define NDIS_TXCSUM_INFO_SIZE sizeof(uint32_t)
+#define NDIS_TXCSUM_INFO_IPV4 0x00000001
+#define NDIS_TXCSUM_INFO_IPV6 0x00000002
+#define NDIS_TXCSUM_INFO_TCPCS 0x00000004
+#define NDIS_TXCSUM_INFO_UDPCS 0x00000008
+#define NDIS_TXCSUM_INFO_IPCS 0x00000010
+#define NDIS_TXCSUM_INFO_THOFF 0x03ff0000
+
#endif /* !_NET_NDIS_H_ */

File Metadata

Mime Type
text/plain
Expires
Wed, Nov 12, 10:46 PM (13 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25234700
Default Alt Text
D7792.id20071.diff (1 KB)

Event Timeline