解析数据报文时写了几个调试打印输出的小函数
print_common.h
#ifndef PRINT_COMMON_H
#define PRINT_COMMON_H
#ifdef __KERNEL__
#else
#define printk printf
typedef enum{false, true}bool;
#endif
#define NIPQUAD(addr) \
((unsigned char *)&addr)[0], \
((unsigned char *)&addr)[1], \
((unsigned char *)&addr)[2], \
((unsigned char *)&addr)[3]
static inline void print_ethdr(const struct ethhdr *mach, const unsigned char *level)
{
printk("%s"
"MAC:h_dest[%02x:%02x:%02x:%02x:%02x:%02x],h_source[%02x:%02x:%02x:%02x:%02x:%02x],h_proto[%u]\n",
level,
mach->h_dest[0], mach->h_dest[1], mach->h_dest[2],mach->h_dest[3],mach->h_dest[4],mach->h_dest[5],
mach->h_source[0],mach->h_source[1],mach->h_source[2],mach->h_source[3],mach->h_source[4],mach->h_source[5],
mach->h_proto);
return;
}
static inline void print_iphdr(const struct iphdr *ip