+ if (iovcnt) {
+ /* XXX perform Tx offloads */
+ /* XXX silence compiler for now */
Need add TSO here (e1000 is a good reference) or disable TSO in
driver.
TSO is not enabled in driver, currently. This is lower priority now
since the I/O path for traffic to/from the guest CPU is not
performance critical. The forwarding path offloaded by the device is
the hot path, but that doesn't involve I/O to guest CPU, so Tx/Rx
offloads aren't in play.
But, someday, it would be nice to enable Rx/Tx offloads.
+ rocker_tlv_put_le32(buf, &pos, ROCKER_TLV_EVENT_TYPE,
+ ROCKER_TLV_EVENT_TYPE_LINK_CHANGED);
+ nest = rocker_tlv_nest_start(buf, &pos,
ROCKER_TLV_EVENT_INFO);
+ rocker_tlv_put_le32(buf, &pos,
ROCKER_TLV_EVENT_LINK_CHANGED_PPORT, pport);
+ rocker_tlv_put_u8(buf, &pos,
ROCKER_TLV_EVENT_LINK_CHANGED_LINKUP,
+ link_up ? 1 : 0);
Looks like those types are not documented.
Ok, I'll double check spec to make sure we're covered, for the items
you found.
+ rocker_tlv_put_le16(buf, &pos, ROCKER_TLV_RX_FLAGS, rx_flags);
+ rocker_tlv_put_le16(buf, &pos, ROCKER_TLV_RX_CSUM, rx_csum);
Note: Some backend (e.g tap) can do offloading, may consider to add
the
support in the future.
Yup, on TODO list for Rx/Tx offloads.
Using only 1 queues is ok for multiqueue backend. In the future may
consider to use all.
When we get to QoS for working, I think we'll want to enable these
multiqueues. QoS support is not implemented in rocker, currently, but
there is support defined in the OF-DPA spec as part of ACL processing.
So this is future work.