Skip to contentSkip to conversation

: Add test function for data packets

PATCH In review Gerrit Renker 2 participants 3 messages Mar 21, 2007 – Apr 2, 2007 Networking

lore
Share & tools
lore
#0 lore raw

PATCH 25/25 : Add test function for data packets

[DCCP]: Add test function for data packets

This adds a function which returns true' when an skb contains one of the packet types specified in [RFC 4340, 7.7] as data packet'.

NB - Resisted the temptation to define
int dccp_non_data_packet(skb) { return !dccp_data_packet(skb); }, since maybe someone will define new packet types.

---
 net/dccp/dccp.h |   12 ++++++++++++
 1 file changed, 12 insertions(+)
net/dccp/dccp.h +12 -0
@@ -321,6 +321,7 @@ struct dccp_skb_cb {
 
 #define DCCP_SKB_CB(__skb) ((struct dccp_skb_cb *)&((__skb)->cb[0]))
 
+/* RFC 4340, sec. 7.7 */
 static inline int dccp_non_data_packet(const struct sk_buff *skb)
 {
 	const __u8 type = DCCP_SKB_CB(skb)->dccpd_type;
@@ -333,6 +334,17 @@ static inline int dccp_non_data_packet(c
 	       type = DCCP_PKT_SYNCACK;
 }
 
+/* RFC 4340, sec. 7.7 */
+static inline int dccp_data_packet(const struct sk_buff *skb)
+{
+	const __u8 type = DCCP_SKB_CB(skb)->dccpd_type;
+
+	return type = DCCP_PKT_DATA	 ||
+	       type = DCCP_PKT_DATAACK  ||
+	       type = DCCP_PKT_REQUEST  ||
+	       type = DCCP_PKT_RESPONSE;
+}
+
 static inline int dccp_packet_without_ack(const struct sk_buff *skb)
 {
 	const __u8 type = DCCP_SKB_CB(skb)->dccpd_type;
Acked-by on v1 25/25
#1 lore raw
Quoted 2 lines · Gerrit Renker

[DCCP]: Add test function for data packets

I presume this is for following patches as no use yet. Normally patches aren't merged into kernel until there is a use for them.

Signature · 3 lines
Web: http://wand.net.nz/~iam4
Blog: http://iansblog.jandi.co.nz
WAND Network Research Group
#2 lore raw
In reply to Gerrit Renker
|  > [DCCP]: Add test function for data packets
|  >
|  
|  I presume this is for following patches as no use yet. Normally
|  patches aren't merged into kernel until there is a use for them.

Yes it is used - the CCID3 receiver tests repeatedly for data packets. It may be useful in general too since it actually implements exactly what RFC 4340 calls data packets.