mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-28 16:56:26 +00:00
5f10376b6b
Similarly to a recent include/net/ cleanup, this patch adds missing includes to networking headers under include/linux. All these problems are currently masked by the existing users including the missing dependency before the broken header. Link: https://lore.kernel.org/all/20220723045755.2676857-1-kuba@kernel.org/ v1 Signed-off-by: Jakub Kicinski <kuba@kernel.org> Link: https://lore.kernel.org/r/20220726215652.158167-1-kuba@kernel.org Signed-off-by: Paolo Abeni <pabeni@redhat.com>
48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _LINUX_IF_HSR_H_
|
|
#define _LINUX_IF_HSR_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct net_device;
|
|
|
|
/* used to differentiate various protocols */
|
|
enum hsr_version {
|
|
HSR_V0 = 0,
|
|
HSR_V1,
|
|
PRP_V1,
|
|
};
|
|
|
|
/* HSR Tag.
|
|
* As defined in IEC-62439-3:2010, the HSR tag is really { ethertype = 0x88FB,
|
|
* path, LSDU_size, sequence Nr }. But we let eth_header() create { h_dest,
|
|
* h_source, h_proto = 0x88FB }, and add { path, LSDU_size, sequence Nr,
|
|
* encapsulated protocol } instead.
|
|
*
|
|
* Field names as defined in the IEC:2010 standard for HSR.
|
|
*/
|
|
struct hsr_tag {
|
|
__be16 path_and_LSDU_size;
|
|
__be16 sequence_nr;
|
|
__be16 encap_proto;
|
|
} __packed;
|
|
|
|
#define HSR_HLEN 6
|
|
|
|
#if IS_ENABLED(CONFIG_HSR)
|
|
extern bool is_hsr_master(struct net_device *dev);
|
|
extern int hsr_get_version(struct net_device *dev, enum hsr_version *ver);
|
|
#else
|
|
static inline bool is_hsr_master(struct net_device *dev)
|
|
{
|
|
return false;
|
|
}
|
|
static inline int hsr_get_version(struct net_device *dev,
|
|
enum hsr_version *ver)
|
|
{
|
|
return -EINVAL;
|
|
}
|
|
#endif /* CONFIG_HSR */
|
|
|
|
#endif /*_LINUX_IF_HSR_H_*/
|