const u32 elapsed_time = now_delta(ap->dccpap_time) / 10; 
const u32 elapsed_time = timeval_now_delta(&ap->dccpap_time) / 10; 
static void dccp_insert_option_ack_vector(struct sock *sk, struct sk_buff *skb){	struct dccp_sock *dp = dccp_sk(sk);#ifdef CONFIG_IP_DCCP_DEBUG	const char *debug_prefix = dp->dccps_role == DCCP_ROLE_CLIENT ?					"CLIENT TX opt: " : "server TX opt: ";#endif	struct dccp_ackpkts *ap = dp->dccps_hc_rx_ackpkts;	int len = ap->dccpap_buf_vector_len + 2;	const u32 elapsed_time = now_delta(ap->dccpap_time) / 10;	unsigned char *to, *from;	if (elapsed_time != 0)		dccp_insert_option_elapsed_time(sk, skb, elapsed_time);	if (DCCP_SKB_CB(skb)->dccpd_opt_len + len > DCCP_MAX_OPT_LEN) {		LIMIT_NETDEBUG(KERN_INFO "DCCP: packet too small to "					 "insert ACK Vector!\n");		return;	}	/*	 * XXX: now we have just one ack vector sent record, so	 * we have to wait for it to be cleared.	 *	 * Of course this is not acceptable, but this is just for	 * basic testing now.	 */	if (ap->dccpap_ack_seqno != DCCP_MAX_SEQNO + 1)		return;	DCCP_SKB_CB(skb)->dccpd_opt_len += len;	to    = skb_push(skb, len);	*to++ = DCCPO_ACK_VECTOR_0;	*to++ = len;	len  = ap->dccpap_buf_vector_len;	from = ap->dccpap_buf + ap->dccpap_buf_head;	/* Check if buf_head wraps */	if (ap->dccpap_buf_head + len > ap->dccpap_buf_len) {		const unsigned int tailsize = (ap->dccpap_buf_len -					       ap->dccpap_buf_head);		memcpy(to, from, tailsize);		to   += tailsize;		len  -= tailsize;		from = ap->dccpap_buf;	}	memcpy(to, from, len);	/*	 *	From draft-ietf-dccp-spec-11.txt:	 *	 *	For each acknowledgement it sends, the HC-Receiver will add an	 *	acknowledgement record.  ack_seqno will equal the HC-Receiver	 *	sequence number it used for the ack packet; ack_ptr will equal	 *	buf_head; ack_ackno will equal buf_ackno; and ack_nonce will	 *	equal buf_nonce.	 *	 * This implemention uses just one ack record for now.	 */	ap->dccpap_ack_seqno	  = DCCP_SKB_CB(skb)->dccpd_seq;	ap->dccpap_ack_ptr	  = ap->dccpap_buf_head;	ap->dccpap_ack_ackno	  = ap->dccpap_buf_ackno;	ap->dccpap_ack_nonce	  = ap->dccpap_buf_nonce;	ap->dccpap_ack_vector_len = ap->dccpap_buf_vector_len;	dccp_pr_debug("%sACK Vector 0, len=%d, ack_seqno=%llu, "		      "ack_ackno=%llu\n",		      debug_prefix, ap->dccpap_ack_vector_len,		      (unsigned long long) ap->dccpap_ack_seqno,		      (unsigned long long) ap->dccpap_ack_ackno);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b6ee3d4ada4e85d9b9b9164c1327ef0850c79d5e/options.c/buggy/net/dccp/options.c