Lines Matching refs:port

108 				       struct hsr_port *port)
115 netdev_warn_once(port->dev,
126 struct hsr_port *port)
140 __FILE__, __LINE__, port->dev->name);
149 struct hsr_port *port)
153 if (port->type == HSR_PT_SLAVE_A)
159 lane_id |= port->hsr->net_id;
166 struct hsr_port *port)
185 prp_set_lan_id(trailer, port);
195 struct hsr_port *port)
199 if (port->type == HSR_PT_SLAVE_A)
209 struct hsr_port *port, u8 proto_version)
224 hsr_set_path_id(hsr_ethhdr, port);
236 * unchanged. Otherwise, create a private frame especially tagged for 'port'.
239 struct hsr_port *port)
250 hsr_set_path_id(hsr_ethhdr, port);
276 return hsr_fill_tag(skb, frame, port, port->hsr->prot_version);
280 struct hsr_port *port)
288 prp_set_lan_id(trailer, port);
299 return prp_fill_rct(skb, frame, port);
323 static int hsr_xmit(struct sk_buff *skb, struct hsr_port *port,
327 hsr_addr_subst_dest(frame->node_src, skb, port);
332 ether_addr_copy(eth_hdr(skb)->h_source, port->dev->dev_addr);
337 bool prp_drop_frame(struct hsr_frame_info *frame, struct hsr_port *port)
340 port->type == HSR_PT_SLAVE_B) ||
342 port->type == HSR_PT_SLAVE_A));
359 struct hsr_port *port;
362 hsr_for_each_port(frame->port_rcv->hsr, port) {
363 struct hsr_priv *hsr = port->hsr;
365 if (port == frame->port_rcv)
369 if (port->type == HSR_PT_MASTER && !frame->is_local_dest)
373 if (port->type != HSR_PT_MASTER && frame->is_local_exclusive)
376 /* Don't send frame over port where it has been sent before.
380 hsr_register_frame_out(port, frame->node_src,
384 if (frame->is_supervision && port->type == HSR_PT_MASTER) {
393 hsr->proto_ops->drop_frame(frame, port))
396 if (port->type != HSR_PT_MASTER)
397 skb = hsr->proto_ops->create_tagged_frame(frame, port);
399 skb = hsr->proto_ops->get_untagged_frame(frame, port);
406 skb->dev = port->dev;
407 if (port->type == HSR_PT_MASTER)
408 hsr_deliver_master(skb, port->dev, frame->node_src);
410 hsr_xmit(skb, port, frame);
436 struct hsr_port *port = frame->port_rcv;
437 struct hsr_priv *hsr = port->hsr;
443 if (port->type != HSR_PT_MASTER) {
456 struct hsr_port *port = frame->port_rcv;
457 struct hsr_priv *hsr = port->hsr;
474 /* Standard frame or PRP from master port */
500 struct sk_buff *skb, struct hsr_port *port)
502 struct hsr_priv *hsr = port->hsr;
513 frame->is_supervision = is_supervision_frame(port->hsr, skb);
514 frame->node_src = hsr_get_node(port, &hsr->node_db, skb,
516 port->type);
536 frame->port_rcv = port;
541 check_local_dest(port->hsr, skb, frame);
546 /* Must be called holding rcu read lock (because of the port parameter) */
547 void hsr_forward_skb(struct sk_buff *skb, struct hsr_port *port)
552 if (fill_frame_info(&frame, skb, port) < 0)
555 hsr_register_frame_in(frame.node_src, port, frame.sequence_nr);
558 /* Gets called for ingress frames as well as egress from master port.
559 * So check and increment stats for master port only here.
561 if (port->type == HSR_PT_MASTER) {
562 port->dev->stats.tx_packets++;
563 port->dev->stats.tx_bytes += skb->len;
573 port->dev->stats.tx_dropped++;