Loading Documentation/networking/dccp.txt +5 −3 Original line number Diff line number Diff line DCCP protocol ============ Last updated: 10 November 2005 Contents ======== Loading Loading @@ -42,8 +41,11 @@ Socket options DCCP_SOCKOPT_PACKET_SIZE is used for CCID3 to set default packet size for calculations. DCCP_SOCKOPT_SERVICE sets the service. This is compulsory as per the specification. If you don't set it you will get EPROTO. DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of service codes (RFC 4340, sec. 8.1.2); if this socket option is not set, the socket will fall back to 0 (which means that no meaningful service code is present). Connecting sockets set at most one service option; for listening sockets, multiple service codes can be specified. Notes ===== Loading include/linux/dccp.h +8 −6 Original line number Diff line number Diff line Loading @@ -169,6 +169,12 @@ enum { DCCPO_MAX_CCID_SPECIFIC = 255, }; /* DCCP CCIDS */ enum { DCCPC_CCID2 = 2, DCCPC_CCID3 = 3, }; /* DCCP features */ enum { DCCPF_RESERVED = 0, Loading Loading @@ -320,7 +326,7 @@ static inline unsigned int dccp_hdr_len(const struct sk_buff *skb) /* initial values for each feature */ #define DCCPF_INITIAL_SEQUENCE_WINDOW 100 #define DCCPF_INITIAL_ACK_RATIO 2 #define DCCPF_INITIAL_CCID 2 #define DCCPF_INITIAL_CCID DCCPC_CCID2 #define DCCPF_INITIAL_SEND_ACK_VECTOR 1 /* FIXME: for now we're default to 1 but it should really be 0 */ #define DCCPF_INITIAL_SEND_NDP_COUNT 1 Loading Loading @@ -404,6 +410,7 @@ struct dccp_service_list { }; #define DCCP_SERVICE_INVALID_VALUE htonl((__u32)-1) #define DCCP_SERVICE_CODE_IS_ABSENT 0 static inline int dccp_list_has_service(const struct dccp_service_list *sl, const __be32 service) Loading Loading @@ -484,11 +491,6 @@ static inline struct dccp_minisock *dccp_msk(const struct sock *sk) return (struct dccp_minisock *)&dccp_sk(sk)->dccps_minisock; } static inline int dccp_service_not_initialized(const struct sock *sk) { return dccp_sk(sk)->dccps_service == DCCP_SERVICE_INVALID_VALUE; } static inline const char *dccp_role(const struct sock *sk) { switch (dccp_sk(sk)->dccps_role) { Loading net/dccp/Kconfig +16 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,22 @@ config IP_DCCP_DEBUG Just say N. config NET_DCCPPROBE tristate "DCCP connection probing" depends on PROC_FS && KPROBES ---help--- This module allows for capturing the changes to DCCP connection state in response to incoming packets. It is used for debugging DCCP congestion avoidance modules. If you don't understand what was just said, you don't need it: say N. Documentation on how to use the packet generator can be found at http://linux-net.osdl.org/index.php/DccpProbe To compile this code as a module, choose M here: the module will be called dccp_probe. endmenu endmenu net/dccp/Makefile +2 −0 Original line number Diff line number Diff line Loading @@ -11,9 +11,11 @@ dccp_ipv4-y := ipv4.o dccp-$(CONFIG_IP_DCCP_ACKVEC) += ackvec.o obj-$(CONFIG_INET_DCCP_DIAG) += dccp_diag.o obj-$(CONFIG_NET_DCCPPROBE) += dccp_probe.o dccp-$(CONFIG_SYSCTL) += sysctl.o dccp_diag-y := diag.o dccp_probe-y := probe.o obj-y += ccids/ net/dccp/ccids/ccid2.c +1 −1 Original line number Diff line number Diff line Loading @@ -808,7 +808,7 @@ static void ccid2_hc_rx_packet_recv(struct sock *sk, struct sk_buff *skb) } static struct ccid_operations ccid2 = { .ccid_id = 2, .ccid_id = DCCPC_CCID2, .ccid_name = "ccid2", .ccid_owner = THIS_MODULE, .ccid_hc_tx_obj_size = sizeof(struct ccid2_hc_tx_sock), Loading Loading
Documentation/networking/dccp.txt +5 −3 Original line number Diff line number Diff line DCCP protocol ============ Last updated: 10 November 2005 Contents ======== Loading Loading @@ -42,8 +41,11 @@ Socket options DCCP_SOCKOPT_PACKET_SIZE is used for CCID3 to set default packet size for calculations. DCCP_SOCKOPT_SERVICE sets the service. This is compulsory as per the specification. If you don't set it you will get EPROTO. DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of service codes (RFC 4340, sec. 8.1.2); if this socket option is not set, the socket will fall back to 0 (which means that no meaningful service code is present). Connecting sockets set at most one service option; for listening sockets, multiple service codes can be specified. Notes ===== Loading
include/linux/dccp.h +8 −6 Original line number Diff line number Diff line Loading @@ -169,6 +169,12 @@ enum { DCCPO_MAX_CCID_SPECIFIC = 255, }; /* DCCP CCIDS */ enum { DCCPC_CCID2 = 2, DCCPC_CCID3 = 3, }; /* DCCP features */ enum { DCCPF_RESERVED = 0, Loading Loading @@ -320,7 +326,7 @@ static inline unsigned int dccp_hdr_len(const struct sk_buff *skb) /* initial values for each feature */ #define DCCPF_INITIAL_SEQUENCE_WINDOW 100 #define DCCPF_INITIAL_ACK_RATIO 2 #define DCCPF_INITIAL_CCID 2 #define DCCPF_INITIAL_CCID DCCPC_CCID2 #define DCCPF_INITIAL_SEND_ACK_VECTOR 1 /* FIXME: for now we're default to 1 but it should really be 0 */ #define DCCPF_INITIAL_SEND_NDP_COUNT 1 Loading Loading @@ -404,6 +410,7 @@ struct dccp_service_list { }; #define DCCP_SERVICE_INVALID_VALUE htonl((__u32)-1) #define DCCP_SERVICE_CODE_IS_ABSENT 0 static inline int dccp_list_has_service(const struct dccp_service_list *sl, const __be32 service) Loading Loading @@ -484,11 +491,6 @@ static inline struct dccp_minisock *dccp_msk(const struct sock *sk) return (struct dccp_minisock *)&dccp_sk(sk)->dccps_minisock; } static inline int dccp_service_not_initialized(const struct sock *sk) { return dccp_sk(sk)->dccps_service == DCCP_SERVICE_INVALID_VALUE; } static inline const char *dccp_role(const struct sock *sk) { switch (dccp_sk(sk)->dccps_role) { Loading
net/dccp/Kconfig +16 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,22 @@ config IP_DCCP_DEBUG Just say N. config NET_DCCPPROBE tristate "DCCP connection probing" depends on PROC_FS && KPROBES ---help--- This module allows for capturing the changes to DCCP connection state in response to incoming packets. It is used for debugging DCCP congestion avoidance modules. If you don't understand what was just said, you don't need it: say N. Documentation on how to use the packet generator can be found at http://linux-net.osdl.org/index.php/DccpProbe To compile this code as a module, choose M here: the module will be called dccp_probe. endmenu endmenu
net/dccp/Makefile +2 −0 Original line number Diff line number Diff line Loading @@ -11,9 +11,11 @@ dccp_ipv4-y := ipv4.o dccp-$(CONFIG_IP_DCCP_ACKVEC) += ackvec.o obj-$(CONFIG_INET_DCCP_DIAG) += dccp_diag.o obj-$(CONFIG_NET_DCCPPROBE) += dccp_probe.o dccp-$(CONFIG_SYSCTL) += sysctl.o dccp_diag-y := diag.o dccp_probe-y := probe.o obj-y += ccids/
net/dccp/ccids/ccid2.c +1 −1 Original line number Diff line number Diff line Loading @@ -808,7 +808,7 @@ static void ccid2_hc_rx_packet_recv(struct sock *sk, struct sk_buff *skb) } static struct ccid_operations ccid2 = { .ccid_id = 2, .ccid_id = DCCPC_CCID2, .ccid_name = "ccid2", .ccid_owner = THIS_MODULE, .ccid_hc_tx_obj_size = sizeof(struct ccid2_hc_tx_sock), Loading