]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - include/net/llc_pdu.h
[SK_BUFF]: Introduce skb_reset_network_header(skb)
[mirror_ubuntu-zesty-kernel.git] / include / net / llc_pdu.h
index c7a959428b4ffa54f221b7d1f4473519631a6975..778f75a40b4d8f77de51cda44c2d39ea3fdf15db 100644 (file)
@@ -218,11 +218,6 @@ static inline struct llc_pdu_un *llc_pdu_un_hdr(struct sk_buff *skb)
        return (struct llc_pdu_un *)skb->nh.raw;
 }
 
-static inline void *llc_set_pdu_hdr(struct sk_buff *skb, void *ptr)
-{
-       return skb->nh.raw = ptr;
-}
-
 /**
  *     llc_pdu_header_init - initializes pdu header
  *     @skb: input skb that header must be set into it.
@@ -237,7 +232,11 @@ static inline void llc_pdu_header_init(struct sk_buff *skb, u8 type,
                                       u8 ssap, u8 dsap, u8 cr)
 {
        const int hlen = type == LLC_PDU_TYPE_U ? 3 : 4;
-       struct llc_pdu_un *pdu = llc_set_pdu_hdr(skb, skb_push(skb, hlen));
+       struct llc_pdu_un *pdu;
+
+       skb_push(skb, hlen);
+       skb_reset_network_header(skb);
+       pdu = llc_pdu_un_hdr(skb);
        pdu->dsap = dsap;
        pdu->ssap = ssap;
        pdu->ssap |= cr;
@@ -252,9 +251,9 @@ static inline void llc_pdu_header_init(struct sk_buff *skb, u8 type,
  */
 static inline void llc_pdu_decode_sa(struct sk_buff *skb, u8 *sa)
 {
-       if (skb->protocol == ntohs(ETH_P_802_2))
+       if (skb->protocol == htons(ETH_P_802_2))
                memcpy(sa, eth_hdr(skb)->h_source, ETH_ALEN);
-       else if (skb->protocol == ntohs(ETH_P_TR_802_2)) {
+       else if (skb->protocol == htons(ETH_P_TR_802_2)) {
                memcpy(sa, tr_hdr(skb)->saddr, ETH_ALEN);
                *sa &= 0x7F;
        }
@@ -269,9 +268,9 @@ static inline void llc_pdu_decode_sa(struct sk_buff *skb, u8 *sa)
  */
 static inline void llc_pdu_decode_da(struct sk_buff *skb, u8 *da)
 {
-       if (skb->protocol == ntohs(ETH_P_802_2))
+       if (skb->protocol == htons(ETH_P_802_2))
                memcpy(da, eth_hdr(skb)->h_dest, ETH_ALEN);
-       else if (skb->protocol == ntohs(ETH_P_TR_802_2))
+       else if (skb->protocol == htons(ETH_P_TR_802_2))
                memcpy(da, tr_hdr(skb)->daddr, ETH_ALEN);
 }
 
@@ -345,7 +344,7 @@ static inline void llc_pdu_init_as_test_rsp(struct sk_buff *skb,
        pdu->ctrl_1  = LLC_PDU_TYPE_U;
        pdu->ctrl_1 |= LLC_1_PDU_CMD_TEST;
        pdu->ctrl_1 |= LLC_U_PF_BIT_MASK;
-       if (ev_skb->protocol == ntohs(ETH_P_802_2)) {
+       if (ev_skb->protocol == htons(ETH_P_802_2)) {
                struct llc_pdu_un *ev_pdu = llc_pdu_un_hdr(ev_skb);
                int dsize;
 
@@ -357,7 +356,7 @@ static inline void llc_pdu_init_as_test_rsp(struct sk_buff *skb,
 
 /* LLC Type 1 XID command/response information fields format */
 struct llc_xid_info {
-       u8 fmt_id;      /* always 0x18 for LLC */
+       u8 fmt_id;      /* always 0x81 for LLC */
        u8 type;        /* different if NULL/non-NULL LSAP */
        u8 rw;          /* sender receive window */
 };