Imported Upstream version 17.05
[deb_dpdk.git] / drivers / net / virtio / virtio_user / vhost_kernel_tap.h
similarity index 56%
rename from examples/dpdk_qat/crypto.h
rename to drivers/net/virtio/virtio_user/vhost_kernel_tap.h
index f68b0b6..eae340c 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  *   BSD LICENSE
  *
- *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2016 Intel Corporation. All rights reserved.
  *   All rights reserved.
  *
  *   Redistribution and use in source and binary forms, with or without
  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef CRYPTO_H_
-#define CRYPTO_H_
+#include <sys/ioctl.h>
 
-/* Pass Labels/Values to crypto units */
-enum cipher_alg {
-       /* Option to not do any cryptography */
-       NO_CIPHER,
-       CIPHER_DES,
-       CIPHER_DES_CBC,
-       CIPHER_DES3,
-       CIPHER_DES3_CBC,
-       CIPHER_AES,
-       CIPHER_AES_CBC_128,
-       CIPHER_KASUMI_F8,
-       NUM_CRYPTO,
-};
+/* TUN ioctls */
+#define TUNSETIFF     _IOW('T', 202, int)
+#define TUNGETFEATURES _IOR('T', 207, unsigned int)
+#define TUNSETOFFLOAD  _IOW('T', 208, unsigned int)
+#define TUNGETIFF      _IOR('T', 210, unsigned int)
+#define TUNSETSNDBUF   _IOW('T', 212, int)
+#define TUNGETVNETHDRSZ _IOR('T', 215, int)
+#define TUNSETVNETHDRSZ _IOW('T', 216, int)
+#define TUNSETQUEUE  _IOW('T', 217, int)
+#define TUNSETVNETLE _IOW('T', 220, int)
+#define TUNSETVNETBE _IOW('T', 222, int)
 
-enum hash_alg {
-       /* Option to not do any hash */
-       NO_HASH,
-       HASH_MD5,
-       HASH_SHA1,
-       HASH_SHA1_96,
-       HASH_SHA224,
-       HASH_SHA256,
-       HASH_SHA384,
-       HASH_SHA512,
-       HASH_AES_XCBC,
-       HASH_AES_XCBC_96,
-       HASH_KASUMI_F9,
-       NUM_HMAC,
-};
+/* TUNSETIFF ifr flags */
+#define IFF_TAP          0x0002
+#define IFF_NO_PI        0x1000
+#define IFF_ONE_QUEUE    0x2000
+#define IFF_VNET_HDR     0x4000
+#define IFF_MULTI_QUEUE  0x0100
+#define IFF_ATTACH_QUEUE 0x0200
+#define IFF_DETACH_QUEUE 0x0400
 
-/* Return value from crypto_{encrypt/decrypt} */
-enum crypto_result {
-       /* Packet was successfully put into crypto queue */
-       CRYPTO_RESULT_IN_PROGRESS,
-       /* Cryptography has failed in some way */
-       CRYPTO_RESULT_FAIL,
-};
+/* Features for GSO (TUNSETOFFLOAD). */
+#define TUN_F_CSUM     0x01    /* You can hand me unchecksummed packets. */
+#define TUN_F_TSO4     0x02    /* I can handle TSO for IPv4 packets */
+#define TUN_F_TSO6     0x04    /* I can handle TSO for IPv6 packets */
+#define TUN_F_TSO_ECN  0x08    /* I can handle TSO with ECN bits. */
+#define TUN_F_UFO      0x10    /* I can handle UFO packets */
 
-extern enum crypto_result crypto_encrypt(struct rte_mbuf *pkt, enum cipher_alg c,
-               enum hash_alg h);
-extern enum crypto_result crypto_decrypt(struct rte_mbuf *pkt, enum cipher_alg c,
-               enum hash_alg h);
+/* Constants */
+#define PATH_NET_TUN   "/dev/net/tun"
 
-extern int crypto_init(void);
-
-extern int per_core_crypto_init(uint32_t lcore_id);
-
-extern void crypto_exit(void);
-
-extern void *crypto_get_next_response(void);
-
-extern void crypto_flush_tx_queue(uint32_t lcore_id);
-
-#endif /* CRYPTO_H_ */
+int vhost_kernel_open_tap(char **p_ifname, int hdr_size, int req_mq);