typedef unsigned long long u64;
typedef unsigned char u8;
#define mac_to_u64(mac) \
(u64)(((u64)mac[0] << 40)|((u64)mac[1] << 32)| \((u64)mac[2] << 24)|((u64)mac[3] << 16)| \
((u64)mac[4] << 8)|((u64)mac[5]))
#define u64_to_mac(num, mac) \
do {\
mac[0] = ((u8 *)&num)[5]; \
mac[1] = ((u8 *)&num)[4]; \
mac[2] = ((u8 *)&num)[3]; \
mac[3] = ((u8 *)&num)[2]; \
mac[4] = ((u8 *)&num)[1]; \
mac[5] = ((u8 *)&num)[0]; \
}while(0)