Home
last modified time | relevance | path

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

/net/hsr/
Dhsr_device.c62 hsr_for_each_port(master->hsr, port) { in hsr_check_carrier()
76 struct hsr_priv *hsr; in hsr_check_announce() local
78 hsr = netdev_priv(hsr_dev); in hsr_check_announce()
81 if (!timer_pending(&hsr->announce_timer)) { in hsr_check_announce()
82 hsr->announce_count = 0; in hsr_check_announce()
83 mod_timer(&hsr->announce_timer, jiffies + in hsr_check_announce()
88 timer_delete(&hsr->announce_timer); in hsr_check_announce()
92 void hsr_check_carrier_and_operstate(struct hsr_priv *hsr) in hsr_check_carrier_and_operstate() argument
97 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_check_carrier_and_operstate()
106 int hsr_get_max_mtu(struct hsr_priv *hsr) in hsr_get_max_mtu() argument
[all …]
Dhsr_framereg.c39 bool hsr_addr_is_self(struct hsr_priv *hsr, unsigned char *addr) in hsr_addr_is_self() argument
45 sn = rcu_dereference(hsr->self_node); in hsr_addr_is_self()
77 int hsr_create_self_node(struct hsr_priv *hsr, in hsr_create_self_node() argument
90 spin_lock_bh(&hsr->list_lock); in hsr_create_self_node()
91 old = rcu_replace_pointer(hsr->self_node, sn, in hsr_create_self_node()
92 lockdep_is_held(&hsr->list_lock)); in hsr_create_self_node()
93 spin_unlock_bh(&hsr->list_lock); in hsr_create_self_node()
100 void hsr_del_self_node(struct hsr_priv *hsr) in hsr_del_self_node() argument
104 spin_lock_bh(&hsr->list_lock); in hsr_del_self_node()
105 old = rcu_replace_pointer(hsr->self_node, NULL, in hsr_del_self_node()
[all …]
Dhsr_slave.c28 struct hsr_priv *hsr; in hsr_handle_frame() local
43 hsr = port->hsr; in hsr_handle_frame()
45 if (hsr_addr_is_self(port->hsr, eth_hdr(skb)->h_source)) { in hsr_handle_frame()
58 hsr->proto_ops->invalid_dan_ingress_frame && in hsr_handle_frame()
59 hsr->proto_ops->invalid_dan_ingress_frame(protocol)) in hsr_handle_frame()
64 if ((!hsr->prot_version && protocol == htons(ETH_P_PRP)) || in hsr_handle_frame()
125 static int hsr_portdev_setup(struct hsr_priv *hsr, struct net_device *dev, in hsr_portdev_setup() argument
137 if (!port->hsr->fwd_offloaded) { in hsr_portdev_setup()
143 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_portdev_setup()
160 if (!port->hsr->fwd_offloaded) in hsr_portdev_setup()
[all …]
Dhsr_main.c21 static bool hsr_slave_empty(struct hsr_priv *hsr) in hsr_slave_empty() argument
25 hsr_for_each_port(hsr, port) in hsr_slave_empty()
36 struct hsr_priv *hsr; in hsr_netdev_notify() local
46 hsr = netdev_priv(dev); in hsr_netdev_notify()
47 port = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_netdev_notify()
53 hsr = port->hsr; in hsr_netdev_notify()
60 hsr_check_carrier_and_operstate(hsr); in hsr_netdev_notify()
75 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_netdev_notify()
84 port = hsr_port_get_hsr(hsr, HSR_PT_SLAVE_B); in hsr_netdev_notify()
85 res = hsr_create_self_node(hsr, in hsr_netdev_notify()
[all …]
Dhsr_netlink.c107 struct hsr_priv *hsr = netdev_priv(dev); in hsr_dellink() local
109 del_timer_sync(&hsr->prune_timer); in hsr_dellink()
110 del_timer_sync(&hsr->announce_timer); in hsr_dellink()
112 hsr_debugfs_term(hsr); in hsr_dellink()
113 hsr_del_ports(hsr); in hsr_dellink()
115 hsr_del_self_node(hsr); in hsr_dellink()
116 hsr_del_nodes(&hsr->node_db); in hsr_dellink()
123 struct hsr_priv *hsr = netdev_priv(dev); in hsr_fill_info() local
127 port = hsr_port_get_hsr(hsr, HSR_PT_SLAVE_A); in hsr_fill_info()
133 port = hsr_port_get_hsr(hsr, HSR_PT_SLAVE_B); in hsr_fill_info()
[all …]
Dhsr_forward.c35 static bool is_supervision_frame(struct hsr_priv *hsr, struct sk_buff *skb) in is_supervision_frame() argument
48 hsr->sup_multicast_addr)) in is_supervision_frame()
63 if (hsr_V1_hdr->hsr.encap_proto != htons(ETH_P_PRP)) in is_supervision_frame()
201 lane_id |= port->hsr->net_id; in prp_set_lan_id()
320 return hsr_fill_tag(skb, frame, port, port->hsr->prot_version); in hsr_create_tagged_frame()
417 hsr_for_each_port(frame->port_rcv->hsr, port) { in hsr_forward_do()
418 struct hsr_priv *hsr = port->hsr; in hsr_forward_do() local
453 if (hsr->proto_ops->drop_frame && in hsr_forward_do()
454 hsr->proto_ops->drop_frame(frame, port)) in hsr_forward_do()
458 skb = hsr->proto_ops->create_tagged_frame(frame, port); in hsr_forward_do()
[all …]
Dhsr_framereg.h31 void hsr_del_self_node(struct hsr_priv *hsr);
37 bool hsr_addr_is_self(struct hsr_priv *hsr, unsigned char *addr);
50 int hsr_create_self_node(struct hsr_priv *hsr,
54 void *hsr_get_next_node(struct hsr_priv *hsr, void *_pos,
57 int hsr_get_node_data(struct hsr_priv *hsr,
DMakefile6 obj-$(CONFIG_HSR) += hsr.o
8 hsr-y := hsr_main.o hsr_framereg.o hsr_device.o \
10 hsr-$(CONFIG_DEBUG_FS) += hsr_debugfs.o
Dhsr_device.h16 void hsr_del_ports(struct hsr_priv *hsr);
21 void hsr_check_carrier_and_operstate(struct hsr_priv *hsr);
22 int hsr_get_max_mtu(struct hsr_priv *hsr);
Dhsr_main.h118 struct hsr_tag hsr; member
162 struct hsr_priv *hsr; member
221 #define hsr_for_each_port(hsr, port) \ argument
222 list_for_each_entry_rcu((port), &(hsr)->ports, port_list)
224 struct hsr_port *hsr_port_get_hsr(struct hsr_priv *hsr, enum hsr_port_type pt);
Dhsr_netlink.h23 void hsr_nl_ringerror(struct hsr_priv *hsr, unsigned char addr[ETH_ALEN],
25 void hsr_nl_nodedown(struct hsr_priv *hsr, unsigned char addr[ETH_ALEN]);
Dhsr_slave.h17 int hsr_add_port(struct hsr_priv *hsr, struct net_device *dev,
/net/dsa/
Dport.h106 int dsa_port_hsr_join(struct dsa_port *dp, struct net_device *hsr);
107 void dsa_port_hsr_leave(struct dsa_port *dp, struct net_device *hsr);
Dport.c2027 int dsa_port_hsr_join(struct dsa_port *dp, struct net_device *hsr) in dsa_port_hsr_join() argument
2035 dp->hsr_dev = hsr; in dsa_port_hsr_join()
2037 err = ds->ops->port_hsr_join(ds, dp->index, hsr); in dsa_port_hsr_join()
2044 void dsa_port_hsr_leave(struct dsa_port *dp, struct net_device *hsr) in dsa_port_hsr_leave() argument
2052 err = ds->ops->port_hsr_leave(ds, dp->index, hsr); in dsa_port_hsr_leave()
2056 dp->index, hsr->name, ERR_PTR(err)); in dsa_port_hsr_leave()
/net/
DMakefile74 obj-$(CONFIG_HSR) += hsr/
DKconfig265 source "net/hsr/Kconfig"