MCPcopy Create free account
hub / github.com/F-Stack/f-stack / dsw_port_handle_pause_flows

Function dsw_port_handle_pause_flows

dpdk/drivers/event/dsw/dsw_event.c:312–336  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

310dsw_port_flush_out_buffers(struct dsw_evdev *dsw, struct dsw_port *source_port);
311
312static void
313dsw_port_handle_pause_flows(struct dsw_evdev *dsw, struct dsw_port *port,
314 uint8_t originating_port_id,
315 struct dsw_queue_flow *paused_qfs,
316 uint8_t qfs_len)
317{
318 struct dsw_ctl_msg cfm = {
319 .type = DSW_CTL_CFM,
320 .originating_port_id = port->id
321 };
322
323 /* There might be already-scheduled events belonging to the
324 * paused flow in the output buffers.
325 */
326 dsw_port_flush_out_buffers(dsw, port);
327
328 dsw_port_add_paused_flows(port, paused_qfs, qfs_len);
329
330 /* Make sure any stores to the original port's in_ring is seen
331 * before the ctl message.
332 */
333 rte_smp_wmb();
334
335 dsw_port_ctl_enqueue(&dsw->ports[originating_port_id], &cfm);
336}
337
338struct dsw_queue_flow_burst {
339 struct dsw_queue_flow queue_flow;

Callers 1

dsw_port_ctl_processFunction · 0.85

Calls 3

dsw_port_ctl_enqueueFunction · 0.85

Tested by

no test coverage detected