Lines Matching full:offload
109 struct tc_taprio_qopt_offload offload; member
417 /* txtime-assist and full offload are mutually exclusive */ in taprio_flags_valid()
545 /* Devices with full offload are expected to honor this in hardware */
629 /* Will not be called in the full offload case, since the TX queues are
648 * the skb into smaller chunks. Drivers with full offload are in taprio_enqueue()
834 /* Will not be called in the full offload case, since the TX queues are
1373 __offload = kzalloc(struct_size(__offload, offload.entries, num_entries), in taprio_offload_alloc()
1380 return &__offload->offload; in taprio_offload_alloc()
1384 *offload) in taprio_offload_get()
1388 __offload = container_of(offload, struct __tc_taprio_qopt_offload, in taprio_offload_get()
1389 offload); in taprio_offload_get()
1393 return offload; in taprio_offload_get()
1397 void taprio_offload_free(struct tc_taprio_qopt_offload *offload) in taprio_offload_free() argument
1401 __offload = container_of(offload, struct __tc_taprio_qopt_offload, in taprio_offload_free()
1402 offload); in taprio_offload_free()
1414 * When using full offload, the admin configuration is promoted to oper at the
1420 * offload state (PENDING, ACTIVE, INACTIVE) so it can be visible in dump().
1454 struct tc_taprio_qopt_offload *offload, in taprio_sched_to_offload() argument
1460 offload->base_time = sched->base_time; in taprio_sched_to_offload()
1461 offload->cycle_time = sched->cycle_time; in taprio_sched_to_offload()
1462 offload->cycle_time_extension = sched->cycle_time_extension; in taprio_sched_to_offload()
1465 struct tc_taprio_sched_entry *e = &offload->entries[i]; in taprio_sched_to_offload()
1478 offload->num_entries = i; in taprio_sched_to_offload()
1515 struct tc_taprio_qopt_offload *offload; in taprio_enable_offload() local
1521 "Device does not support taprio offload"); in taprio_enable_offload()
1538 offload = taprio_offload_alloc(sched->num_entries); in taprio_enable_offload()
1539 if (!offload) { in taprio_enable_offload()
1541 "Not enough memory for enabling offload mode"); in taprio_enable_offload()
1544 offload->cmd = TAPRIO_CMD_REPLACE; in taprio_enable_offload()
1545 offload->extack = extack; in taprio_enable_offload()
1546 mqprio_qopt_reconstruct(dev, &offload->mqprio.qopt); in taprio_enable_offload()
1547 offload->mqprio.extack = extack; in taprio_enable_offload()
1548 taprio_sched_to_offload(dev, sched, offload, &caps); in taprio_enable_offload()
1549 mqprio_fp_to_offload(q->fp, &offload->mqprio); in taprio_enable_offload()
1552 offload->max_sdu[tc] = q->max_sdu[tc]; in taprio_enable_offload()
1554 err = ops->ndo_setup_tc(dev, TC_SETUP_QDISC_TAPRIO, offload); in taprio_enable_offload()
1557 "Device failed to setup taprio offload"); in taprio_enable_offload()
1564 /* The offload structure may linger around via a reference taken by the in taprio_enable_offload()
1568 offload->extack = NULL; in taprio_enable_offload()
1569 offload->mqprio.extack = NULL; in taprio_enable_offload()
1570 taprio_offload_free(offload); in taprio_enable_offload()
1580 struct tc_taprio_qopt_offload *offload; in taprio_disable_offload() local
1586 offload = taprio_offload_alloc(0); in taprio_disable_offload()
1587 if (!offload) { in taprio_disable_offload()
1589 "Not enough memory to disable offload mode"); in taprio_disable_offload()
1592 offload->cmd = TAPRIO_CMD_DESTROY; in taprio_disable_offload()
1594 err = ops->ndo_setup_tc(dev, TC_SETUP_QDISC_TAPRIO, offload); in taprio_disable_offload()
1597 "Device failed to disable offload"); in taprio_disable_offload()
1604 taprio_offload_free(offload); in taprio_disable_offload()
1609 /* If full offload is enabled, the only possible clockid is the net device's
1632 "The 'clockid' cannot be specified for full offload"); in taprio_parse_clockid()
1784 "Preemption only supported with full offload"); in taprio_parse_tc_entries()
2151 /* In offload mode, the root taprio qdisc is bypassed in taprio_attach()
2199 /* In offload mode, the child Qdisc is directly attached to the netdev in taprio_graft()
2203 * both software and offload cases, to have an up-to-date reference to in taprio_graft()
2333 struct tc_taprio_qopt_offload *offload, in taprio_dump_xstats() argument
2347 * that stats are optional to the offload itself in taprio_dump_xstats()
2354 err = ops->ndo_setup_tc(dev, TC_SETUP_QDISC_TAPRIO, offload); in taprio_dump_xstats()
2382 struct tc_taprio_qopt_offload offload = { in taprio_dump_stats() local
2386 return taprio_dump_xstats(sch, d, &offload, &offload.stats); in taprio_dump_stats()
2490 struct tc_taprio_qopt_offload offload = { in taprio_dump_class_stats() local
2501 return taprio_dump_xstats(sch, d, &offload, &offload.queue_stats.stats); in taprio_dump_class_stats()