Home
last modified time | relevance | path

Searched refs:hsr (Results 1 – 15 of 15) sorted by relevance

/net/hsr/
Dhsr_device.c70 hsr_for_each_port(master->hsr, port) in hsr_check_carrier()
89 struct hsr_priv *hsr; in hsr_check_announce() local
91 hsr = netdev_priv(hsr_dev); in hsr_check_announce()
96 hsr->announce_count = 0; in hsr_check_announce()
97 mod_timer(&hsr->announce_timer, in hsr_check_announce()
103 del_timer(&hsr->announce_timer); in hsr_check_announce()
106 void hsr_check_carrier_and_operstate(struct hsr_priv *hsr) in hsr_check_carrier_and_operstate() argument
112 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_check_carrier_and_operstate()
122 int hsr_get_max_mtu(struct hsr_priv *hsr) in hsr_get_max_mtu() argument
129 hsr_for_each_port(hsr, port) in hsr_get_max_mtu()
[all …]
Dhsr_main.c28 struct hsr_priv *hsr; in hsr_netdev_notify() local
37 hsr = netdev_priv(dev); in hsr_netdev_notify()
38 port = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_netdev_notify()
44 hsr = port->hsr; in hsr_netdev_notify()
51 hsr_check_carrier_and_operstate(hsr); in hsr_netdev_notify()
62 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_netdev_notify()
70 port = hsr_port_get_hsr(hsr, HSR_PT_SLAVE_B); in hsr_netdev_notify()
71 res = hsr_create_self_node(&hsr->self_node_db, in hsr_netdev_notify()
83 mtu_max = hsr_get_max_mtu(port->hsr); in hsr_netdev_notify()
84 master = hsr_port_get_hsr(port->hsr, HSR_PT_MASTER); in hsr_netdev_notify()
[all …]
Dhsr_slave.c38 if (hsr_addr_is_self(port->hsr, eth_hdr(skb)->h_source)) { in hsr_handle_frame()
135 int hsr_add_port(struct hsr_priv *hsr, struct net_device *dev, in hsr_add_port() argument
147 port = hsr_port_get_hsr(hsr, type); in hsr_add_port()
155 port->hsr = hsr; in hsr_add_port()
165 list_add_tail_rcu(&port->port_list, &hsr->ports); in hsr_add_port()
168 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_add_port()
170 dev_set_mtu(master->dev, hsr_get_max_mtu(hsr)); in hsr_add_port()
181 struct hsr_priv *hsr; in hsr_del_port() local
184 hsr = port->hsr; in hsr_del_port()
185 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_del_port()
[all …]
Dhsr_framereg.c60 bool hsr_addr_is_self(struct hsr_priv *hsr, unsigned char *addr) in hsr_addr_is_self() argument
64 node = list_first_or_null_rcu(&hsr->self_node_db, struct hsr_node, in hsr_addr_is_self()
176 struct list_head *node_db = &port->hsr->node_db; in hsr_get_node()
241 node_db = &port_rcv->hsr->node_db; in hsr_handle_sup_frame()
311 node_dst = find_node_by_AddrA(&port->hsr->node_db, eth_hdr(skb)->h_dest); in hsr_addr_subst_dest()
356 static struct hsr_port *get_late_port(struct hsr_priv *hsr, in get_late_port() argument
360 return hsr_port_get_hsr(hsr, HSR_PT_SLAVE_A); in get_late_port()
362 return hsr_port_get_hsr(hsr, HSR_PT_SLAVE_B); in get_late_port()
367 return hsr_port_get_hsr(hsr, HSR_PT_SLAVE_A); in get_late_port()
371 return hsr_port_get_hsr(hsr, HSR_PT_SLAVE_B); in get_late_port()
[all …]
Dhsr_netlink.c77 struct hsr_priv *hsr; in hsr_fill_info() local
81 hsr = netdev_priv(dev); in hsr_fill_info()
86 port = hsr_port_get_hsr(hsr, HSR_PT_SLAVE_A); in hsr_fill_info()
94 port = hsr_port_get_hsr(hsr, HSR_PT_SLAVE_B); in hsr_fill_info()
102 hsr->sup_multicast_addr) || in hsr_fill_info()
103 nla_put_u16(skb, IFLA_HSR_SEQ_NR, hsr->sequence_nr)) in hsr_fill_info()
147 void hsr_nl_ringerror(struct hsr_priv *hsr, unsigned char addr[ETH_ALEN], in hsr_nl_ringerror() argument
181 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_nl_ringerror()
189 void hsr_nl_nodedown(struct hsr_priv *hsr, unsigned char addr[ETH_ALEN]) in hsr_nl_nodedown() argument
219 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_nl_nodedown()
[all …]
Dhsr_forward.c51 static bool is_supervision_frame(struct hsr_priv *hsr, struct sk_buff *skb) in is_supervision_frame() argument
62 hsr->sup_multicast_addr)) in is_supervision_frame()
73 if (hsrV1Hdr->hsr.encap_proto != htons(ETH_P_PRP)) in is_supervision_frame()
183 hsr_fill_tag(skb, frame, port, port->hsr->protVersion); in create_tagged_skb()
257 hsr_for_each_port(frame->port_rcv->hsr, port) { in hsr_forward_do()
300 static void check_local_dest(struct hsr_priv *hsr, struct sk_buff *skb, in check_local_dest() argument
303 if (hsr_addr_is_self(hsr, eth_hdr(skb)->h_dest)) { in check_local_dest()
326 frame->is_supervision = is_supervision_frame(port->hsr, skb); in hsr_fill_frame_info()
347 spin_lock_irqsave(&port->hsr->seqnr_lock, irqflags); in hsr_fill_frame_info()
348 frame->sequence_nr = port->hsr->sequence_nr; in hsr_fill_frame_info()
[all …]
Dhsr_main.h144 struct hsr_tag hsr; member
161 struct hsr_priv *hsr; member
180 #define hsr_for_each_port(hsr, port) \ argument
181 list_for_each_entry_rcu((port), &(hsr)->ports, port_list)
183 struct hsr_port *hsr_port_get_hsr(struct hsr_priv *hsr, enum hsr_port_type pt);
Dhsr_framereg.h26 bool hsr_addr_is_self(struct hsr_priv *hsr, unsigned char *addr);
43 void *hsr_get_next_node(struct hsr_priv *hsr, void *_pos,
46 int hsr_get_node_data(struct hsr_priv *hsr,
DMakefile5 obj-$(CONFIG_HSR) += hsr.o
7 hsr-y := hsr_main.o hsr_framereg.o hsr_device.o \
Dhsr_device.h21 void hsr_check_carrier_and_operstate(struct hsr_priv *hsr);
23 int hsr_get_max_mtu(struct hsr_priv *hsr);
Dhsr_netlink.h25 void hsr_nl_ringerror(struct hsr_priv *hsr, unsigned char addr[ETH_ALEN],
27 void hsr_nl_nodedown(struct hsr_priv *hsr, unsigned char addr[ETH_ALEN]);
Dhsr_slave.h20 int hsr_add_port(struct hsr_priv *hsr, struct net_device *dev,
DKconfig14 All Ethernet frames sent over the hsr device will be sent in both
/net/
DMakefile80 obj-$(CONFIG_HSR) += hsr/
DKconfig238 source "net/hsr/Kconfig"