Lines Matching refs:hsr

62 	hsr_for_each_port(master->hsr, port) {  in hsr_check_carrier()
77 struct hsr_priv *hsr; in hsr_check_announce() local
79 hsr = netdev_priv(hsr_dev); in hsr_check_announce()
83 hsr->announce_count = 0; in hsr_check_announce()
84 mod_timer(&hsr->announce_timer, in hsr_check_announce()
90 del_timer(&hsr->announce_timer); in hsr_check_announce()
93 void hsr_check_carrier_and_operstate(struct hsr_priv *hsr) in hsr_check_carrier_and_operstate() argument
99 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_check_carrier_and_operstate()
109 int hsr_get_max_mtu(struct hsr_priv *hsr) in hsr_get_max_mtu() argument
115 hsr_for_each_port(hsr, port) in hsr_get_max_mtu()
126 struct hsr_priv *hsr; in hsr_dev_change_mtu() local
128 hsr = netdev_priv(dev); in hsr_dev_change_mtu()
130 if (new_mtu > hsr_get_max_mtu(hsr)) { in hsr_dev_change_mtu()
143 struct hsr_priv *hsr; in hsr_dev_open() local
147 hsr = netdev_priv(dev); in hsr_dev_open()
150 hsr_for_each_port(hsr, port) { in hsr_dev_open()
180 static netdev_features_t hsr_features_recompute(struct hsr_priv *hsr, in hsr_features_recompute() argument
196 hsr_for_each_port(hsr, port) in hsr_features_recompute()
207 struct hsr_priv *hsr = netdev_priv(dev); in hsr_fix_features() local
209 return hsr_features_recompute(hsr, features); in hsr_fix_features()
214 struct hsr_priv *hsr = netdev_priv(dev); in hsr_dev_xmit() local
217 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_dev_xmit()
237 struct hsr_priv *hsr = master->hsr; in hsr_init_skb() local
260 hsr->sup_multicast_addr, in hsr_init_skb()
279 struct hsr_priv *hsr = master->hsr; in send_hsr_supervision_frame() local
289 if (hsr->announce_count < 3 && hsr->prot_version == 0) { in send_hsr_supervision_frame()
292 hsr->announce_count++; in send_hsr_supervision_frame()
295 if (!hsr->prot_version) in send_hsr_supervision_frame()
306 if (hsr->prot_version > 0) { in send_hsr_supervision_frame()
313 set_hsr_stag_path(hsr_stag, (hsr->prot_version ? 0x0 : 0xf)); in send_hsr_supervision_frame()
314 set_hsr_stag_HSR_ver(hsr_stag, hsr->prot_version); in send_hsr_supervision_frame()
317 spin_lock_irqsave(&master->hsr->seqnr_lock, irqflags); in send_hsr_supervision_frame()
318 if (hsr->prot_version > 0) { in send_hsr_supervision_frame()
319 hsr_stag->sequence_nr = htons(hsr->sup_sequence_nr); in send_hsr_supervision_frame()
320 hsr->sup_sequence_nr++; in send_hsr_supervision_frame()
321 hsr_tag->sequence_nr = htons(hsr->sequence_nr); in send_hsr_supervision_frame()
322 hsr->sequence_nr++; in send_hsr_supervision_frame()
324 hsr_stag->sequence_nr = htons(hsr->sequence_nr); in send_hsr_supervision_frame()
325 hsr->sequence_nr++; in send_hsr_supervision_frame()
327 spin_unlock_irqrestore(&master->hsr->seqnr_lock, irqflags); in send_hsr_supervision_frame()
331 hsr_stag->HSR_TLV_length = hsr->prot_version ? in send_hsr_supervision_frame()
349 struct hsr_priv *hsr = master->hsr; in send_prp_supervision_frame() local
365 set_hsr_stag_path(hsr_stag, (hsr->prot_version ? 0x0 : 0xf)); in send_prp_supervision_frame()
366 set_hsr_stag_HSR_ver(hsr_stag, (hsr->prot_version ? 1 : 0)); in send_prp_supervision_frame()
369 spin_lock_irqsave(&master->hsr->seqnr_lock, irqflags); in send_prp_supervision_frame()
370 hsr_stag->sequence_nr = htons(hsr->sup_sequence_nr); in send_prp_supervision_frame()
371 hsr->sup_sequence_nr++; in send_prp_supervision_frame()
380 spin_unlock_irqrestore(&master->hsr->seqnr_lock, irqflags); in send_prp_supervision_frame()
388 rct->sequence_nr = htons(hsr->sequence_nr); in send_prp_supervision_frame()
389 hsr->sequence_nr++; in send_prp_supervision_frame()
390 spin_unlock_irqrestore(&master->hsr->seqnr_lock, irqflags); in send_prp_supervision_frame()
399 struct hsr_priv *hsr; in hsr_announce() local
403 hsr = from_timer(hsr, t, announce_timer); in hsr_announce()
406 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_announce()
407 hsr->proto_ops->send_sv_frame(master, &interval); in hsr_announce()
410 mod_timer(&hsr->announce_timer, jiffies + interval); in hsr_announce()
415 void hsr_del_ports(struct hsr_priv *hsr) in hsr_del_ports() argument
419 port = hsr_port_get_hsr(hsr, HSR_PT_SLAVE_A); in hsr_del_ports()
423 port = hsr_port_get_hsr(hsr, HSR_PT_SLAVE_B); in hsr_del_ports()
427 port = hsr_port_get_hsr(hsr, HSR_PT_MASTER); in hsr_del_ports()
510 struct hsr_priv *hsr; in hsr_dev_finalize() local
513 hsr = netdev_priv(hsr_dev); in hsr_dev_finalize()
514 INIT_LIST_HEAD(&hsr->ports); in hsr_dev_finalize()
515 INIT_LIST_HEAD(&hsr->node_db); in hsr_dev_finalize()
516 INIT_LIST_HEAD(&hsr->self_node_db); in hsr_dev_finalize()
517 spin_lock_init(&hsr->list_lock); in hsr_dev_finalize()
526 hsr->net_id = PRP_LAN_ID << 1; in hsr_dev_finalize()
527 hsr->proto_ops = &prp_ops; in hsr_dev_finalize()
529 hsr->proto_ops = &hsr_ops; in hsr_dev_finalize()
533 res = hsr_create_self_node(hsr, hsr_dev->dev_addr, in hsr_dev_finalize()
538 spin_lock_init(&hsr->seqnr_lock); in hsr_dev_finalize()
540 hsr->sequence_nr = HSR_SEQNR_START; in hsr_dev_finalize()
541 hsr->sup_sequence_nr = HSR_SUP_SEQNR_START; in hsr_dev_finalize()
543 timer_setup(&hsr->announce_timer, hsr_announce, 0); in hsr_dev_finalize()
544 timer_setup(&hsr->prune_timer, hsr_prune_nodes, 0); in hsr_dev_finalize()
546 ether_addr_copy(hsr->sup_multicast_addr, def_multicast_addr); in hsr_dev_finalize()
547 hsr->sup_multicast_addr[ETH_ALEN - 1] = multicast_spec; in hsr_dev_finalize()
549 hsr->prot_version = protocol_version; in hsr_dev_finalize()
564 res = hsr_add_port(hsr, hsr_dev, HSR_PT_MASTER, extack); in hsr_dev_finalize()
574 res = hsr_add_port(hsr, slave[0], HSR_PT_SLAVE_A, extack); in hsr_dev_finalize()
578 res = hsr_add_port(hsr, slave[1], HSR_PT_SLAVE_B, extack); in hsr_dev_finalize()
582 hsr_debugfs_init(hsr, hsr_dev); in hsr_dev_finalize()
583 mod_timer(&hsr->prune_timer, jiffies + msecs_to_jiffies(PRUNE_PERIOD)); in hsr_dev_finalize()
588 hsr_del_ports(hsr); in hsr_dev_finalize()
590 hsr_del_self_node(hsr); in hsr_dev_finalize()