inet: constify ip_route_output_flow() socket argument
[deliverable/linux.git] / include / net / dst.h
index ef8f1d43a2033bc67ab3c8f3b08657191463654e..779206c15f8bae0b86e5b3536ca256ba4eee2802 100644 (file)
@@ -207,6 +207,12 @@ static inline void dst_metric_set(struct dst_entry *dst, int metric, u32 val)
                p[metric-1] = val;
 }
 
+/* Kernel-internal feature bits that are unallocated in user space. */
+#define DST_FEATURE_ECN_CA     (1 << 31)
+
+#define DST_FEATURE_MASK       (DST_FEATURE_ECN_CA)
+#define DST_FEATURE_ECN_MASK   (DST_FEATURE_ECN_CA | RTAX_FEATURE_ECN)
+
 static inline u32
 dst_feature(const struct dst_entry *dst, u32 feature)
 {
@@ -289,13 +295,18 @@ static inline void skb_dst_drop(struct sk_buff *skb)
        }
 }
 
-static inline void skb_dst_copy(struct sk_buff *nskb, const struct sk_buff *oskb)
+static inline void __skb_dst_copy(struct sk_buff *nskb, unsigned long refdst)
 {
-       nskb->_skb_refdst = oskb->_skb_refdst;
+       nskb->_skb_refdst = refdst;
        if (!(nskb->_skb_refdst & SKB_DST_NOREF))
                dst_clone(skb_dst(nskb));
 }
 
+static inline void skb_dst_copy(struct sk_buff *nskb, const struct sk_buff *oskb)
+{
+       __skb_dst_copy(nskb, oskb->_skb_refdst);
+}
+
 /**
  * skb_dst_force - makes sure skb dst is refcounted
  * @skb: buffer
@@ -443,13 +454,13 @@ static inline void dst_set_expires(struct dst_entry *dst, int timeout)
 }
 
 /* Output packet to network from transport.  */
-static inline int dst_output_sk(struct sock *sk, struct sk_buff *skb)
+static inline int dst_output(struct sock *sk, struct sk_buff *skb)
 {
        return skb_dst(skb)->output(sk, skb);
 }
-static inline int dst_output(struct sk_buff *skb)
+static inline int dst_output_okfn(struct net *net, struct sock *sk, struct sk_buff *skb)
 {
-       return dst_output_sk(skb->sk, skb);
+       return dst_output(sk, skb);
 }
 
 /* Input packet from network to transport.  */
@@ -478,7 +489,8 @@ struct flowi;
 #ifndef CONFIG_XFRM
 static inline struct dst_entry *xfrm_lookup(struct net *net,
                                            struct dst_entry *dst_orig,
-                                           const struct flowi *fl, struct sock *sk,
+                                           const struct flowi *fl,
+                                           const struct sock *sk,
                                            int flags)
 {
        return dst_orig;
@@ -487,7 +499,7 @@ static inline struct dst_entry *xfrm_lookup(struct net *net,
 static inline struct dst_entry *xfrm_lookup_route(struct net *net,
                                                  struct dst_entry *dst_orig,
                                                  const struct flowi *fl,
-                                                 struct sock *sk,
+                                                 const struct sock *sk,
                                                  int flags)
 {
        return dst_orig;
@@ -500,11 +512,11 @@ static inline struct xfrm_state *dst_xfrm(const struct dst_entry *dst)
 
 #else
 struct dst_entry *xfrm_lookup(struct net *net, struct dst_entry *dst_orig,
-                             const struct flowi *fl, struct sock *sk,
+                             const struct flowi *fl, const struct sock *sk,
                              int flags);
 
 struct dst_entry *xfrm_lookup_route(struct net *net, struct dst_entry *dst_orig,
-                                   const struct flowi *fl, struct sock *sk,
+                                   const struct flowi *fl, const struct sock *sk,
                                    int flags);
 
 /* skb attached with this dst needs transformation if dst->xfrm is valid */
This page took 0.027581 seconds and 5 git commands to generate.