[dpdk-dev] [PATCH v4 3/3] eal/windows: librte_net build on Windows
Fady Bader
fady at mellanox.com
Thu Jul 23 09:08:25 CEST 2020
librte_net wasn't compiling under Windows.
To solve this, needed header files were added.
Signed-off-by: Fady Bader <fady at mellanox.com>
---
lib/librte_eal/windows/include/netinet/in.h | 23 +++++++++++++++++++++++
lib/librte_eal/windows/include/netinet/ip.h | 10 ++++++++++
lib/librte_net/rte_ether.c | 4 ++++
lib/meson.build | 2 +-
4 files changed, 38 insertions(+), 1 deletion(-)
create mode 100644 lib/librte_eal/windows/include/netinet/in.h
create mode 100644 lib/librte_eal/windows/include/netinet/ip.h
diff --git a/lib/librte_eal/windows/include/netinet/in.h b/lib/librte_eal/windows/include/netinet/in.h
new file mode 100644
index 0000000000..2be25c8bea
--- /dev/null
+++ b/lib/librte_eal/windows/include/netinet/in.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright 2020 Mellanox Technologies, Ltd
+ */
+
+#ifndef _IN_H_
+#define _IN_H_
+
+#define IPPROTO_IP 0 /* Dummy for IP */
+#define IPPROTO_HOPOPTS 0 /* IPv6 Hop-by-Hop options */
+#define IPPROTO_IPIP 4 /* IPIP tunnels (for compatibility) */
+#define IPPROTO_TCP 6 /* Transmission Control Protocol */
+#define IPPROTO_UDP 17 /* User Datagram Protocol */
+#define IPPROTO_IPV6 41 /* IPv6 header */
+#define IPPROTO_ROUTING 43 /* IPv6 routing header */
+#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */
+#define IPPROTO_GRE 47 /* General Routing Encap */
+#define IPPROTO_ESP 50 /* IPsec Encap Sec. Payload */
+#define IPPROTO_AH 51 /* IPsec Auth Header */
+#define IPPROTO_NONE 59 /* IPv6 no next header */
+#define IPPROTO_DSTOPTS 60 /* IPv6 destination option */
+#define IPPROTO_SCTP 132 /* Stream Control Transmission Protocol */
+
+#endif
diff --git a/lib/librte_eal/windows/include/netinet/ip.h b/lib/librte_eal/windows/include/netinet/ip.h
new file mode 100644
index 0000000000..2126498797
--- /dev/null
+++ b/lib/librte_eal/windows/include/netinet/ip.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright 2020 Mellanox Technologies, Ltd
+ */
+
+#ifndef _IP_H_
+#define _IP_H_
+
+#define IPVERSION 4
+
+#endif
diff --git a/lib/librte_net/rte_ether.c b/lib/librte_net/rte_ether.c
index ced65ed9f3..6055ae1463 100644
--- a/lib/librte_net/rte_ether.c
+++ b/lib/librte_net/rte_ether.c
@@ -10,12 +10,16 @@
void
rte_eth_random_addr(uint8_t *addr)
{
+#ifdef RTE_EXEC_ENV_WINDOWS
+ RTE_SET_USED(addr); /* random is not supported yet */
+#else
uint64_t rand = rte_rand();
uint8_t *p = (uint8_t *)&rand;
rte_memcpy(addr, p, RTE_ETHER_ADDR_LEN);
addr[0] &= (uint8_t)~RTE_ETHER_GROUP_ADDR; /* clear multicast bit */
addr[0] |= RTE_ETHER_LOCAL_ADMIN_ADDR; /* set local assignment bit */
+#endif
}
void
diff --git a/lib/meson.build b/lib/meson.build
index 3852c01564..6bbaf242a9 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -40,7 +40,7 @@ if is_windows
'kvargs',
'eal',
'ring',
- 'mempool', 'mbuf', 'pci',
+ 'mempool', 'mbuf', 'pci', 'net',
] # only supported libraries for windows
endif
--
2.16.1.windows.4
More information about the dev
mailing list