FlowDb

Flow Database for flexible tables

FlowDb

Shortest form: fd.

Browse the flow database: the description of the flexible (“flex flow”) tables that comes with the loaded CANCUN package. It lists the available flows and their handles, the options of each flow, the flow/function/option tuples, the memory views that implement them, and the logical fields of each flow. These are the names and numbers that the SDK’s flow API (used for VXLAN and other tunnels) works with.

Keywords are case-sensitive: type them in full and in lower case, exactly as shown. Only help may be in any case. Numbers may be decimal or 0x hex. A wrong or missing word makes the command fail without a message. help or no argument prints the usage.

The command exists only on devices with CANCUN flex flows. Elsewhere the shell reports it as not found. Trident 3 in SONiC has them, and all the display forms work.

The command is read-only.

FlowDb flow show

List the flows as a FLOW TABLE with columns flow_name and flow_handle. The list has the built-in flows first (CLASSIC_VXLAN 1, CLASSIC_L2GRE 2), then those defined by the CANCUN package, not sorted (GPE 21 to VXLAN_EVPN 36 with the CANCUN package of SONiC’s Trident 3 image).

Hardware-validated

drivshell> flowdb flow show

    FLOW TABLE
================================================================================
flow_name                                         flow_handle
================================================================================
CLASSIC_VXLAN                                     1
CLASSIC_L2GRE                                     2
SRV6_NON_CANONICAL                                26
GBP                                               27
VXLAN_EVPN                                        36
GPE                                               21
VXLAN_GBP                                         22
NSH_OVER_L2                                       29
NSH                                               24
VXLAN                                             23
INT                                               30
SRV6_EVPN                                         32
TWAMP_OWAMP_TX                                    35
THIRD_VLAN_TAG                                    34
MPLS_EVPN                                         33
MPLS_OVER_GRE                                     28
SRV6                                              25
IFA                                               31
FlowDb flow_info show <flow_name>

For each function of the named flow, list its options with view ID and memory (columns OPTION_NAME, FUNCTION, VIEW_ID, MEMORY). Take the flow name from FlowDb flow show. The built-in help leaves out <flow_name>, but the command fails without it.

Hardware-validated

drivshell> flowdb flow_info show VXLAN

 FLOW : VXLAN
======================================================================================================================================================
OPTION_NAME                                                   FUNCTION              VIEW_ID  MEMORY
=======================================================================================================================================================
LOOKUP_IPV4_SIP_ASSIGN_SVP                                    MATCH                 28831    MPLS_ENTRY_SINGLE
LOOKUP_IPV4_SIP_DIP_ASSIGN_SVP                                MATCH                 28833    MPLS_ENTRY_SINGLE
LOOKUP_VNID_ASSIGN_VFI                                        MATCH                 28961    VLAN_XLATE_1_DOUBLE
LOOKUP_IPV6_SIP_ASSIGN_SVP                                    MATCH                 28975    MPLS_ENTRY_DOUBLE
LOOKUP_DVP_VFI_ASSIGN_VNID_DELETE_ITAG                        ENCAP                 28880    EGR_VLAN_XLATE_1_DOUBLE
LOOKUP_DVP_VFI_ASSIGN_VNID                                    ENCAP                 28882    EGR_VLAN_XLATE_1_DOUBLE
LOOKUP_SPLIT_HORIZON_GROUPS_ASSIGN_PASS_ACTION                ENCAP                 28889    EGR_VLAN_XLATE_1_DOUBLE
LOOKUP_VFI_ASSIGN_VNID                                        ENCAP                 28947    EGR_VLAN_XLATE_1_SINGLE
LOOKUP_DVP_SVP_ASSIGN_CLASSID                                 ENCAP                 28990    EGR_VLAN_XLATE_2_SINGLE
LOOKUP_DGPP_SVP_ASSIGN_CLASSID                                ENCAP                 28996    EGR_VLAN_XLATE_2_SINGLE
IPV6                                                          TUNNEL_INITIATOR      28843    EGR_IP_TUNNEL
IPV6_FLOW_LABEL_USE_ENTROPY                                   TUNNEL_INITIATOR      28845    EGR_IP_TUNNEL
LOOKUP_IPV4_DIP_OVID_TERM_TUNNEL                              TUNNEL_TERMINATOR     28832    MPLS_ENTRY_SINGLE
LOOKUP_IPV6_DIP_TERM_TUNNEL                                   TUNNEL_TERMINATOR     28976    MPLS_ENTRY_DOUBLE
IPV6                                                          ENCAP_SET             28946    EGR_DVP_ATTRIBUTE
IPV6_MULTICAST_EVXLT_KEY_TYPE_VFI                             ENCAP_SET             28935    EGR_DVP_ATTRIBUTE
IPV6_MULTICAST                                                ENCAP_SET             28927    EGR_DVP_ATTRIBUTE
IPV6_EVXLT_KEY_TYPE_VFI                                       ENCAP_SET             28943    EGR_DVP_ATTRIBUTE
MAC_ADDR_IPV6                                                 EGRESS_OBJ            28864    EGR_L3_NEXT_HOP
IPV6_REMOTE                                                   EGRESS_OBJ            28878    EGR_L3_NEXT_HOP
IPV6_MULTICAST_EVXLT_KEY_TYPE_VFI                             EGRESS_LABEL          28896    EGR_MPLS_VC_AND_SWAP_LABEL_TABLE
IPV6_MULTICAST                                                EGRESS_LABEL          28898    EGR_MPLS_VC_AND_SWAP_LABEL_TABLE
IPV6                                                          EGRESS_INTF           28860    EGR_L3_INTF
FlowDb flow_option show

