History log of /dpdk/drivers/net/bnxt/tf_ulp/ulp_mapper.c (Results 1 – 25 of 93)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2, v22.03-rc1, v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2, v21.11-rc1
# cf21c2d3 13-Oct-2021 Ferruh Yigit <[email protected]>

net/bnxt: fix build with debug macro

Setting 'RTE_LIBRTE_BNXT_TRUFLOW_DEBUG' macro cause build error,
removing it.

Also with meson build system compile time debug macros should be
documented in dri

net/bnxt: fix build with debug macro

Setting 'RTE_LIBRTE_BNXT_TRUFLOW_DEBUG' macro cause build error,
removing it.

Also with meson build system compile time debug macros should be
documented in driver documentation, since there is no other way to
figure out their existence.

Fixes: ad9eed0248ad ("net/bnxt: support flow template for Thor")
Cc: [email protected]

Signed-off-by: Ferruh Yigit <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# dbd29c42 20-Sep-2021 Kishore Padmanabha <[email protected]>

net/bnxt: add enhancements to TruFlow ULP

1. Added support to specify l4 port masks in the template. Also enabled
source mac in the wild card key for ingress flows.

2. Added support to enable of

net/bnxt: add enhancements to TruFlow ULP

1. Added support to specify l4 port masks in the template. Also enabled
source mac in the wild card key for ingress flows.

2. Added support to enable offload for ipv6 traffic within the vxlan
tunnel connection.

3. The flow counters is reduced from 7168 to 6912 for Whitney.
The stats operation is updated to reflect counts for packets
at egress from CFA instead of ingress to CFA

4. The miss path for the l2 context table is updated with correct
parif and default action handler to handle the miss path for
egress flows.

5. This support enables allocation of encapsulation, modification and
action records dynamically based on a given flow actions.

6. Reduce the l2context resource requests during open_session. Move the
SMAC from the L2Context to the EM/WM

7. Remap the parif in the bd action in order to eliminate incorrect
replication of broadcast packets. The layer 4 source port mask
was incorrectly updated in the outer layer 4 source port mask
instead of inner layer 4. Add the l3 proto to egress rules, switch
to using computed fields for l4 ports, add internal smac to f1/f2
flows, add l3 proto to ingress ipv6 flows

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Mike Baucom <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Randy Schacher <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 2730e7f9 20-Sep-2021 Kishore Padmanabha <[email protected]>

net/bnxt: add flow templates for Thor

1. Add support for egress flows with port and count action for
Thor platform.
2. Added templates to support VXLAN encapsulation feature for Thor.
3. Added su

net/bnxt: add flow templates for Thor

1. Add support for egress flows with port and count action for
Thor platform.
2. Added templates to support VXLAN encapsulation feature for Thor.
3. Added support for VXLAN decap and VLAN pop actions along with
the ingress flow.
4. Added templates to enable VXLAN decap support for f1 and f2 flows.
5. Added templates Thor VF Rep support
6. Added Thor ingress mod table actions for NAT, NAPT, and TTL.
7. Added mirror/sample table support
8. Added supported for IPv6 flows for Thor.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Mike Baucom <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Randy Schacher <[email protected]>
Reviewed-by: Shahaji Bhosle <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 1f7f7c3c 20-Sep-2021 Kishore Padmanabha <[email protected]>

net/bnxt: add wildcard TCAM byte order for Thor

The wild card TCAM for Thor platform is different from the profile TCAM
byte order.

Signed-off-by: Kishore Padmanabha <[email protected]

net/bnxt: add wildcard TCAM byte order for Thor

The wild card TCAM for Thor platform is different from the profile TCAM
byte order.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Shuanglin Wang <[email protected]>
Reviewed-by: Mike Baucom <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# f63aa27d 20-Sep-2021 Kishore Padmanabha <[email protected]>

net/bnxt: support dynamic encap action

The encapsulation record processing is enhanced to handle data
dynamically. Different combinations of VXLAN encapsulation using
no VLAN or single or double VLA

net/bnxt: support dynamic encap action

