struct nfgenmsg {
        u_int8_t  nfgen_family;         /* AF_xxx */
        u_int8_t  version;              /* nfnetlink version */
-       u_int16_t res_id;               /* resource id */
+       __be16    res_id;               /* resource id */
 };
 
 #define NFNETLINK_V0   0
 
 };
 
 struct nfulnl_msg_packet_hdr {
-       u_int16_t       hw_protocol;    /* hw protocol (network order) */
+       __be16          hw_protocol;    /* hw protocol (network order) */
        u_int8_t        hook;           /* netfilter hook */
        u_int8_t        _pad;
 };
 
 struct nfulnl_msg_packet_hw {
-       u_int16_t       hw_addrlen;
+       __be16          hw_addrlen;
        u_int16_t       _pad;
        u_int8_t        hw_addr[8];
 };
 
 struct nfulnl_msg_packet_timestamp {
-       aligned_u64     sec;
-       aligned_u64     usec;
+       aligned_be64    sec;
+       aligned_be64    usec;
 };
 
 #define NFULNL_PREFIXLEN       30      /* just like old log target */
 } __attribute__ ((packed));
 
 struct nfulnl_msg_config_mode {
-       u_int32_t       copy_range;
+       __be32          copy_range;
        u_int8_t        copy_mode;
        u_int8_t        _pad;
 } __attribute__ ((packed));
 
 };
 
 struct nfqnl_msg_packet_hdr {
-       u_int32_t       packet_id;      /* unique ID of packet in queue */
-       u_int16_t       hw_protocol;    /* hw protocol (network order) */
+       __be32          packet_id;      /* unique ID of packet in queue */
+       __be16          hw_protocol;    /* hw protocol (network order) */
        u_int8_t        hook;           /* netfilter hook */
 } __attribute__ ((packed));
 
 struct nfqnl_msg_packet_hw {
-       u_int16_t       hw_addrlen;
+       __be16          hw_addrlen;
        u_int16_t       _pad;
        u_int8_t        hw_addr[8];
 };
 
 struct nfqnl_msg_packet_timestamp {
-       aligned_u64     sec;
-       aligned_u64     usec;
+       aligned_be64    sec;
+       aligned_be64    usec;
 };
 
 enum nfqnl_attr_type {
 #define NFQA_MAX (__NFQA_MAX - 1)
 
 struct nfqnl_msg_verdict_hdr {
-       u_int32_t verdict;
-       u_int32_t id;
+       __be32 verdict;
+       __be32 id;
 };
 
 
 struct nfqnl_msg_config_cmd {
        u_int8_t        command;        /* nfqnl_msg_config_cmds */
        u_int8_t        _pad;
-       u_int16_t       pf;             /* AF_xxx for PF_[UN]BIND */
+       __be16          pf;             /* AF_xxx for PF_[UN]BIND */
 };
 
 enum nfqnl_config_mode {
 };
 
 struct nfqnl_msg_config_params {
-       u_int32_t       copy_range;
+       __be32          copy_range;
        u_int8_t        copy_mode;      /* enum nfqnl_config_mode */
 } __attribute__ ((packed));
 
 
 struct ip_conntrack_old_tuple
 {
        struct {
-               __u32 ip;
+               __be32 ip;
                union {
                        __u16 all;
                } u;
        } src;
 
        struct {
-               __u32 ip;
+               __be32 ip;
                union {
                        __u16 all;
                } u;
 
        union xt_policy_addr    smask;
        union xt_policy_addr    daddr;
        union xt_policy_addr    dmask;
-       u_int32_t               spi;
+       __be32                  spi;
        u_int32_t               reqid;
        u_int8_t                proto;
        u_int8_t                mode;
 
 
 /* this is a special 64bit data type that is 8-byte aligned */
 #define aligned_u64 unsigned long long __attribute__((aligned(8)))
+#define aligned_be64 __be64 __attribute__((aligned(8)))
+#define aligned_le64 __le64 __attribute__((aligned(8)))
 
 /**
  * The type used for indexing onto a disc or disc partition.
 
        struct nfulnl_msg_packet_hdr pmsg;
        struct nlmsghdr *nlh;
        struct nfgenmsg *nfmsg;
-       u_int32_t tmp_uint;
+       __be32 tmp_uint;
 
        UDEBUG("entered\n");
                
 
        if (indev && skb->dev && skb->dev->hard_header_parse) {
                struct nfulnl_msg_packet_hw phw;
-
-               phw.hw_addrlen = 
-                       skb->dev->hard_header_parse((struct sk_buff *)skb, 
+               int len = skb->dev->hard_header_parse((struct sk_buff *)skb,
                                                    phw.hw_addr);
-               phw.hw_addrlen = htons(phw.hw_addrlen);
+               phw.hw_addrlen = htons(len);
                NFA_PUT(inst->skb, NFULA_HWADDR, sizeof(phw), &phw);
        }
 
        if (skb->sk) {
                read_lock_bh(&skb->sk->sk_callback_lock);
                if (skb->sk->sk_socket && skb->sk->sk_socket->file) {
-                       u_int32_t uid = htonl(skb->sk->sk_socket->file->f_uid);
+                       __be32 uid = htonl(skb->sk->sk_socket->file->f_uid);
                        /* need to unlock here since NFA_PUT may goto */
                        read_unlock_bh(&skb->sk->sk_callback_lock);
                        NFA_PUT(inst->skb, NFULA_UID, sizeof(uid), &uid);
        }
 
        if (nfula[NFULA_CFG_TIMEOUT-1]) {
-               u_int32_t timeout = 
-                       *(u_int32_t *)NFA_DATA(nfula[NFULA_CFG_TIMEOUT-1]);
+               __be32 timeout =
+                       *(__be32 *)NFA_DATA(nfula[NFULA_CFG_TIMEOUT-1]);
 
                nfulnl_set_timeout(inst, ntohl(timeout));
        }
 
        if (nfula[NFULA_CFG_NLBUFSIZ-1]) {
-               u_int32_t nlbufsiz = 
-                       *(u_int32_t *)NFA_DATA(nfula[NFULA_CFG_NLBUFSIZ-1]);
+               __be32 nlbufsiz =
+                       *(__be32 *)NFA_DATA(nfula[NFULA_CFG_NLBUFSIZ-1]);
 
                nfulnl_set_nlbufsiz(inst, ntohl(nlbufsiz));
        }
        }
 
        if (nfula[NFULA_CFG_FLAGS-1]) {
-               u_int16_t flags =
-                       *(u_int16_t *)NFA_DATA(nfula[NFULA_CFG_FLAGS-1]);
+               __be16 flags =
+                       *(__be16 *)NFA_DATA(nfula[NFULA_CFG_FLAGS-1]);
                nfulnl_set_flags(inst, ntohs(flags));
        }
 
 
        struct sk_buff *entskb = entry->skb;
        struct net_device *indev;
        struct net_device *outdev;
-       unsigned int tmp_uint;
+       __be32 tmp_uint;
 
        QDEBUG("entered\n");
 
            && entskb->dev->hard_header_parse) {
                struct nfqnl_msg_packet_hw phw;
 
-               phw.hw_addrlen =
-                       entskb->dev->hard_header_parse(entskb,
+               int len = entskb->dev->hard_header_parse(entskb,
                                                           phw.hw_addr);
-               phw.hw_addrlen = htons(phw.hw_addrlen);
+               phw.hw_addrlen = htons(len);
                NFA_PUT(skb, NFQA_HWADDR, sizeof(phw), &phw);
        }
 
        }
 
        if (nfqa[NFQA_MARK-1])
-               entry->skb->nfmark = ntohl(*(u_int32_t *)
+               entry->skb->nfmark = ntohl(*(__be32 *)
                                           NFA_DATA(nfqa[NFQA_MARK-1]));
                
        issue_verdict(entry, verdict);
 
       unsigned int protoff,
       int *hotdrop)
 {
-       u16 _ports[2], *pptr;
+       __be16 _ports[2], *pptr;
        const struct xt_multiport *multiinfo = matchinfo;
 
        if (offset)
         unsigned int protoff,
         int *hotdrop)
 {
-       u16 _ports[2], *pptr;
+       __be16 _ports[2], *pptr;
        const struct xt_multiport_v1 *multiinfo = matchinfo;
 
        if (offset)