summaryrefslogtreecommitdiff
path: root/drivers/net/mlx5/mlx5_flow.c
AgeCommit message (Collapse)Author
2019-03-08net/mlx5: fix flow priorities probing error pathViacheslav Ovsiienko
The mlx5 PMD probes the Verbs flow priorities supported with ibv_create_flow() function. If rdma-core or kernel fails for some reason, the returned error causes the drop queue is not destroyed, and pd is locked by not freed resource. Also the mlx5_flow_discover_priorities() returned negative value as error, and this code was reported "as is", without sign changing (eventually causing assert(err > 0)). Fixes: 2815702baea7 ("net/mlx5: replace verbs priorities by flow") Cc: stable@dpdk.org Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2019-03-01net/mlx: prefix private structureThomas Monjalon
The private structure stored in rte_eth_dev->data->dev_private was named "struct priv". In order to ease code browsing, the structure is renamed "struct mlx[45]_priv". Cc: stable@dpdk.org Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2019-01-24net/mlx5: block RSS action without Rx queueDekel Peled
This patch modifies function mlx5_flow_validate_action_rss(), to prevent the setting of rule with rss action, but without specifying any queues. For example: flow create 0 ingress pattern end actions rss queues end / end Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2019-01-24net/mlx5: allow port start with zero Rx queueDekel Peled
During port start, function mlx5_ctrl_flow_vlan() is called to create default ingress flow rules. For specific use-cases, a port can be used for Tx only. In such case, number of Rx queues can be set to 0 to save resources, hence the default ingress rules are irrelevant. This patch modifies function mlx5_ctrl_flow_vlan() to avoid the creation of the default ingress rules when number of Rx queues is 0. It also includes update of validation functions for relevant actions, mlx5_flow_validate_action_queue() and mlx5_flow_validate_action_rss(), to prevent creation of flow rules with these actions when number of Rx queues is 0. Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2019-01-14net/mlx5: validate TOS and TTL on E-SwitchViacheslav Ovsiienko
This patch adds the type-of-service and time-to-live IP header fields validation on E-Switch, both for match pattern and VXLAN encapsulation action IP header itesm. The E-Switch flows will use the common mlx5_flow_validate_item_ipv4/6 routines with added extra parameter, specifying the supported fields mask. Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-12-13net/mlx5: fix validation of Rx queue numberDekel Peled
Function mlx5_ctrl_flow_vlan() is used to set the rss rule in MLX5 PMD, using priv->reta_idx_n as number of Rx queues. This number is passed to mlx5_flow_validate_action_rss(), which attempts to access the Rx queues at priv->rxqs. In case priv->rxqs_n is 0, priv->rxqs is empty, and mlx5_flow_validate_action_rss() will crash with segmentation fault. priv->reta_idx_n can never be 0, even if priv->rxqs_n is set to 0. But when priv->rxqs_n is set to 0, setting the rss rule is invalid. This patch updates mlx5_ctrl_flow_vlan(), if priv->rxqs_n is 0 the function will fail with EINVAL errno. Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow") Cc: stable@dpdk.org Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-11-16net/mlx5: fix packet type for MPLS in UDPDekel Peled
Change the relevant value in tunnels_info[] to match tunnel type. Fixes: a4a5cd21d20a ("net/mlx5: add flow MPLS item") Cc: stable@dpdk.org Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-11-16net/mlx5: fix MPLS item validationDekel Peled
Update the mlx5_flow_validate_item_mpls() function to allow MPLS over IP, UDP, and GRE. Modify the flow_dv_validate() function with the new logic introduced in previous patch of this series: set new variable last_item after each validation, update item_flags after each item iteration. The new variable last_item is sent to mlx5_flow_validate_item_mpls() and used to validate the MPLS item. Same change implemented in flow_verbs_validate(). Update the mlx5_flow_validate_item_mpls() function to verify that device configuration has mpls_en set to 1. This code was added earlier this year, but unintentionaly removed in recent versions. Fixes: 84c406e74524 ("net/mlx5: add flow translate function") Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-11-16net/mlx5: fix flow destructionYongseok Koh
As flow_drv_destroy() frees dev_flow, flow_rxq_flags_trim() must be called ahead. Fixes: 84c406e74524 ("net/mlx5: add flow translate function") Signed-off-by: Yongseok Koh <yskoh@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-11-14net/mlx5: remove GRE inner IPv6 matching limitationShahaf Shuler
Such limitation seems not to exist on: - MLNX_OFED_linux-4.5-0.3.0.0 (Beta) - MLNX_OFED_LINUX-4.4-2.0.7.0 (GA) - upstream kernel 4.19.0-rc7 Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-11-14net/mlx5: fix flow director add and deleteDekel Peled
Fix the flow_fdir_cmp() function, used by flow_fdir_filter_lookup(). This function is used by flow_fdir_filter_add() to check if same rule exists, and by flow_fdir_filter_delete() to find flow rule to delete. The function compared actions conf pointers, changed to compare actions type only. Fixes: 2720f833d461 ("net/mlx5: add missing flow director delete") Cc: stable@dpdk.org Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-11-14net/mlx5: fix L4 protocol validationYongseok Koh
- Currently, no device supports partial mask for protocol in IP header. - As there could be multiple IP items, next_protocol variable in flow validation has to be reset for inner layer. Otherwise, inner TCP/UDP will see protocol number of outer IP header. - Remove redundant protocol checking for MPLS, which is done in mlx5_flow_validate_item_mpls(). Fixes: 3d69434113d1 ("net/mlx5: add Direct Verbs validation function") Fixes: 23c1d42c7138 ("net/mlx5: split flow validation to dedicated function") Signed-off-by: Yongseok Koh <yskoh@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-11-05net/mlx5: remove flags setting from flow preparationYongseok Koh
Even though flow_drv_prepare() takes item_flags and action_flags to be filled in, those are not used and will be overwritten by parsing of flow_drv_translate(). There's no reason to keep the flags and fill it. Appropriate notes are added to the documentation of flow_drv_prepare() and flow_drv_translate(). Signed-off-by: Yongseok Koh <yskoh@mellanox.com> Acked-by: Ori Kam <orika@mellanox.com>
2018-11-05net/mlx5: support default RSS key as nullOphir Munk
Applications which add RSS rules must supply an RSS key and length. If an application is only interested in default RSS operation it should not care about the exact RSS key. By setting the key to NULL - the PMD will use the default RSS key. In addition if the application does not care about the RSS type it can set it to 0 and the PMD will use the default type (ETH_RSS_IP). Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-11-05net/mlx5: fix validation of MLPS-in-GREYongseok Koh
Multiple tunnel isn't allowed but MPLS over GRE should be accepted. Fixes: 23c1d42c7138 ("net/mlx5: split flow validation to dedicated function") Signed-off-by: Yongseok Koh <yskoh@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-11-05net/mlx5: add missing flow director deleteYongseok Koh
Deleting FDIR flow is not implemented by mistake. Also the name of static functions are properly renamed. Fixes: b42c000e37a8 ("net/mlx5: remove flow support") Cc: stable@dpdk.org Signed-off-by: Yongseok Koh <yskoh@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-11-05net/mlx5: fix detection and error for multiple item layersShahaf Shuler
1. The check for the Eth item was wrong. causing an error with flow rules like: flow create 0 ingress pattern eth / vlan vid is 13 / ipv4 / gre / eth / vlan vid is 15 / end actions drop / end 2. align all error messages. 3. align multiple item layers check. Fixes: 23c1d42c7138 ("net/mlx5: split flow validation to dedicated function") Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-11-05net/mlx5: fix bit width of flow itemsShahaf Shuler
Apply the changes from commit c744f6b1b969 ("net/mlx5: fix bit width of item and action flags") in some places that were overlooked. Fixes: 0ddd11437a9a ("net/mlx5: fix bit width of item and action flags") Fixes: 23c1d42c7138 ("net/mlx5: split flow validation to dedicated function") Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-10-26net/mlx5: fix bit width of item and action flagsYongseok Koh
Most of the code uses uint64_t for MLX5_FLOW_LAYER_* and MLX5_FLOW_ACTION_*, but there're some code using uint32_t. Fixes: 2ed2fe5f0a9c ("net/mlx5: rewrite IP address UDP/TCP port by E-Switch") Fixes: 57123c00c1b8 ("net/mlx5: add Linux TC flower driver for E-Switch flow") Fixes: fc2c498ccb94 ("net/mlx5: add Direct Verbs translate items") Fixes: 3d69434113d1 ("net/mlx5: add Direct Verbs validation function") Fixes: 84c406e74524 ("net/mlx5: add flow translate function") Fixes: 23c1d42c7138 ("net/mlx5: split flow validation to dedicated function") Signed-off-by: Yongseok Koh <yskoh@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-10-26net/mlx5: fix flow tunnel handlingYongseok Koh
Both rte_flow and mlx5_flow redundantly have item flags. And it is not properly set in the code. This causes wrong tunnel flag handling. A rte_flow can have multiple expanded device flows if the flow has an RSS action. Therefore, mlx5_flow should have the layers field. Fixes: c4d9b9f7f382 ("net/mlx5: add Direct Verbs final functions") Fixes: fc2c498ccb94 ("net/mlx5: add Direct Verbs translate items") Fixes: 3d69434113d1 ("net/mlx5: add Direct Verbs validation function") Fixes: 84c406e74524 ("net/mlx5: add flow translate function") Fixes: 4e05a229c5da ("net/mlx5: add flow prepare function") Fixes: 23c1d42c7138 ("net/mlx5: split flow validation to dedicated function") Signed-off-by: Yongseok Koh <yskoh@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-10-26net/mlx5: rename static functionsYongseok Koh
In mlx5_flow*.c, static functions have names starting from 'flow_' while shared ones start from "mlx5_flow_'. Signed-off-by: Yongseok Koh <yskoh@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-10-26net/mlx5: add warning message for Direct Verbs flowYongseok Koh
In case that the library doesn't support DV flow, if enabled by 'dv_flow_en=1', print out a warning message and disable it. Fixes: 51e72d386c99 ("net/mlx5: add runtime parameter to enable Direct Verbs") Signed-off-by: Yongseok Koh <yskoh@mellanox.com> Acked-by: Ori Kam <orika@mellanox.com>
2018-10-26net/mlx5: simplify flow counters support checkViacheslav Ovsiienko
The redundant check of Flow counters support in runtime is removed. The flag flow_counter_en is eliminated from the code. The Verbs create counter function just returns an error if no counter support presented in the system. If there is no any of Flow counters configuration macro defined the log message is emited, indicating the missing counter support. mlx5_flow_validate_action_count() fuctnion is also updated due to flow_counter_en flag removal. Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
2018-10-26net/mlx5: support metadata as flow rule criteriaDekel Peled
As described in series starting at [1], it adds option to set metadata value as match pattern when creating a new flow rule. This patch adds metadata support in mlx5 driver, in two parts: - Add the validation and setting of metadata value in matcher, when creating a new flow rule. - Add the passing of metadata value from mbuf to wqe when indicated by ol_flag, in different burst functions. [1] "ethdev: support metadata as flow rule criteria" http://mails.dpdk.org/archives/dev/2018-September/113269.html Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-10-26net/mlx5: add flow query abstraction interfaceMoti Haimovsky
Flow engine now supports multiple driver paths with each having its own flow query implantation routine. This patch adds an abstraction to the flow query routine in accordance to commit 0c76d1c9a18d ("net/mlx5: add abstraction for multiple flow drivers") done by Yongseok Koh. Signed-off-by: Moti Haimovsky <motih@mellanox.com>
2018-10-11net/mlx5: support e-switch TCP-flags flow filterMoti Haimovsky
This patch adds support for offloading flow rules with TCP-flags filter to mlx5 eswitch Hardwrae. With mlx5 it is possible to offload a limited set of flow rules to the mlxsw (or e-switch) using the DPDK flow commands using the "transfer" attribute. This set of flow rules also supports filtering according to the values found in the TCP flags. This patch implements this offload capability in the mlx5 PMD under transfer attribute. Signed-off-by: Moti Haimovsky <motih@mellanox.com>
2018-10-11net/mlx5: allow flow rule with attribute egressDekel Peled
This patch complements [1], adding to MLX5 PMD the option to set flow rule for egress traffic. [1] "net/mlx5: support metadata as flow rule criteria" http://mails.dpdk.org/archives/dev/2018-September/113275.html Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-10-11net/mlx5: fix errno values for flow engineYongseok Koh
Fixes: af689f1f04c2 ("net/mlx5: support flow Ethernet item along with drop action") Fixes: 919d53ad78d2 ("net/mlx5: fix count query when flow has not counter") Cc: stable@dpdk.org Signed-off-by: Yongseok Koh <yskoh@mellanox.com> Acked-by: Ori Kam <orika@mellanox.com>
2018-10-11net/mlx5: add Linux TC flower driver for E-Switch flowYongseok Koh
Flows having 'transfer' attribute have to be inserted to E-Switch on the NIC and the control path uses Linux TC flower interface via Netlink socket. This patch adds the flow driver on top of the new flow engine. Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
2018-10-11net/mlx5: add abstraction for multiple flow driversYongseok Koh
Flow engine has to support multiple driver paths. Verbs/DV for NIC flow steering and Linux TC flower for E-Switch flow steering. In the future, another flow driver could be added (devX). Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
2018-10-11net/mlx5: add runtime parameter to enable Direct VerbsOri Kam
DV flow API is based on new kernel API and is missing some functionality like counter but add other functionality like encap. In order not to affect current users even if the kernel supports the new DV API it should be enabled only manually. Signed-off-by: Ori Kam <orika@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-10-11net/mlx5: add Direct Verbs final functionsOri Kam
This commits add the missing function which are apply, remove, and destroy. Signed-off-by: Ori Kam <orika@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-10-11net/mlx5: add Direct Verbs translate itemsOri Kam
This commit handles the translation of the requested flow into Direct Verbs API. The Direct Verbs introduce the matcher object which acts as shared mask for all flows that are using the same mask. So in this commit we translate the item and get in return a matcher and the value that should be matched. Signed-off-by: Ori Kam <orika@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-10-11net/mlx5: add flow translate functionOri Kam
This commit modify the conversion of the input parameters into Verbs spec, in order to support all previous changes. Some of those changes are: removing the use of the parser, storing each flow in its own flow structure. Signed-off-by: Ori Kam <orika@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-10-11net/mlx5: add flow prepare functionOri Kam
In current implementation the calculation of the flow size is done during the validation stage, and the same function is also used to translate the input parameters into verbs spec. This is hard to maintain and error prone. Another issue is dev-flows (flows that are created implicitly in order to support the requested flow for example when the user request RSS on UDP 2 rules need to be created one for IPv4 and one for IPv6). In current implementation the dev-flows are created on the same memory allocation. This will be harder to implement in future drivers. The commits extract the calculation and creation of the dev-flow from the translation part (the part that converts the parameters into the format required by the driver). This results in that the prepare function only function is to allocate the dev-flow. Signed-off-by: Ori Kam <orika@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-10-11net/mlx5: split flow validation to dedicated functionOri Kam
In current implementation the validation logic reside in the same function that calculates the size of the verbs spec and also create the verbs spec. This approach results in hard to maintain code which can't be shared. also in current logic there is a use of parser entity that holds the information between function calls. The main problem with this parser is that it assumes the connection between different functions. For example it assumes that the validation function was called and relevant values were set. This may result in an issue if and when we only call the validation function, or call the apply function without the validation (Currently according to RTE flow we must call validation before creating flow, but if we want to change that to save time during flow creation, for example the user validated some rule and just want to change the IP there is no true reason the validate the rule again). This commit address both of those issues by extracting the validation logic into detected functions and remove the use of the parser object. The side effect of those changes is that in some cases there will be a need to traverse the item list again. Signed-off-by: Ori Kam <orika@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-08-28net/mlx5: fix RSS flow action hash type selectionShahaf Shuler
On the code after the below commits, the criteria to select the IPV4 or IPV6 hash functions was the existence of some ETH_RSS_IPV4 RSS types on the flow rule. The check is wrong. For example ETH_RSS_NONFRAG_IPV4_TCP will not select the IPV4 hash which will cause the packet to be spread in a bad way. Fix it by adding the corresponding types needed for each hash selection. Fixes: 592f05b29a25 ("net/mlx5: add RSS flow action") Fixes: fd0b70316bca ("net/mlx5: support inner RSS computation") Cc: stable@dpdk.org Reported-by: Yaroslav Brustinov <ybrustin@cisco.com> Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-08-05net/mlx5: fix check for MPLS-in-GREYongseok Koh
Multiple tunnel isn't allowed but MPLS over GRE should be accepted. Fixes: a4a5cd21d20a ("net/mlx5: add flow MPLS item") Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
2018-08-02net/mlx5: fix RSS flow configuration crashMoti Haimovsky
This commit fixes a segmentation fault observed when configuring mlx5 with RSS flow rule containing invalid queues indices such as negative numbers, queue numbers bigger than the number Rx queues the PMD or has no queues at all. Fixes: 592f05b29a25 ("net/mlx5: add RSS flow action") Signed-off-by: Moti Haimovsky <motih@mellanox.com>
2018-08-02net/mlx5: fix VLAN filteringShahaf Shuler
The below commit has added a graph based expansion logic for RSS rule to satisfy Verbs requirements. With this logic, for example, the rule: flow create 0 ingress pattern eth / end actions rss queues 0 1 end types ipv4-tcp ipv6-tcp end / end will be expanded into the rules: flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss queues 0 1 end types ipv4-tcp ipv6-tcp end / end flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss queues 0 1 end types ipv4-tcp ipv6-tcp end / end flow create 0 ingress pattern eth / end actions queue index 0 / end The below commit defined two graphs: 1. graph for the tunnel case which starts from the ETH item 2. graph for the non-tunnel case which starts from the ETH item The graphs are ignoring the VLAN case. Hence rules with VLAN item will fail to traverse the graph and it will result in flow rule creation error. Adding the VLAN item to the existing graphs will not work as the flow engine will reject any VLAN item without a specific vid. To solve this case two new graphs were added (for the tunnel and non-tunnel case) which contain the VLAN item and are being used only when the VLAN item exists in the flow pattern. Two cases left un-covered for the inner RSS: 1. The case were VLAN exists in the pattern as part of the inner headers 2. The case were VLAN exists in the pattern both in the outer and the inner headers Solving those cases will require to add two more graphs. Holding a VLAN for the overlay network is not common, the subnets are usually defined by the tunnel protocol, for example the VXLAN vni. Hence adding those two graphs seems like an overkill at this point. Based on needs one can add those to provide the full support. Fixes: 592f05b29a25 ("net/mlx5: add RSS flow action") Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
2018-08-02net/mlx5: fix packet type offload for tunnelsMatan Azrad
There are dedicated QP attributes, tunnel offload flag and mask, which must be configured in order to allow part of the HW tunnel offloads. So, if a QP is pointed by a tunnel flow, the above QP attributes should be configured. The mask configuration is wrongly only performed if an internal RSS was configured by the user, while there is no reason to condition the tunnel offloads in RSS configurations. Consequently, some of the tunnel offloads was not performed by the HW when a tunnel flow was configured, for example, the packet tunnel types was not reported to the user. Replace the internal RSS condition with the tunnel flow condition. Fixes: df6afd377ace ("net/mlx5: remove useless arguments in hrxq API") Signed-off-by: Matan Azrad <matan@mellanox.com>
2018-08-02net/mlx5: fix flow count action for shared counterShahaf Shuler
According to commit fb8fd96d4251 ("ethdev: add shared counter to flow API") the counter id should be taken into account only when the shared flag is set. Fixes: 60bd8c9747e8 ("net/mlx5: add count flow action") Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
2018-07-26net/mlx5: fix count query when flow has not counterNelio Laranjeiro
Querying a counters on a flow without counter is ending with a segmentation fault. Fixes: 60bd8c9747e8 ("net/mlx5: add count flow action") Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Ori Kam <orika@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-07-26net/mlx5: fix endless loop when clearing flow flagsYongseok Koh
If one of (*priv->rxqs)[] is null, the for loop can iterate infinitely as idx can't be increased. Fixes: cd24d526395e ("net/mlx5: add mark/flag flow action") Signed-off-by: Yongseok Koh <yskoh@mellanox.com> Acked-by: Ori Kam <orika@mellanox.com> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
2018-07-26net/mlx5: add framework for switch flow rulesAdrien Mazarguil
Because mlx5 switch flow rules are configured through Netlink (TC interface) and have little in common with Verbs, this patch adds a separate parser function to handle them. - mlx5_nl_flow_transpose() converts a rte_flow rule to its TC equivalent and stores the result in a buffer. - mlx5_nl_flow_brand() gives a unique handle to a flow rule buffer. - mlx5_nl_flow_create() instantiates a flow rule on the device based on such a buffer. - mlx5_nl_flow_destroy() performs the reverse operation. These functions are called by the existing implementation when encountering flow rules which must be offloaded to the switch (currently relying on the transfer attribute). Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-07-12net/mlx5: add count flow actionNelio Laranjeiro
This is only supported by Mellanox OFED. Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-07-12net/mlx5: add flow MPLS itemNelio Laranjeiro
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-07-12net/mlx5: add flow GRE itemNelio Laranjeiro
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-07-12net/mlx5: add flow VXLAN-GPE itemNelio Laranjeiro
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
2018-07-12net/mlx5: add flow VXLAN itemNelio Laranjeiro
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>