summaryrefslogtreecommitdiff
path: root/include/linux/ip.h
AgeCommit message (Collapse)Author
2005-06-18[NET] Rename open_request to request_sockArnaldo Carvalho de Melo
Ok, this one just renames some stuff to have a better namespace and to dissassociate it from TCP: struct open_request -> struct request_sock tcp_openreq_alloc -> reqsk_alloc tcp_openreq_free -> reqsk_free tcp_openreq_fastfree -> __reqsk_free With this most of the infrastructure closely resembles a struct sock methods subset. Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Signed-off-by: David S. Miller <davem@davemloft.net>
2005-06-18[NET] Generalise TCP's struct open_request minisock infrastructureArnaldo Carvalho de Melo
Kept this first changeset minimal, without changing existing names to ease peer review. Basicaly tcp_openreq_alloc now receives the or_calltable, that in turn has two new members: ->slab, that replaces tcp_openreq_cachep ->obj_size, to inform the size of the openreq descendant for a specific protocol The protocol specific fields in struct open_request were moved to a class hierarchy, with the things that are common to all connection oriented PF_INET protocols in struct inet_request_sock, the TCP ones in tcp_request_sock, that is an inet_request_sock, that is an open_request. I.e. this uses the same approach used for the struct sock class hierarchy, with sk_prot indicating if the protocol wants to use the open_request infrastructure by filling in sk_prot->rsk_prot with an or_calltable. Results? Performance is improved and TCP v4 now uses only 64 bytes per open request minisock, down from 96 without this patch :-) Next changeset will rename some of the structs, fields and functions mentioned above, struct or_calltable is way unclear, better name it struct request_sock_ops, s/struct open_request/struct request_sock/g, etc. Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Signed-off-by: David S. Miller <davem@davemloft.net>
2005-03-26[NET] make all protos partially use sk_protArnaldo Carvalho de Melo
sk_alloc_slab becomes proto_register, that receives a struct proto not necessarily completely filled, but at least with the proto name, owner and obj_size (aka proto specific sock size), with this we can remove the struct sock sk_owner and sk_slab, using sk->sk_prot->{owner,slab} instead. This patch also makes sk_set_owner not necessary anymore, as at sk_alloc time we have now access to the struct proto onwer and slab members, so we can bump the module refcount exactly at sock allocation time. Another nice "side effect" is that this patch removes the generic sk_cachep slab cache, making the only last two protocols that used it use just kmalloc, informing a struct proto obj_size equal to sizeof(struct sock). Ah, almost forgot that with this patch it is very easy to use a slab cache, as it is now created at proto_register time, and all protocols need to use proto_register, so its just a matter of switching the second parameter of proto_register to '1', heck, this can be done even at module load time with some small additional patch. Another optimization that will be possible in the future is to move the sk_protocol and sk_type struct sock members to struct proto, but this has to wait for all protocols to move completely to sk_prot. This changeset also introduces /proc/net/protocols, that lists the registered protocols details, some may seem excessive, but I'd like to keep them while working on further struct sock hierarchy work and also to realize which protocols are old ones, i.e. that still use struct proto_ops, etc, yeah, this is a bit of an exaggeration, as all protos still use struct proto_ops, but in time the idea is to move all to use sk->sk_prot and make the proto_ops infrastructure be shared among all protos, reducing one level of indirection. Signed-off-by: Arnaldo Carvalho de Melo <acme@conectiva.com.br> Signed-off-by: David S. Miller <davem@davemloft.net>
2005-03-16[NET] Reorder struct inet_sockThomas Graf
tos: int -> 8bit uc_ttl: int -> 16 bit cmsg_flags: int -> 16 bit hdrincl: 8bit -> 1 bit mc_loop: 8bit -> 1 bit Saves 12 bytes together with the reordering. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
2005-03-04[IPV6] Always add a fragment header after receiving TOO BIG w/ pmtu < 1280.Hideaki Yoshifuji
According to RFC2460, PMTU is set to the IPv6 Minimum Link MTU (1280) and a fragment header should always be included after a node receiving Too Big message reporting PMTU is less than the IPv6 Minimum Link MTU (1280). Signed-off-by: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
2005-01-14[SCTP] merge sctp_sock with sctp_optArnaldo Carvalho de Melo
No need for two structs, follow the new inet_sock layout style. Also introduce inet_sk_copy_descendant, to copy just the inet_sock descendant specific area from one sock to another. Signed-off-by: Arnaldo Carvalho de Melo <acme@conectiva.com.br> Signed-off-by: David S. Miller <davem@davemloft.net>
2004-12-27[INET] move inet_sock into inet_opt and rename it to inet_sockArnaldo Carvalho de Melo
With this we can remove all the cut'n'pasted layouts in all inet_sock derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. Signed-off-by: Arnaldo Carvalho de Melo <acme@conectiva.com.br> Signed-off-by: David S. Miller <davem@davemloft.net>
2004-06-22[NET] Move sndmsg_page and sndmsg_off to struct sockArnaldo Carvalho de Melo
Yeah, the poor cousins will use this as well :-)
2003-12-31[NET]: Do type checking in {udp,inet6,raw6,inet}_sk().Ingo Molnar
2003-10-26[IPV4,6]: Use common storage for cork'd flow, needed to handle mapped-ipv4 ↵Hideaki Yoshifuji
ipv6 addresses properly.
2003-05-16[IPV6]: Add IPCOMP support.Mitsuru Kanda
2003-05-15[IPV4]: Respect hoplimit route metric.David S. Miller
2003-04-15[IPV6]: Add MLDv2 support.David Stevens
2003-04-02[IPSEC]: Use of "sizeof" for header sizes, part IIHideaki Yoshifuji
2003-03-19[NET]: miscellaneous fixes.Alexey Kuznetsov
1. Fix illegal dereference of potentially freed memory in xfrm_policy.c 2. Complete wildcard flow addresses to real ones in xfrm_lookup(). 3. Respect optional flag when chacking for input policy. 4. Delete orphaned comments in ip.h. 5. Fix mistakedly freed route in tcp connect.
2002-10-24include/linux/ip.h: Define AH/ESP header layout.Alexey Kuznetsov
2002-10-15[NET]: Prepare for zerocopy NFS and IPSEC.Alexey Kuznetsov
- Import va10-hwchecksum-2.5.36.patch - Import va11-udpsendfile-2.5.36.patch - Implement new encapsulation friendly ipv4 output path.
2002-03-10Move IP-specific identity informationDavid S. Miller
out of struct sock. Fix -EFAULT handling in TCP direct user copy handling. Use struct initializers in IPV6 ndisc code.
2002-02-10Split protocol specific information out from struct sock.David S. Miller
Work done by Arnaldo Carvalho de Melo.
2002-02-04Import changesetLinus Torvalds