The encapsulation record processing is enhanced to handle data
dynamically. Different combinations of VXLAN encapsulation using
no VLAN or single or double VLAN can be supported and also supports
both IPv4 and IPv6 versions.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Randy Schacher <[email protected]>
Acked-by: Ajit Khaparde <[email protected]>

show more ...


# bdf4a3c6 20-Sep-2021 Kishore Padmanabha <[email protected]>

net/bnxt: support tunnel offload

Add support for tunnel offload APIs. Specifically the following
are supported.
tunnel_decap_set, tunnel_match, tunnel_action_decap_release,
tunnel_item_release.

Thi

net/bnxt: support tunnel offload

Add support for tunnel offload APIs. Specifically the following
are supported.
tunnel_decap_set, tunnel_match, tunnel_action_decap_release,
tunnel_item_release.

This provides support for VXLAN decap action where two flows
can indicate tunnel offload rule. The first flow indicates the
tunnel properties and second flow indicates the inner packet
structure. The templates are updated to support this
feature.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Shahaji Bhosle <[email protected]>
Acked-by: Ajit Khaparde <[email protected]>

show more ...


# ad9eed02 20-Sep-2021 Kishore Padmanabha <[email protected]>

net/bnxt: support flow template for Thor

Template adds non-VFR based support for testpmd with:
matches to include
- DMAC, SIP, DIP, Proto, Sport, Dport
- SIP, DIP, Proto, Sport, Dport
actions:
- cou

net/bnxt: support flow template for Thor

Template adds non-VFR based support for testpmd with:
matches to include
- DMAC, SIP, DIP, Proto, Sport, Dport
- SIP, DIP, Proto, Sport, Dport
actions:
- count, drop

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Mike Baucom <[email protected]>
Acked-by: Ajit Khaparde <[email protected]>

show more ...


# c6d273e9 20-Sep-2021 Farah Smith <[email protected]>

net/bnxt: update TruFlow core index table

Update the TruFlow core index table and
remove unused shadow table functionality.

Signed-off-by: Farah Smith <[email protected]>
Reviewed-by: Peter

net/bnxt: update TruFlow core index table

Update the TruFlow core index table and
remove unused shadow table functionality.

Signed-off-by: Farah Smith <[email protected]>
Reviewed-by: Peter Spreadborough <[email protected]>
Acked-by: Ajit Khaparde <[email protected]>

show more ...


Revision tags: v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2, v21.08-rc1
# 72d7b595 08-Jul-2021 Ajit Khaparde <[email protected]>

net/bnxt: fix build

Fix build failures seen on Fedora Core 34 (GCC 11)
because of uninitialized variables.

In function ‘ulp_mapper_index_tbl_process’:
drivers/net/bnxt/tf_ulp/ulp_mapper.c:2252:43:

net/bnxt: fix build

Fix build failures seen on Fedora Core 34 (GCC 11)
because of uninitialized variables.

In function ‘ulp_mapper_index_tbl_process’:
drivers/net/bnxt/tf_ulp/ulp_mapper.c:2252:43: error:
‘*(unsigned int *)((char *)&glb_res + offsetof(struct bnxt_ulp_glb_resource_info, resource_func))’
may be used uninitialized in this function
2252 | struct bnxt_ulp_glb_resource_info glb_res;
| ^~~~~~~
drivers/net/bnxt/tf_ulp/ulp_mapper.c:2252:43: error:
‘glb_res.resource_type’ may be used uninitialized in this function

In function ‘dpool_defrag’:
drivers/net/bnxt/tf_core/dpool.c:95:18: error:
‘index’ may be used uninitialized in this function
95 | uint32_t index;
| ^~~~~

Fixes: 05b405d58148 ("net/bnxt: add dpool allocator for EM allocation")

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Ajit Khaparde <[email protected]>

show more ...


# 1993b267 30-May-2021 Shahaji Bhosle <[email protected]>

net/bnxt: cleanup ULP parser and mapper

1. Disable accum_stats for Thor
2. Delete the generic port table for default flow
3. The packet mask to calculate the number of packets must be 28 bits.
4. In

