Merge tag 'pci-v5.11-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaa...
[linux-2.6-microblaze.git] / include / net / mptcp.h
index 753ba7e..5694370 100644 (file)
@@ -29,7 +29,8 @@ struct mptcp_ext {
                        use_ack:1,
                        ack64:1,
                        mpc_map:1,
-                       __unused:2;
+                       frozen:1,
+                       __unused:1;
        /* one byte hole */
 };
 
@@ -45,6 +46,7 @@ struct mptcp_out_options {
 #endif
        };
        u8 addr_id;
+       u16 port;
        u64 ahmac;
        u8 rm_id;
        u8 join_id;
@@ -87,7 +89,8 @@ bool mptcp_established_options(struct sock *sk, struct sk_buff *skb,
                               struct mptcp_out_options *opts);
 void mptcp_incoming_options(struct sock *sk, struct sk_buff *skb);
 
-void mptcp_write_options(__be32 *ptr, struct mptcp_out_options *opts);
+void mptcp_write_options(__be32 *ptr, const struct tcp_sock *tp,
+                        struct mptcp_out_options *opts);
 
 /* move the skb extension owership, with the assumption that 'to' is
  * newly allocated
@@ -106,6 +109,19 @@ static inline void mptcp_skb_ext_move(struct sk_buff *to,
        from->active_extensions = 0;
 }
 
+static inline void mptcp_skb_ext_copy(struct sk_buff *to,
+                                     struct sk_buff *from)
+{
+       struct mptcp_ext *from_ext;
+
+       from_ext = skb_ext_find(from, SKB_EXT_MPTCP);
+       if (!from_ext)
+               return;
+
+       from_ext->frozen = 1;
+       skb_ext_copy(to, from);
+}
+
 static inline bool mptcp_ext_matches(const struct mptcp_ext *to_ext,
                                     const struct mptcp_ext *from_ext)
 {
@@ -193,6 +209,11 @@ static inline void mptcp_skb_ext_move(struct sk_buff *to,
 {
 }
 
+static inline void mptcp_skb_ext_copy(struct sk_buff *to,
+                                     struct sk_buff *from)
+{
+}
+
 static inline bool mptcp_skb_can_collapse(const struct sk_buff *to,
                                          const struct sk_buff *from)
 {