List the options of each flow (FLOW OPTION TABLE: FLOW_HANDLE, OPTION_NAME, OPTION_ID).

Hardware-validated

drivshell> flowdb flow_option show

    FLOW OPTION TABLE
============================================================================================
FLOW_HANDLE   OPTION_NAME                                                      OPTION_ID
============================================================================================
27            DECAP_MC                                                         31
28            MAC_ADDR                                                         44
26            ASSIGN_SEGMENT_LIST_2_AND_1_WITHOUT_DIP                          12
21            LOOKUP_SPLIT_HORIZON_GROUPS_ASSIGN_PASS_ACTION                   65
22            LOOKUP_SPLIT_HORIZON_GROUPS_ASSIGN_PASS_ACTION                   64
23            LOOKUP_SPLIT_HORIZON_GROUPS_ASSIGN_PASS_ACTION                   63
27            DELETE_GBP_WITH_PIM_BIDIR_ENABLE                                 197
25            L3_ASSIGN_SEGMENT_LIST_0                                         98
25            L3_ASSIGN_SEGMENT_LIST_1                                         78
21            EVXLT_KEY_TYPE_VFI_IPV6                                          96
31            IFA_BASE_MD_HEADER_ASSIGN_LOOKUP                                 155
26            L3_ASSIGN_SEGMENT_LIST_1                                         79
22            EVXLT_KEY_TYPE_VFI_IPV6                                          100
33            LOOKUP_DVP_SVP_ASSIGN_ESI_LABEL                                  150
23            IPV6_EVXLT_KEY_TYPE_VFI                                          108
24            LOOKUP_IPV6_64_VRF_ASSIGN_SPID_SI_CLASS_ID_NHOP                  88
25            L3_ASSIGN_SIP_AND_SEGMENT_LIST_2                                 13
24            LOOKUP_L3_OIF_ASSIGN_VNID_SFF_L2                                 54
24            LOOKUP_SPID_SI_VRF_ASSIGN_NHOP_CLASS_ID                          184
28            NEXT_PTR                                                         52
31            LOOKUP_LOOPBACK_SUBTYPE_ASSIGN_DISABLE_VLAN_CHECK_ACTION         147
24            LOOKUP_IPV6_128_VRF_ASSIGN_SPID_SI_CLASS_ID_NHOP                 17
32            LOOKUP_PKT_ESI_ASSIGN_ESI_OBJECT                                 177
33            LOOKUP_PKT_ESI_ASSIGN_ESI_OBJECT                                 176
27            GBP_SID_DID_LOOKUP_ENABLE                                        198
...
FlowDb ffo show

List all flow/function/option tuples with their view (FLOW FUNCTION OPTION TUPLE TABLE: FLOW_HANDLE, FUNCTION_ID, OPTION_ID, VIEW_ID).

Hardware-validated

drivshell> flowdb ffo show

    FLOW FUNCTION OPTION TUPLE TABLE
===========================================================================
FLOW_HANDLE   FUNCTION_ID   OPTION_ID  VIEW_ID
===========================================================================
21            1             1          28826
22            1             2          28827
22            1             3          28828
21            4             4          28829
23            1             6          28831
22            4             5          28830
23            1             8          28833
23            4             7          28832
24            4             9          28834
24            4             10         28835
25            3             11         28837
26            3             12         28838
25            3             13         28839
26            3             14         28840
23            3             18         28843
22            3             19         28843
21            3             20         28843
22            7             16         28912
22            8             16         28841
22            5             19         28944
23            5             18         28946
23            3             22         28845
22            3             23         28845
21            3             24         28845
24            8             17         28842
...
FlowDb ffo entry <flow_handle> <function_id> <option_id>

Print the view ID of one tuple as four NAME : value lines. If any of the three numbers is -1, the whole tuple table is printed instead.

Hardware-validated

drivshell> flowdb ffo entry 21 1 1
FLOW_HANDLE : 21
FUNCTION_ID : 1
OPTION_ID : 1
VIEW_ID : 28826
FlowDb flow_logical_field show