net/bnxt: cleanup ULP parser and mapper

1. Disable accum_stats for Thor
2. Delete the generic port table for default flow
3. The packet mask to calculate the number of packets must be 28 bits.
4. Increase the WC TCAM entries to 512 per application and add 2
shared L2 context TCAM entries to match identifiers for flow
scaling
5. Ignore multiple critical resources in ULP flow database
6. Renamed conditional code update to function opcode.
7. Updated TRUFLOW debug logs to support the above changes.
8. As part of the HA cleanup, the shared session name now allows the user
to designate that the session uses the wc_tcam regions within the
shared session.
9. The CFA action pointer does not exist if there is no support for
VF representor, so no need to display the message for use case where
there is no support for VF representors.
10. Cleanup flow counter software accumulation.
11. When an application exits ungracefully, the HA code now
clears the appropriate shared WC region and sets the HA state.
12. Removal of unnecessary INFO message. The message is an indicator that
the ports are being removed from DPDK, but all cleanup has not
completed. Once the cleanup is completed, the timer will be stopped.

Signed-off-by: Shahaji Bhosle <[email protected]>
Signed-off-by: Mike Baucom <[email protected]>
Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Randy Schacher <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 3184b1ef 30-May-2021 Mike Baucom <[email protected]>

net/bnxt: add HA support in ULP

Add the ability for cooperative applications to share resources and
use the high availability functionality in the HW.

Signed-off-by: Mike Baucom <michael.baucom@bro

net/bnxt: add HA support in ULP

Add the ability for cooperative applications to share resources and
use the high availability functionality in the HW.

Signed-off-by: Mike Baucom <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Shahaji Bhosle <[email protected]>
Reviewed-by: Randy Schacher <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 19994cc7 30-May-2021 Kishore Padmanabha <[email protected]>

net/bnxt: add templates for shared sessions

1. Add template support for shared sessions.
2. Store the shared session flag in flow data base.
3. Store WC TCAM region in the computational field.

Sign

net/bnxt: add templates for shared sessions

1. Add template support for shared sessions.
2. Store the shared session flag in flow data base.
3. Store WC TCAM region in the computational field.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Mike Baucom <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 6b70a956 30-May-2021 Mike Baucom <[email protected]>

net/bnxt: process resource lists before session open

Shared sessions require both named and unnamed resources to be requested
during a tf_open_session. ULP uses named resources for global resources

net/bnxt: process resource lists before session open

Shared sessions require both named and unnamed resources to be requested
during a tf_open_session. ULP uses named resources for global resources
that are pre-allocated and remain through the life of the application.
Unnamed resources are generally per flow resources and allocated on
demand. The sum of both named and unnamed resources must be requested
when initializing the session. The ulp_init now processes both lists
prior to calling tf_open_session for both shared and regular sessions.

Signed-off-by: Mike Baucom <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Randy Schacher <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 5b73c859 30-May-2021 Kishore Padmanabha <[email protected]>

net/bnxt: support application ID in ULP matcher

The application id in the ULP matcher makes the template matching
restrict to only flows that are supported for that application.

Signed-off-by: Kish

net/bnxt: support application ID in ULP matcher

The application id in the ULP matcher makes the template matching
restrict to only flows that are supported for that application.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Shahaji Bhosle <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 286569d5 30-May-2021 Kishore Padmanabha <[email protected]>

net/bnxt: add field opcodes in ULP

Add field opcodes that perform logical evaluation of
multiple conditions. Also add more logging especially in
error path.

Signed-off-by: Kishore Padmanabha <kisho

net/bnxt: add field opcodes in ULP

Add field opcodes that perform logical evaluation of
multiple conditions. Also add more logging especially in
error path.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Mike Baucom <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# c6062ec0 30-May-2021 Mike Baucom <[email protected]>

net/bnxt: add shared session support to ULP

Shared session permits cooperative sharing of prescribed resources
between applications.

- devargs added for app-id in order to enable sharing session

net/bnxt: add shared session support to ULP

Shared session permits cooperative sharing of prescribed resources
between applications.

