-
Notifications
You must be signed in to change notification settings - Fork 0
ice: add PF GTP-U RSS/FDIR configuration for VFs #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: v6.12.4
Are you sure you want to change the base?
Conversation
1f489b0 to
83faeb9
Compare
f4dd1fa to
fd2d08b
Compare
c68bf51 to
4314635
Compare
76f0ba9 to
722c38a
Compare
1ebeb7b to
1397373
Compare
0fa4034 to
e94b336
Compare
321f6b0 to
e134df9
Compare
jacob-keller
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This version looks pretty good, I think there are a few minor refactors you did to match out-of-tree which shouldn't be done.
I also think this would benefit from being split apart to have relevant refactors and changes required for GTPU support in separate commits to aid review. This is a lot of code in one change right now.
| int err; | ||
|
|
||
| if (is_tun && !ice_get_open_tunnel_port(&pf->hw, &port_num, TNL_ALL)) | ||
| if (is_tun && !ice_get_open_tunnel_port(&pf->hw, TNL_ALL, &port_num)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Przemek mentioned this on list,. I agree with him that we shouldn't reverse the order of arguments on this function for seemingly no reason. If you just want to align upstream with out-of-tree, we should invert the order out-of-tree.
| ice_release_res(hw, ICE_CHANGE_LOCK_RES_ID); | ||
| } | ||
|
|
||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unecessary extra whitespace here.
| ice_add_prof(struct ice_hw *hw, enum ice_block blk, u64 id, | ||
| unsigned long *ptypes, const struct ice_ptype_attributes *attr, | ||
| u16 attr_cnt, struct ice_fv_word *es, u16 *masks, bool symm, | ||
| bool fd_swap) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, we switched to bitmap from u8[] here, which explains the difference in parameters. Ok.
| cfg->addl_hdrs, cfg->hash_flds, | ||
| cfg->hdr_type, cfg->symm); | ||
| cfg->addl_hdrs, cfg->hash_flds, cfg->hdr_type, | ||
| cfg->symm); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this change does cleanup formatting. If you keep it, it should be part of a different patch since netdev typically doesn't like code format changes in the same patches as new development.
| #include <net/xdp_sock_drv.h> | ||
|
|
||
| #define DRV_SUMMARY "Intel(R) Ethernet Connection E800 Series Linux Driver" | ||
| #define DRV_SUMMARY "Intel(R) Ethernet Connection E800 Series Linux Driver +GTP-Uv12" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change makes sense for testing but isn't something that would typically go in a final patch.
| #define VIRTCHNL_VF_OFFLOAD_FDIR_PF BIT(28) | ||
| #define VIRTCHNL_VF_OFFLOAD_QOS BIT(29) | ||
| #define VIRTCHNL_VF_CAP_DCF BIT(30) | ||
| #define VIRTCHNL_VF_CAP_PTP BIT(31) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should minimize this to only the changes required to add GTPU support, and leave the other bits blank , perhaps with a patch up front that adds reservation comments.
5ee6395 to
ff78b2a
Compare
This patch adds support for configuring GTP-U and PPPoE RSS and Flow Director (FDIR) offloads for Virtual Functions (VFs) in the ice driver.
Key features introduced:
- Support for GTP-U over IPv4/IPv6 with optional extension headers.
- Inner IPv4/UDP/TCP matching for AVF FDIR:
- ipv4 + gtpu/gtpu_eh + ipv4 + udp/tcp
- PPPoE session ID-based flow classification.
- Raw pattern-based RSS and FDIR programming via virtchnl.
- Symmetric hashing support for raw and protocol-based flows.
- Enhanced virtchnl interface to support new offload capabilities.
The implementation includes:
- Flow engine and parser updates to support new protocol fields.
- Virtchnl interface extensions for VF-PF communication.
- RSS and FDIR profile management improvements.
- Conflict resolution and rollback logic for overlapping profiles.
- Backward compatibility with existing AVF and DCF implementations.
Tested with AVF and DCF drivers supporting the extended virtchnl interface and validated with representative GTP-U and PPPoE traffic patterns.
Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
This patch adds support for configuring GTP-U and PPPoE RSS and Flow Director (FDIR) offloads for Virtual Functions (VFs) in the ice driver.
Key features introduced:
The implementation includes:
Tested with AVF and DCF drivers supporting the extended virtchnl interface and validated with representative GTP-U and PPPoE traffic patterns.
Signed-off-by: Aleksandr Loktionov aleksandr.loktionov@intel.com