sctp: Add Auto-ASCONF support (core).
[pandora-kernel.git] / include / net / sctp / structs.h
index 7df327a..cd8c929 100644 (file)
@@ -205,6 +205,11 @@ extern struct sctp_globals {
         * It is a list of sctp_sockaddr_entry.
         */
        struct list_head local_addr_list;
+       int default_auto_asconf;
+       struct list_head addr_waitq;
+       struct timer_list addr_wq_timer;
+       struct list_head auto_asconf_splist;
+       spinlock_t addr_wq_lock;
 
        /* Lock that protects the local_addr_list writers */
        spinlock_t addr_list_lock;
@@ -264,6 +269,11 @@ extern struct sctp_globals {
 #define sctp_port_hashtable            (sctp_globals.port_hashtable)
 #define sctp_local_addr_list           (sctp_globals.local_addr_list)
 #define sctp_local_addr_lock           (sctp_globals.addr_list_lock)
+#define sctp_auto_asconf_splist                (sctp_globals.auto_asconf_splist)
+#define sctp_addr_waitq                        (sctp_globals.addr_waitq)
+#define sctp_addr_wq_timer             (sctp_globals.addr_wq_timer)
+#define sctp_addr_wq_lock              (sctp_globals.addr_wq_lock)
+#define sctp_default_auto_asconf       (sctp_globals.default_auto_asconf)
 #define sctp_scope_policy              (sctp_globals.ipv4_scope_policy)
 #define sctp_addip_enable              (sctp_globals.addip_enable)
 #define sctp_addip_noauth              (sctp_globals.addip_noauth_enable)
@@ -341,6 +351,8 @@ struct sctp_sock {
        atomic_t pd_mode;
        /* Receive to here while partial delivery is in effect. */
        struct sk_buff_head pd_lobby;
+       struct list_head auto_asconf_list;
+       int do_auto_asconf;
 };
 
 static inline struct sctp_sock *sctp_sk(const struct sock *sk)
@@ -792,6 +804,8 @@ struct sctp_sockaddr_entry {
        __u8 valid;
 };
 
+#define SCTP_ADDRESS_TICK_DELAY        500
+
 typedef struct sctp_chunk *(sctp_packet_phandler_t)(struct sctp_association *);
 
 /* This structure holds lists of chunks as we are assembling for
@@ -1236,6 +1250,7 @@ sctp_scope_t sctp_scope(const union sctp_addr *);
 int sctp_in_scope(const union sctp_addr *addr, const sctp_scope_t scope);
 int sctp_is_any(struct sock *sk, const union sctp_addr *addr);
 int sctp_addr_is_valid(const union sctp_addr *addr);
+int sctp_is_ep_boundall(struct sock *sk);
 
 
 /* What type of endpoint?  */