Lines Matching defs:hsr
62 hsr_for_each_port(master->hsr, port) {
77 struct hsr_priv *hsr;
79 hsr = netdev_priv(hsr_dev);
83 hsr->announce_count = 0;
84 mod_timer(&hsr->announce_timer,
90 del_timer(&hsr->announce_timer);
93 void hsr_check_carrier_and_operstate(struct hsr_priv *hsr)
99 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER);
109 int hsr_get_max_mtu(struct hsr_priv *hsr)
115 hsr_for_each_port(hsr, port)
126 struct hsr_priv *hsr;
128 hsr = netdev_priv(dev);
130 if (new_mtu > hsr_get_max_mtu(hsr)) {
143 struct hsr_priv *hsr;
147 hsr = netdev_priv(dev);
150 hsr_for_each_port(hsr, port) {
180 static netdev_features_t hsr_features_recompute(struct hsr_priv *hsr,
196 hsr_for_each_port(hsr, port)
207 struct hsr_priv *hsr = netdev_priv(dev);
209 return hsr_features_recompute(hsr, features);
214 struct hsr_priv *hsr = netdev_priv(dev);
217 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER);
222 spin_lock_bh(&hsr->seqnr_lock);
224 spin_unlock_bh(&hsr->seqnr_lock);
239 struct hsr_priv *hsr = master->hsr;
260 hsr->sup_multicast_addr,
279 struct hsr_priv *hsr = master->hsr;
286 if (hsr->announce_count < 3 && hsr->prot_version == 0) {
289 hsr->announce_count++;
299 set_hsr_stag_path(hsr_stag, (hsr->prot_version ? 0x0 : 0xf));
300 set_hsr_stag_HSR_ver(hsr_stag, hsr->prot_version);
303 spin_lock_bh(&hsr->seqnr_lock);
304 if (hsr->prot_version > 0) {
305 hsr_stag->sequence_nr = htons(hsr->sup_sequence_nr);
306 hsr->sup_sequence_nr++;
308 hsr_stag->sequence_nr = htons(hsr->sequence_nr);
309 hsr->sequence_nr++;
314 hsr_stag->tlv.HSR_TLV_length = hsr->prot_version ?
322 spin_unlock_bh(&hsr->seqnr_lock);
327 spin_unlock_bh(&hsr->seqnr_lock);
334 struct hsr_priv *hsr = master->hsr;
347 set_hsr_stag_path(hsr_stag, (hsr->prot_version ? 0x0 : 0xf));
348 set_hsr_stag_HSR_ver(hsr_stag, (hsr->prot_version ? 1 : 0));
351 spin_lock_bh(&hsr->seqnr_lock);
352 hsr_stag->sequence_nr = htons(hsr->sup_sequence_nr);
353 hsr->sup_sequence_nr++;
362 spin_unlock_bh(&hsr->seqnr_lock);
367 spin_unlock_bh(&hsr->seqnr_lock);
374 struct hsr_priv *hsr;
378 hsr = from_timer(hsr, t, announce_timer);
381 master = hsr_port_get_hsr(hsr, HSR_PT_MASTER);
382 hsr->proto_ops->send_sv_frame(master, &interval);
385 mod_timer(&hsr->announce_timer, jiffies + interval);
390 void hsr_del_ports(struct hsr_priv *hsr)
394 port = hsr_port_get_hsr(hsr, HSR_PT_SLAVE_A);
398 port = hsr_port_get_hsr(hsr, HSR_PT_SLAVE_B);
402 port = hsr_port_get_hsr(hsr, HSR_PT_MASTER);
416 .name = "hsr",
487 struct hsr_priv *hsr;
490 hsr = netdev_priv(hsr_dev);
491 INIT_LIST_HEAD(&hsr->ports);
492 INIT_LIST_HEAD(&hsr->node_db);
493 spin_lock_init(&hsr->list_lock);
502 hsr->net_id = PRP_LAN_ID << 1;
503 hsr->proto_ops = &prp_ops;
505 hsr->proto_ops = &hsr_ops;
509 res = hsr_create_self_node(hsr, hsr_dev->dev_addr,
514 spin_lock_init(&hsr->seqnr_lock);
516 hsr->sequence_nr = HSR_SEQNR_START;
517 hsr->sup_sequence_nr = HSR_SUP_SEQNR_START;
519 timer_setup(&hsr->announce_timer, hsr_announce, 0);
520 timer_setup(&hsr->prune_timer, hsr_prune_nodes, 0);
522 ether_addr_copy(hsr->sup_multicast_addr, def_multicast_addr);
523 hsr->sup_multicast_addr[ETH_ALEN - 1] = multicast_spec;
525 hsr->prot_version = protocol_version;
530 res = hsr_add_port(hsr, hsr_dev, HSR_PT_MASTER, extack);
537 hsr->fwd_offloaded = true;
545 res = hsr_add_port(hsr, slave[0], HSR_PT_SLAVE_A, extack);
549 res = hsr_add_port(hsr, slave[1], HSR_PT_SLAVE_B, extack);
553 hsr_debugfs_init(hsr, hsr_dev);
554 mod_timer(&hsr->prune_timer, jiffies + msecs_to_jiffies(PRUNE_PERIOD));
559 hsr_del_ports(hsr);
561 hsr_del_self_node(hsr);