/net/hsr/ |
D | hsr_device.c | 70 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 …]
|
D | hsr_main.c | 28 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 …]
|
D | hsr_slave.c | 38 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 …]
|
D | hsr_framereg.c | 60 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 …]
|
D | hsr_netlink.c | 77 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 …]
|
D | hsr_forward.c | 51 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 …]
|
D | hsr_main.h | 144 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);
|
D | hsr_framereg.h | 26 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,
|
D | Makefile | 5 obj-$(CONFIG_HSR) += hsr.o 7 hsr-y := hsr_main.o hsr_framereg.o hsr_device.o \
|
D | hsr_device.h | 21 void hsr_check_carrier_and_operstate(struct hsr_priv *hsr); 23 int hsr_get_max_mtu(struct hsr_priv *hsr);
|
D | hsr_netlink.h | 25 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]);
|
D | hsr_slave.h | 20 int hsr_add_port(struct hsr_priv *hsr, struct net_device *dev,
|
D | Kconfig | 14 All Ethernet frames sent over the hsr device will be sent in both
|
/net/ |
D | Makefile | 80 obj-$(CONFIG_HSR) += hsr/
|
D | Kconfig | 238 source "net/hsr/Kconfig"
|