diff options
| author | Kazunori Miyazawa <kazunori@miyazawa.org> | 2003-05-12 00:21:19 -0700 |
|---|---|---|
| committer | David S. Miller <davem@nuts.ninka.net> | 2003-05-12 00:21:19 -0700 |
| commit | 6bac90985c8b65ffc25839c001aa7ef4831d2915 (patch) | |
| tree | 73327558bb0ecd6b78f4798deea619d6bc75d0d0 /include | |
| parent | d983ec93cba9e30482766d63d9bd4918a1a2a955 (diff) | |
[IPV4]: Introduce ip6_append_data.
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/ipv6.h | 7 | ||||
| -rw-r--r-- | include/linux/skbuff.h | 9 | ||||
| -rw-r--r-- | include/net/ipv6.h | 20 |
3 files changed, 36 insertions, 0 deletions
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index caab8bbc88fe..f70e91028c96 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h @@ -121,6 +121,7 @@ struct ipv6hdr { #include <linux/icmpv6.h> #include <net/if_inet6.h> /* struct ipv6_mc_socklist */ #include <linux/tcp.h> +#include <linux/udp.h> /* This structure contains results of exthdrs parsing @@ -178,6 +179,11 @@ struct ipv6_pinfo { struct ipv6_txoptions *opt; struct sk_buff *pktoptions; + struct { + struct ipv6_txoptions *opt; + struct rt6_info *rt; + struct flowi *fl; + } cork; }; struct raw6_opt { @@ -200,6 +206,7 @@ struct udp6_sock { struct sock sk; struct ipv6_pinfo *pinet6; struct inet_opt inet; + struct udp_opt udp; struct ipv6_pinfo inet6; }; diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 3be29f0d15f6..6b8ab6887236 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -792,6 +792,15 @@ static inline int skb_pagelen(const struct sk_buff *skb) return len + skb_headlen(skb); } +static inline void skb_fill_page_desc(struct sk_buff *skb, int i, struct page *page, int off, int size) +{ + skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; + frag->page = page; + frag->page_offset = off; + frag->size = size; + skb_shinfo(skb)->nr_frags = i+1; +} + #define SKB_PAGE_ASSERT(skb) do { if (skb_shinfo(skb)->nr_frags) \ BUG(); } while (0) #define SKB_FRAG_ASSERT(skb) do { if (skb_shinfo(skb)->frag_list) \ diff --git a/include/net/ipv6.h b/include/net/ipv6.h index b6760b3b9f56..754c7f36afda 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h @@ -316,6 +316,26 @@ extern int ip6_build_xmit(struct sock *sk, struct ipv6_txoptions *opt, int hlimit, int flags); +extern int ip6_append_data(struct sock *sk, + int getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb), + void *from, + int length, + int transhdrlen, + int hlimit, + struct ipv6_txoptions *opt, + struct flowi *fl, + struct rt6_info *rt, + unsigned int flags); + +extern int ip6_push_pending_frames(struct sock *sk); + +extern void ip6_flush_pending_frames(struct sock *sk); + +extern int ip6_dst_lookup(struct sock *sk, + struct dst_entry **dst, + struct flowi *fl, + struct in6_addr **saddr); + /* * skb processing functions */ |