- devargs added for app-id in order to enable sharing session
resources across applications
- shared session management added
- TRUFLOW resource reservations are now app ID and device dependent

Signed-off-by: Mike Baucom <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Kishore Padmanabha <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 741172be 30-May-2021 Kishore Padmanabha <[email protected]>

net/bnxt: refactor flow parser in ULP

1. Remove Ether type, VLAN type and IP proto type from pattern matching,
since the header bits can be used for matching. This reduces the class
template signatu

net/bnxt: refactor flow parser in ULP

1. Remove Ether type, VLAN type and IP proto type from pattern matching,
since the header bits can be used for matching. This reduces the class
template signatures by a factor of 8.

2. Remove the wild card bit in the pattern matching since same template
can be used for both exact and wild card entries.

3. The action record pointers have to use higher range to not collide
with the firmware action record pointers. Hence reduced the number of
action record pointers for Whitney platform.

4. The conditional update opcode provide functionality to reject flows
for instance reject flows that do not adhere to flow signature match.

5. Added check to not populate protocol specifications if the
protocol mask is null or zero.

6. Check that field array is not overrun.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Mike Baucom <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 3fe124d2 30-May-2021 Kishore Padmanabha <[email protected]>

net/bnxt: support Thor platform

1. Add templates to support Thor platform.
2. Flow counter manager is not enabled if no flow counters are
configured.
3. Mark database is not enabled if mark actio

net/bnxt: support Thor platform

1. Add templates to support Thor platform.
2. Flow counter manager is not enabled if no flow counters are
configured.
3. Mark database is not enabled if mark action is not supported.
4. Removed application to port default flow.
5. Add allocate and write for the global registry file.
6. Multiple default flow templates are combined to one.
7. Remove default loopback action record, this is required in order to
support multiple platforms.
8. Enable port table support in the generic table.
9. remove global template table in order to support multiple platforms.
10. Add support to get parent VNIC from port table database.
11. VF representor action mark is made optional since not all
configurations need representor support.
12. Add layer 4 ports to computational fields.
13. Update templates to support the above changes.
14. Add support for wildcard.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Mike Baucom <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 0001cc58 30-May-2021 Kishore Padmanabha <[email protected]>

net/bnxt: support generic hash table

Added support for generic table to enable search of keys that
are larger than 16 bits using hash table.

Signed-off-by: Kishore Padmanabha <kishore.padmanabha@br

net/bnxt: support generic hash table

Added support for generic table to enable search of keys that
are larger than 16 bits using hash table.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Mike Baucom <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# ddaf0afa 30-May-2021 Kishore Padmanabha <[email protected]>

net/bnxt: refactor ULP mapper

1. The internal and external exact match table resource types
is combined since the resource handle contains the encoded
type whether it is internal or external exact m

net/bnxt: refactor ULP mapper

1. The internal and external exact match table resource types
is combined since the resource handle contains the encoded
type whether it is internal or external exact match entry.

2. When a flow doesn't hit the offloaded rules, the default action is
to send it to the kernel (L2 driver interface). In order to do that,
TRUFLOW must know the kernel interface's (PF's) default vnic id.
This patch fetches the PF's default vnic id from the dpdk core and
stores it in port database. It also stores the mac addr for the
future usage. Renamed compute field for layer 4 port enums.
Added support for port database opcode that can get port details
like mac address which can then be populated in the l2 context entry.

3. Both active and default bit set need to considered to check if a
specific flow type is enabled or not.

4. ulp mapper fetches the dpdk port id from the compute field index
BNXT_ULP_CF_IDX_DEV_PORT_ID which is used to get the interface’s
mac address eventually. However, the compute field array is not
populated with dpdk port id at the index BNXT_ULP_CF_IDX_DEV_PORT_ID.
The problem fixed by populating the compute field array correctly.

5. Some dpdk applications may accumulate the flow counters while some
may not. In cases where the application is accumulating the counters
the PMD need not do the accumulation itself and viceversa to report
the correct flow counters.

6. Pointer to bp is added to open session parms to support
shared session.

