On Wednesday 2010-06-23 18:11, Patrick McHardy wrote: >+ switch (dev->type) { >+ case ARPHRD_ETHER: >+ printk("MACSRC=%pM MACDST=%pM MACPROTO=%.4x ", >+ eth_hdr(skb)->h_source, eth_hdr(skb)->h_dest, >+ ntohs(eth_hdr(skb)->h_proto)); Why not just the standard %04x? [Same applies to v6] >+ printk("MAC="); >+ if (dev->hard_header_len && >+ skb->mac_header != skb->network_header) { >+ const unsigned char *p = skb_mac_header(skb); >+ unsigned int i; >+ >+ for (i = 0; i < dev->hard_header_len; i++, p++) >+ printk("%02x%c", *p, >+ i == dev->hard_header_len - 1 ? ' ' : ':'); if (dev->hard_header_len > 0) printk("%02x", *p++); for (i = 1; i < dev->hard_header_len; ++i) printk(":%02x", *p++); I like better for getting rid of the comparison inside the loop. >+ /* MAC logging for input chain only. */ "input path". >+ if (in && !out) >+ dump_mac_header(loginfo, skb); > > dump_packet(loginfo, skb, 0); # ipv6 > printk("\n"); >+ if (dev->hard_header_len && >+ skb->mac_header != skb->network_header) { >+ const unsigned char *p = skb_mac_header(skb); >+ unsigned int len = dev->hard_header_len; >+ unsigned int i; >+ >+ if (dev->type == ARPHRD_SIT && >+ (p -= ETH_HLEN) < skb->head) >+ p = NULL; What is the purpose of this? If the device is a sit, there is no guarantee that there's any ethernet header in the skb. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html