lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Thu, 17 Sep 2020 16:41:42 -0700 (PDT)
From:   David Miller <davem@...emloft.net>
To:     xie.he.0141@...il.com
Cc:     kuba@...nel.org, netdev@...r.kernel.org,
        linux-kernel@...r.kernel.org, khc@...waw.pl
Subject: Re: [PATCH net] drivers/net/wan/hdlc: Set skb->protocol before
 transmitting

From: Xie He <xie.he.0141@...il.com>
Date: Wed, 16 Sep 2020 14:25:07 -0700

> This patch sets skb->protocol before transmitting frames on the HDLC
> device, so that a user listening on the HDLC device with an AF_PACKET
> socket will see outgoing frames' sll_protocol field correctly set and
> consistent with that of incoming frames.
> 
> 1. Control frames in hdlc_cisco and hdlc_ppp
> 
> When these drivers send control frames, skb->protocol is not set.
> 
> This value should be set to htons(ETH_P_HDLC), because when receiving
> control frames, their skb->protocol is set to htons(ETH_P_HDLC).
> 
> When receiving, hdlc_type_trans in hdlc.h is called, which then calls
> cisco_type_trans or ppp_type_trans. The skb->protocol of control frames
> is set to htons(ETH_P_HDLC) so that the control frames can be received
> by hdlc_rcv in hdlc.c, which calls cisco_rx or ppp_rx to process the
> control frames.
> 
> 2. hdlc_fr
> 
> When this driver sends control frames, skb->protocol is set to internal
> values used in this driver.
> 
> When this driver sends data frames (from upper stacked PVC devices),
> skb->protocol is the same as that of the user data packet being sent on
> the upper PVC device (for normal PVC devices), or is htons(ETH_P_802_3)
> (for Ethernet-emulating PVC devices).
> 
> However, skb->protocol for both control frames and data frames should be
> set to htons(ETH_P_HDLC), because when receiving, all frames received on
> the HDLC device will have their skb->protocol set to htons(ETH_P_HDLC).
> 
> When receiving, hdlc_type_trans in hdlc.h is called, and because this
> driver doesn't provide a type_trans function in struct hdlc_proto,
> all frames will have their skb->protocol set to htons(ETH_P_HDLC).
> The frames are then received by hdlc_rcv in hdlc.c, which calls fr_rx
> to process the frames (control frames are consumed and data frames
> are re-received on upper PVC devices).
> 
> Cc: Krzysztof Halasa <khc@...waw.pl>
> Signed-off-by: Xie He <xie.he.0141@...il.com>

Applied, thank you.

Powered by blists - more mailing lists