Signed-off-by: Venkat Duvvuru <[email protected]>
Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Jay Ding <[email protected]>
Reviewed-by: Lance Richardson <[email protected]>
Reviewed-by: Mike Baucom <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>
Reviewed-by: Somnath Kotur <[email protected]>
Reviewed-by: Randy Schacher <[email protected]>

show more ...


# 249feed2 30-May-2021 Kishore Padmanabha <[email protected]>

net/bnxt: support extended exact match

The templates are updated to enable the extended exact match
table support. As part of this change, the action record size of
the action has to be calculated d

net/bnxt: support extended exact match

The templates are updated to enable the extended exact match
table support. As part of this change, the action record size of
the action has to be calculated dynamically so it can be included
in the match table.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Randy Schacher <[email protected]>
Reviewed-by: Farah Smith <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 10bbf293 30-May-2021 Kishore Padmanabha <[email protected]>

net/bnxt: add partial header field processing

For support for wild card TCAM, some of the header fields have to
be partially written, hence this new opcode is added.

Signed-off-by: Kishore Padmanab

net/bnxt: add partial header field processing

For support for wild card TCAM, some of the header fields have to
be partially written, hence this new opcode is added.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Mike Baucom <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 255add67 30-May-2021 Kishore Padmanabha <[email protected]>

net/bnxt: refactor TRUFLOW processing

1. The flow database opcode is updated to split the alloc push resource
item so it can be controlled using the control table.

2. The class and action match sig

net/bnxt: refactor TRUFLOW processing

1. The flow database opcode is updated to split the alloc push resource
item so it can be controlled using the control table.

2. The class and action match signatures are populated with pattern ids
that are matched against template pattern id to reject any unsupported
class and action combinations.

3. The flow DB opcode should be no op when accessing the
global registry identifiers.

4. The resource function for branch is changed to control so that it
is extended to perform flow database operations and not just branch
operations.

5. The conditional goto processing now supports negative numbers to
support looping of the mapper tables to support flow ranges and
also enable conditional fail goto to support failure path mapper
tables.

6. The field mapper opcode is updated to add all ones to fields
that support exact match.

7. Added key info and identifier list to whitney action templates
The whitney plus templates are updated to use the mapper infrastructure
changes.

8. The partition interface table configuration of the default
egress rule for the representor interface needs to use the
reserved parif interface that is specific to each
platform. The pipeline for the representor interface is broken
since incorrect parif configuration cause the miss path packets to
be dropped.

9. In the mapper table processing, if a failure condition is hit
due to invalid memory type then use the conditional goto failure
configuration instead of jumping to next table. This causes ipv6
exact match entry to be skipped. This patch fixes that issue.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Shahaji Bhosle <[email protected]>
Reviewed-by: Randy Schacher <[email protected]>
Reviewed-by: Mike Baucom <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 6167c20c 30-May-2021 Kishore Padmanabha <[email protected]>

net/bnxt: add conditional opcode and L4 port fields

The conditional field opcode provides capability to perform
changes to the field values specified by template to address
platform specific modific

net/bnxt: add conditional opcode and L4 port fields

The conditional field opcode provides capability to perform
changes to the field values specified by template to address
platform specific modifications. For instance, mirror id value
is modified before it is configured in the hardware.

The addition of L4 port compute fields enables support of
generic exact match rule that can support both TCP and UDP
flows with the same template.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Mike Baucom <[email protected]>
Reviewed-by: Shahaji Bhosle <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


# 642e5ab3 30-May-2021 Kishore Padmanabha <[email protected]>

net/bnxt: set shared handle for generic table

The shared handle is set in the mapper params when generic resource
are created, this shall be used by application as a handle to the
shared resource li

net/bnxt: set shared handle for generic table

The shared handle is set in the mapper params when generic resource
are created, this shall be used by application as a handle to the
shared resource like mirror handle.

Signed-off-by: Kishore Padmanabha <[email protected]>
Signed-off-by: Venkat Duvvuru <[email protected]>
Reviewed-by: Mike Baucom <[email protected]>
Reviewed-by: Ajit Khaparde <[email protected]>

show more ...


1234