X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fprog_guide%2Frte_flow.rst;h=b587ba9980afd3bdce37870af4dc1be768caafff;hb=fdb7f1a2119f1fc5c4c11851eb89d5b0622395d7;hp=5ee045ee8105d7220159ad5178c1165cee71992f;hpb=7cd048321d1d991dd47ddb54143f7dc701ac116a;p=dpdk.git diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst index 5ee045ee81..b587ba9980 100644 --- a/doc/guides/prog_guide/rte_flow.rst +++ b/doc/guides/prog_guide/rte_flow.rst @@ -863,6 +863,32 @@ Matches a VXLAN header (RFC 7348). - ``rsvd1``: reserved, normally 0x00. - Default ``mask`` matches VNI only. +Item: ``E_TAG`` +^^^^^^^^^^^^^^^ + +Matches an IEEE 802.1BR E-Tag header. + +- ``tpid``: tag protocol identifier (0x893F) +- ``epcp_edei_in_ecid_b``: E-Tag control information (E-TCI), E-PCP (3b), + E-DEI (1b), ingress E-CID base (12b). +- ``rsvd_grp_ecid_b``: reserved (2b), GRP (2b), E-CID base (12b). +- ``in_ecid_e``: ingress E-CID ext. +- ``ecid_e``: E-CID ext. +- Default ``mask`` simultaneously matches GRP and E-CID base. + +Item: ``NVGRE`` +^^^^^^^^^^^^^^^ + +Matches a NVGRE header (RFC 7637). + +- ``c_k_s_rsvd0_ver``: checksum (1b), undefined (1b), key bit (1b), + sequence number (1b), reserved 0 (9b), version (3b). This field must have + value 0x2000 according to RFC 7637. +- ``protocol``: protocol type (0x6558). +- ``tni``: virtual subnet ID. +- ``flow_id``: flow ID. +- Default ``mask`` matches TNI only. + Item: ``MPLS`` ^^^^^^^^^^^^^^ @@ -1332,9 +1358,11 @@ supported and can be created. const struct rte_flow_action actions[], struct rte_flow_error *error); -While this function has no effect on the target device, the flow rule is -validated against its current configuration state and the returned value -should be considered valid by the caller for that state only. +The flow rule is validated for correctness and whether it could be accepted +by the device given sufficient resources. The rule is checked against the +current device mode and queue configuration. The flow rule may also +optionally be validated against existing flow rules and device resources. +This function has no effect on the target device. The returned value is guaranteed to remain valid only as long as no successful calls to ``rte_flow_create()`` or ``rte_flow_destroy()`` are made @@ -1360,8 +1388,12 @@ Return values: - ``-EINVAL``: unknown or invalid rule specification. - ``-ENOTSUP``: valid but unsupported rule specification (e.g. partial bit-masks are unsupported). -- ``-EEXIST``: collision with an existing rule. -- ``-ENOMEM``: not enough resources. +- ``EEXIST``: collision with an existing rule. Only returned if device + supports flow rule collision checking and there was a flow rule + collision. Not receiving this return code is no guarantee that creating + the rule will not fail due to a collision. +- ``ENOMEM``: not enough memory to execute the function, or if the device + supports resource validation, resource limitation on the device. - ``-EBUSY``: action cannot be performed due to busy device resources, may succeed if the affected queues or even the entire port are in a stopped state (see ``rte_eth_dev_rx_queue_stop()`` and ``rte_eth_dev_stop()``).