.. _clicmd_src_plugins_gtpu:

===============================================================
Gtpu cli reference
===============================================================

create gtpu forward
-------------------------------------------------------------------------

.. code-block:: console

    create gtpu forward dst <local-tep-addr> {unknown-teid|unknown-type|bad-header} [decap-next [l2|ip4|ip6|node <name>]] [encap-vrf-id <nn>] [del]


Declaration: ``gtpu_forward_command`` `src/plugins/gtpu/gtpu.c line 1565 <https://github.com/FDio/vpp/blob/master//src/plugins/gtpu/gtpu.c#L1565>`_

Implementation: ``gtpu_forward_command_fn``


create gtpu tunnel
-------------------------------------------------------------------------

.. code-block:: console

    create gtpu tunnel src <local-tep-addr> {dst <remote-tep-addr>|group <mcast-addr> <intf-name>} teid <nn> [tteid <nn>] [encap-vrf-id <nn>] [decap-next [l2|ip4|ip6|node <name>]] [qfi <nn>] [del | upd-tteid <nn>]



Add or delete a GTPU Tunnel.

GTPU can be used to transport Ethernet packets as its PDU type to
provides allow L2 network or bridge domains (BDs)
to span multiple servers. This is done by building an L2 overlay on
top of an L3 network underlay using GTPU tunnels.

GTPU can also be used to transport IP packets as its PDU type to
allow IP forwarding over underlay network, e.g. between RAN and UPF
for mobility deployments.

Example of how to create a GTPU Tunnel:


.. code-block:: console

    create gtpu tunnel src 10.0.3.1 dst 10.0.3.3 teid 13 tteid 55 encap-vrf-id 7


Example of how to delete a GTPU Tunnel:


.. code-block:: console

    create gtpu tunnel src 10.0.3.1 dst 10.0.3.3 teid 13 encap-vrf-id 7 del


Example of how to update tx TEID of a GTPU Tunnel:


.. code-block:: console

    create gtpu tunnel src 10.0.3.1 dst 10.0.3.3 encap-vrf-id 7 upd-tteid 55



Declaration: ``create_gtpu_tunnel_command`` `src/plugins/gtpu/gtpu.c line 1103 <https://github.com/FDio/vpp/blob/master//src/plugins/gtpu/gtpu.c#L1103>`_

Implementation: ``gtpu_add_del_tunnel_command_fn``


set flow-offload gtpu
-------------------------------------------------------------------------

.. code-block:: console

    set flow-offload gtpu hw <inerface-name> rx <tunnel-name> [del]


Declaration: ``gtpu_offload_command`` `src/plugins/gtpu/gtpu.c line 1434 <https://github.com/FDio/vpp/blob/master//src/plugins/gtpu/gtpu.c#L1434>`_

Implementation: ``gtpu_offload_command_fn``


set interface ip gtpu-bypass
-------------------------------------------------------------------------

.. code-block:: console

    set interface ip gtpu-bypass <interface> [del]



This command adds the 'ip4-gtpu-bypass' graph node for a given interface.
By adding the IPv4 gtpu-bypass graph node to an interface, the node checks
for and validate input gtpu packet and bypass ip4-lookup, ip4-local,
ip4-udp-lookup nodes to speedup gtpu packet forwarding. This node will
cause extra overhead to for non-gtpu packets which is kept at a minimum.

Example of graph node before ip4-gtpu-bypass is enabled:


.. code-block:: console

    show vlib graph ip4-gtpu-bypass
    
               Name                      Next                    Previous
    ip4-gtpu-bypass                error-drop [0]
                                   gtpu4-input [1]
                                    ip4-lookup [2]
    



Example of how to enable ip4-gtpu-bypass on an interface:


.. code-block:: console

    set interface ip gtpu-bypass GigabitEthernet2/0/0



Example of graph node after ip4-gtpu-bypass is enabled:


