]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/net/if_ipsec.h
xnu-7195.101.1.tar.gz
[apple/xnu.git] / bsd / net / if_ipsec.h
index 159ef2036b63721f6954676f0aff8c6d2874059c..39e4f35d118c8e523ad266374647d3eb1a0d306b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2014 Apple Inc. All rights reserved.
+ * Copyright (c) 2012-2019 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
@@ -27,8 +27,8 @@
  */
 
 
-#ifndef        _NET_IF_IPSEC_H_
-#define        _NET_IF_IPSEC_H_
+#ifndef _NET_IF_IPSEC_H_
+#define _NET_IF_IPSEC_H_
 
 #ifdef BSD_KERNEL_PRIVATE
 
@@ -39,9 +39,9 @@
 errno_t ipsec_register_control(void);
 
 /* Helpers */
-int ipsec_interface_isvalid (ifnet_t interface);
+int ipsec_interface_isvalid(ifnet_t interface);
 
-errno_t ipsec_inject_inbound_packet(ifnet_t    interface, mbuf_t packet);
+errno_t ipsec_inject_inbound_packet(ifnet_t     interface, mbuf_t packet);
 
 void ipsec_set_pkthdr_for_interface(ifnet_t interface, mbuf_t packet, int family);
 
@@ -60,17 +60,27 @@ void ipsec_set_ip6oa_for_interface(ifnet_t interface, struct ip6_out_args *ip6oa
 /*
  * Socket option names to manage ipsec
  */
-#define IPSEC_OPT_FLAGS                                                        1
-#define IPSEC_OPT_IFNAME                                               2
-#define IPSEC_OPT_EXT_IFDATA_STATS                             3       /* get|set (type int) */
-#define IPSEC_OPT_INC_IFDATA_STATS_IN                  4       /* set to increment stat counters (type struct ipsec_stats_param) */
-#define IPSEC_OPT_INC_IFDATA_STATS_OUT                 5       /* set to increment stat counters (type struct ipsec_stats_param) */
-#define IPSEC_OPT_SET_DELEGATE_INTERFACE               6       /* set the delegate interface (char[]) */
-#define IPSEC_OPT_OUTPUT_TRAFFIC_CLASS                 7       /* set the traffic class for packets leaving the interface, see sys/socket.h */
-#define IPSEC_OPT_ENABLE_CHANNEL                               8       /* enable a kernel pipe nexus that allows the owner to open a channel to act as a driver */
-#define IPSEC_OPT_GET_CHANNEL_UUID                             9       /* get the uuid of the kernel pipe nexus instance */
-#define IPSEC_OPT_ENABLE_FLOWSWITCH                            10      /* enable a flowswitch nexus that clients can use */
-#define IPSEC_OPT_INPUT_FRAG_SIZE                              11      /* set the maximum size of input packets before fragmenting as a uint32_t */
+#define IPSEC_OPT_FLAGS                                 1
+#define IPSEC_OPT_IFNAME                                2
+#define IPSEC_OPT_EXT_IFDATA_STATS                      3       /* get|set (type int) */
+#define IPSEC_OPT_INC_IFDATA_STATS_IN                   4       /* set to increment stat counters (type struct ipsec_stats_param) */
+#define IPSEC_OPT_INC_IFDATA_STATS_OUT                  5       /* set to increment stat counters (type struct ipsec_stats_param) */
+#define IPSEC_OPT_SET_DELEGATE_INTERFACE                6       /* set the delegate interface (char[]) */
+#define IPSEC_OPT_OUTPUT_TRAFFIC_CLASS                  7       /* set the traffic class for packets leaving the interface, see sys/socket.h */
+#define IPSEC_OPT_ENABLE_CHANNEL                        8       /* enable a kernel pipe nexus that allows the owner to open a channel to act as a driver,
+                                                                *  Must be set before connecting */
+#define IPSEC_OPT_GET_CHANNEL_UUID                      9       /* get the uuid of the kernel pipe nexus instance */
+#define IPSEC_OPT_ENABLE_FLOWSWITCH                     10      /* enable a flowswitch nexus that clients can use */
+#define IPSEC_OPT_INPUT_FRAG_SIZE                       11      /* set the maximum size of input packets before fragmenting as a uint32_t */
+
+#define IPSEC_OPT_ENABLE_NETIF                          12      /* Must be set before connecting */
+#define IPSEC_OPT_SLOT_SIZE                             13      /* Must be set before connecting */
+#define IPSEC_OPT_NETIF_RING_SIZE                       14      /* Must be set before connecting */
+#define IPSEC_OPT_TX_FSW_RING_SIZE                      15      /* Must be set before connecting */
+#define IPSEC_OPT_RX_FSW_RING_SIZE                      16      /* Must be set before connecting */
+#define IPSEC_OPT_CHANNEL_BIND_PID                      17      /* Must be set before connecting */
+#define IPSEC_OPT_KPIPE_TX_RING_SIZE                    18      /* Must be set before connecting */
+#define IPSEC_OPT_KPIPE_RX_RING_SIZE                    19      /* Must be set before connecting */
 
 /*
  * ipsec stats parameter structure