]> git.saurik.com Git - apple/ipsec.git/blobdiff - ipsec-tools/racoon/isakmp_frag.h
ipsec-317.220.1.tar.gz
[apple/ipsec.git] / ipsec-tools / racoon / isakmp_frag.h
index 52ee10a4251bd73496e5091ed79d67603548ed35..7a23ec0ce57596f709f6f0dc31e1e77a32066da2 100644 (file)
@@ -1,4 +1,6 @@
-/*     $Id: isakmp_frag.h,v 1.2 2004/10/24 16:51:24 manubsd Exp $ */
+/*     $NetBSD: isakmp_frag.h,v 1.5 2006/09/18 20:32:40 manu Exp $     */
+
+/*     Id: isakmp_frag.h,v 1.3 2005/04/09 16:25:24 manubsd Exp */
 
 /*
  * Copyright (C) 2004 Emmanuel Dreyfus 
 
 /*
  * Copyright (C) 2004 Emmanuel Dreyfus 
  * SUCH DAMAGE.
  */
 
  * SUCH DAMAGE.
  */
 
+#ifndef _ISAKMP_FRAG_H
+#define _ISAKMP_FRAG_H
+
+#include "racoon_types.h"
+
+/* These are the values from parsing "remote {}"
+   block of the config file. */
+#define ISAKMP_FRAG_OFF                FALSE   /* = 0 */
+#define ISAKMP_FRAG_ON         TRUE    /* = 1 */
+#define ISAKMP_FRAG_FORCE      2
+
 /* IKE fragmentation capabilities */
 /* IKE fragmentation capabilities */
+#define VENDORID_FRAG_IDENT    0x80000000
 #define VENDORID_FRAG_BASE     0x40000000
 #define VENDORID_FRAG_AGG      0x80000000
 
 #define VENDORID_FRAG_BASE     0x40000000
 #define VENDORID_FRAG_AGG      0x80000000
 
-#define ISAKMP_FRAG_MAXLEN 552
+#define ISAKMP_FRAG_MAXLEN 1280 // TODO: make configurable (for now, use 1280 to make enough room for typical overhead)
+
+#define FRAG_PUT_NON_ESP_MARKER                1
 
 struct isakmp_frag_item {
        int     frag_num;
        int     frag_last;
 
 struct isakmp_frag_item {
        int     frag_num;
        int     frag_last;
+       u_int16_t frag_id;
        struct isakmp_frag_item *frag_next;
        vchar_t *frag_packet;
 };
 
        struct isakmp_frag_item *frag_next;
        vchar_t *frag_packet;
 };
 
-int isakmp_sendfrags(struct ph1handle *, vchar_t *);
-unsigned int vendorid_frag_cap(struct isakmp_gen *);
-int isakmp_frag_extract(struct ph1handle *, vchar_t *);
-vchar_t *isakmp_frag_reassembly(struct ph1handle *);
-vchar_t *isakmp_frag_addcap(vchar_t *, int);
+int isakmp_sendfrags (phase1_handle_t *, vchar_t *);
+unsigned int vendorid_frag_cap (struct isakmp_gen *);
+int isakmp_frag_extract (phase1_handle_t *, vchar_t *);
+vchar_t *isakmp_frag_reassembly (phase1_handle_t *);
+vchar_t *isakmp_frag_addcap (vchar_t *, int);
+int sendfragsfromto (int s, vchar_t *, struct sockaddr_storage *, struct sockaddr_storage *, int, u_int32_t);
+
+#endif /* _ISAKMP_FRAG_H */