List the logical fields of each flow (FLOW LOGICAL FIELDS TABLE: FLOW_HANDLE, LOGICAL FIELD, FIELD_ID).

Hardware-validated

drivshell> flowdb flow_logical_field show

    FLOW LOGICAL FIELDS TABLE
================================================================================
FLOW_HANDLE   LOGICAL FIELD                                    FIELD_ID
================================================================================
31            RSVD                                             170808
33            ESI_LABEL_TTL                                    170889
24            NSH_CONTEXT_1                                    170846
30            DEVICE_ID                                        170836
32            RSVD                                             170808
24            NSH_CONTEXT_2                                    170847
31            DEVICE_ID                                        170836
31            IFA_FLAGS                                        170898
24            NSH_CONTEXT_3                                    170848
34            PRESERVE_OTAG                                    170906
21            DVP_NETWORK_GROUP                                170844
22            DVP_NETWORK_GROUP                                170844
23            DVP_NETWORK_GROUP                                170844
33            ESI_LABEL                                        170886
29            MD1_SOURCE_NODE_ID                               170817
29            MD2_SOURCE_NODE_ID                               170826
21            SVP_NETWORK_GROUP                                170845
22            SVP_NETWORK_GROUP                                170845
23            SVP_NETWORK_GROUP                                170845
30            EGRESS_PORT_DROP_BYTE_COUNT_UPPER_8BITS          170838
29            TENANT_ID                                        170913
29            MD1_SOURCE_INTF_ID                               170816
29            MD2_SOURCE_INTF_ID                               170825
31            OPAQUE_MD                                        170873
29            MD1_TENANT_ID_RSVD                               170821
...
FlowDb view <show | entry <view_id> | field entry <view_id> <field_id>>

Show the whole view table, one view, or one field of a view. For each view the table prints the view ID, its physical memory number, the number of fields and each field’s ID and name; the whole table is several thousand lines, so prefer view entry <view_id>.

Hardware-validated — One view: its memory, key and policy fields, and the flow option that uses it

drivshell> flowdb view entry 28826

============================VIEW INFORAMTION=================================
VIEW_ID    : 28826
PHY MEM    : MPLS_ENTRY_SINGLE
WIDTH      : 105
TYPE       : SOC_FLOW_DB_VIEW_TYPE_HASH

    FIELD TABLE
=========================================================================================================
FEILD_ID    FIELD_NAME                                        FIELD_TYPE
=========================================================================================================
74933       IPV4__SIP                                         SOC_FLOW_DB_FIELD_TYPE_KEY
80071       KEY_0                                             SOC_FLOW_DB_FIELD_TYPE_KEY
27185       DATA_TYPE                                         SOC_FLOW_DB_FIELD_TYPE_CONTROL
80243       KEY_TYPE                                          SOC_FLOW_DB_FIELD_TYPE_CONTROL
150434      SVP_ACTION_SET                                    SOC_FLOW_DB_FIELD_TYPE_POLICY_DATA


    FFO TUPLE INFORMATION
========================================================
FLOW_HANDLE    FUNCTION_ID    OPTION_ID
=======================
=================================
21             1              1

Hardware-validated

drivshell> flowdb view show

    VIEW TABLE
=============================================================================
VIEW ID     PHY_MEM
=============================================================================
28826       26152
NFields     : 6
Field_id     : 4777
Field_name   : BASE_VALID
Field_id     : 27185
Field_name   : DATA_TYPE
Field_id     : 74933
Field_name   : IPV4__SIP
Field_id     : 80071
Field_name   : KEY_0
Field_id     : 80243
Field_name   : KEY_TYPE
Field_id     : 150434
Field_name   : SVP_ACTION_SET
28827       26152
NFields     : 6
Field_id     : 4777
Field_name   : BASE_VALID
Field_id     : 27185
Field_name   : DATA_TYPE
Field_id     : 74933
Field_name   : IPV4__SIP
Field_id     : 80071
Field_name   : KEY_0
Field_id     : 80243
...

Built-in help

Parameters: [flow_info|flow|flow_option|ffo|flow_logical_field|view|help] <args...>
  Flow DB database for flexible tables.
     flow_info show - Detailed per flow information.
     flow show  - Flow table, Displays available flows and associated flow handles.
     flow_option show - Flow option table, Displays avaiable options per flow
     ffo show - Flow function option tuple table

     ffo entry [<flow_id>] [<function_id>] [<option_id>
         - Display the associated view id for flow, function, option combination
     flow_logical_field show - Logical field table, displays logical fields per flow.
     view show - View table
     view entry [<view_id>] -
         - View information.
     view field entry [<view_id> <field_id>] -
         - Field information.
     help     - display this usage page.

  arguments for each operation:

Further reading

SDK-6.5.20 HSDK Getting Started Guide (GS-SDK6520-R), plus SDK-6.5.20/21/22 Release Notes (RN-SDK65xx-R).