• Matteo Croce's avatar
    openvswitch: add TTL decrement action · 744676e7
    Matteo Croce authored
    New action to decrement TTL instead of setting it to a fixed value.
    This action will decrement the TTL and, in case of expired TTL, drop it
    or execute an action passed via a nested attribute.
    The default TTL expired action is to drop the packet.
    
    Supports both IPv4 and IPv6 via the ttl and hop_limit fields, respectively.
    
    Tested with a corresponding change in the userspace:
    
        # ovs-dpctl dump-flows
        in_port(2),eth(),eth_type(0x0800), packets:0, bytes:0, used:never, actions:dec_ttl{ttl<=1 action:(drop)},1
        in_port(1),eth(),eth_type(0x0800), packets:0, bytes:0, used:never, actions:dec_ttl{ttl<=1 action:(drop)},2
        in_port(1),eth(),eth_type(0x0806), packets:0, bytes:0, used:never, actions:2
        in_port(2),eth(),eth_type(0x0806), packets:0, bytes:0, used:never, actions:1
    
        # ping -c1 192.168.0.2 -t 42
        IP (tos 0x0, ttl 41, id 61647, offset 0, flags [DF], proto ICMP (1), length 84)
            192.168.0.1 > 192.168.0.2: ICMP echo request, id 386, seq 1, length 64
        # ping -c1 192.168.0.2 -t 120
        IP (tos 0x0, ttl 119, id 62070, offset 0, flags [DF], proto ICMP (1), length 84)
            192.168.0.1 > 192.168.0.2: ICMP echo request, id 388, seq 1, length 64
        # ping -c1 192.168.0.2 -t 1
        #
    Co-developed-by: default avatarBindiya Kurle <bindiyakurle@gmail.com>
    Signed-off-by: default avatarBindiya Kurle <bindiyakurle@gmail.com>
    Signed-off-by: default avatarMatteo Croce <mcroce@redhat.com>
    Acked-by: default avatarPravin B Shelar <pshelar@ovn.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    744676e7
flow_netlink.c 95.5 KB