.. code-block:: console

    show vlib graph ip4-gtpu-bypass
    
               Name                      Next                    Previous
    ip4-gtpu-bypass                error-drop [0]               ip4-input
                                   gtpu4-input [1]        ip4-input-no-checksum
                                    ip4-lookup [2]
    



Example of how to display the feature enabled on an interface:


.. code-block:: console

    show ip interface features GigabitEthernet2/0/0
    
    IP feature paths configured on GigabitEthernet2/0/0...
    ...
    ipv4 unicast:
      ip4-gtpu-bypass
      ip4-lookup
    ...
    



Example of how to disable ip4-gtpu-bypass on an interface:


.. code-block:: console

    set interface ip gtpu-bypass GigabitEthernet2/0/0 del




Declaration: ``set_interface_ip_gtpu_bypass_command`` `src/plugins/gtpu/gtpu.c line 1252 <https://github.com/FDio/vpp/blob/master//src/plugins/gtpu/gtpu.c#L1252>`_

Implementation: ``set_ip4_gtpu_bypass``


set interface ip6 gtpu-bypass
-------------------------------------------------------------------------

.. code-block:: console

    set interface ip6 gtpu-bypass <interface> [del]



This command adds the 'ip6-gtpu-bypass' graph node for a given interface.
By adding the IPv6 gtpu-bypass graph node to an interface, the node checks
for and validate input gtpu packet and bypass ip6-lookup, ip6-local,
ip6-udp-lookup nodes to speedup gtpu packet forwarding. This node will
cause extra overhead to for non-gtpu packets which is kept at a minimum.

Example of graph node before ip6-gtpu-bypass is enabled:


.. code-block:: console

    show vlib graph ip6-gtpu-bypass
    
               Name                      Next                    Previous
    ip6-gtpu-bypass                error-drop [0]
                                   gtpu6-input [1]
                                    ip6-lookup [2]
    



Example of how to enable ip6-gtpu-bypass on an interface:


.. code-block:: console

    set interface ip6 gtpu-bypass GigabitEthernet2/0/0



Example of graph node after ip6-gtpu-bypass is enabled:


.. code-block:: console

    show vlib graph ip6-gtpu-bypass
    
               Name                      Next                    Previous
    ip6-gtpu-bypass                error-drop [0]               ip6-input
                                   gtpu6-input [1]        ip4-input-no-checksum
                                    ip6-lookup [2]
    



Example of how to display the feature enabled on an interface:


.. code-block:: console

    show ip interface features GigabitEthernet2/0/0
    
    IP feature paths configured on GigabitEthernet2/0/0...
    ...
    ipv6 unicast:
      ip6-gtpu-bypass
      ip6-lookup
    ...
    



Example of how to disable ip6-gtpu-bypass on an interface:


.. code-block:: console

    set interface ip6 gtpu-bypass GigabitEthernet2/0/0 del




Declaration: ``set_interface_ip6_gtpu_bypass_command`` `src/plugins/gtpu/gtpu.c line 1307 <https://github.com/FDio/vpp/blob/master//src/plugins/gtpu/gtpu.c#L1307>`_

Implementation: ``set_ip6_gtpu_bypass``


show gtpu tunnel
-------------------------------------------------------------------------

.. code-block:: console

    show gtpu tunnel



Display all the GTPU Tunnel entries.

Example of how to display the GTPU Tunnel entries:


.. code-block:: console

    show gtpu tunnel
    
    [0] src 10.0.3.1 dst 10.0.3.3 teid 13 tx-teid 55 encap_fib_index 0
     sw_if_index 5 decap_next l2 pdu-disabled
    



Declaration: ``show_gtpu_tunnel_command`` `src/plugins/gtpu/gtpu.c line 1142 <https://github.com/FDio/vpp/blob/master//src/plugins/gtpu/gtpu.c#L1142>`_

Implementation: ``show_gtpu_tunnel_command_fn``