hdr = &proto_hdrs->proto_hdr[proto_hdrs->count++]; switch (packet_hdrs & IAVF_ADV_RSS_FLOW_SEG_HDR_L4) { case IAVF_ADV_RSS_FLOW_SEG_HDR_TCP:
iavf_fill_adv_rss_tcp_hdr(hdr, hash_flds); break; case IAVF_ADV_RSS_FLOW_SEG_HDR_UDP:
iavf_fill_adv_rss_udp_hdr(hdr, hash_flds); break; case IAVF_ADV_RSS_FLOW_SEG_HDR_SCTP:
iavf_fill_adv_rss_sctp_hdr(hdr, hash_flds); break; default: return -EINVAL;
}
return 0;
}
/** * iavf_find_adv_rss_cfg_by_hdrs - find RSS configuration with header type * @adapter: pointer to the VF adapter structure * @packet_hdrs: protocol header type to find. * * Returns pointer to advance RSS configuration if found or null
*/ struct iavf_adv_rss *
iavf_find_adv_rss_cfg_by_hdrs(struct iavf_adapter *adapter, u32 packet_hdrs)
{ struct iavf_adv_rss *rss;
list_for_each_entry(rss, &adapter->adv_rss_list_head, list) if (rss->packet_hdrs == packet_hdrs) return rss;
return NULL;
}
/** * iavf_print_adv_rss_cfg * @adapter: pointer to the VF adapter structure * @rss: pointer to the advance RSS configuration to print * @action: the string description about how to handle the RSS * @result: the string description about the virtchnl result * * Print the advance RSS configuration
**/ void
iavf_print_adv_rss_cfg(struct iavf_adapter *adapter, struct iavf_adv_rss *rss, constchar *action, constchar *result)
{
u32 packet_hdrs = rss->packet_hdrs;
u64 hash_flds = rss->hash_flds; staticchar hash_opt[300]; constchar *proto;
if (packet_hdrs & IAVF_ADV_RSS_FLOW_SEG_HDR_TCP)
proto = "TCP"; elseif (packet_hdrs & IAVF_ADV_RSS_FLOW_SEG_HDR_UDP)
proto = "UDP"; elseif (packet_hdrs & IAVF_ADV_RSS_FLOW_SEG_HDR_SCTP)
proto = "SCTP"; else return;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.