dccp_pr_debug("invalid packet type\n");
printk(KERN_WARNING "DCCP: invalid packet type\n");
static inline int dccp_invalid_packet(struct sk_buff *skb){	const struct dccp_hdr *dh;	if (skb->pkt_type != PACKET_HOST)		return 1;	if (!pskb_may_pull(skb, sizeof(struct dccp_hdr))) {		dccp_pr_debug("pskb_may_pull failed\n");		return 1;	}	dh = dccp_hdr(skb);	/* If the packet type is not understood, drop packet and return */	if (dh->dccph_type >= DCCP_PKT_INVALID) {		dccp_pr_debug("invalid packet type\n");		return 1;	}	/*	 * If P.Data Offset is too small for packet type, or too large for	 * packet, drop packet and return	 */	if (dh->dccph_doff < dccp_hdr_len(skb) / sizeof(u32)) {		dccp_pr_debug("Offset(%u) too small 1\n", dh->dccph_doff);		return 1;	}	if (!pskb_may_pull(skb, dh->dccph_doff * sizeof(u32))) {		dccp_pr_debug("P.Data Offset(%u) too small 2\n",			      dh->dccph_doff);		return 1;	}	dh = dccp_hdr(skb);	/*	 * If P.type is not Data, Ack, or DataAck and P.X == 0 (the packet	 * has short sequence numbers), drop packet and return	 */	if (dh->dccph_x == 0 &&	    dh->dccph_type != DCCP_PKT_DATA &&	    dh->dccph_type != DCCP_PKT_ACK &&	    dh->dccph_type != DCCP_PKT_DATAACK) {		dccp_pr_debug("P.type (%s) not Data, Ack nor DataAck and "			      "P.X == 0\n", dccp_packet_name(dh->dccph_type));		return 1;	}	/* If the header checksum is incorrect, drop packet and return */	if (dccp_v4_verify_checksum(skb, skb->nh.iph->saddr,				    skb->nh.iph->daddr) < 0) {		dccp_pr_debug("header checksum is incorrect\n");		return 1;	}	return 0;}