# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) name: fou protocol: genetlink-legacy doc: | Foo-over-UDP. c-family-name: fou-genl-name c-version-name: fou-genl-version max-by-define: true kernel-policy: global definitions: - type: enum name: encap_type name-prefix: fou-encap- enum-name: entries: [ unspec, direct, gue ] attribute-sets: - name: fou name-prefix: fou-attr- attributes: - name: unspec type: unused value: 0 - name: port type: u16 byte-order: big-endian - name: af type: u8 - name: ipproto type: u8 - name: type type: u8 - name: remcsum_nopartial type: flag - name: local_v4 type: u32 - name: local_v6 type: binary checks: min-len: 16 - name: peer_v4 type: u32 - name: peer_v6 type: binary checks: min-len: 16 - name: peer_port type: u16 byte-order: big-endian - name: ifindex type: s32 operations: list: - name: unspec doc: unused value: 0 - name: add doc: Add port. attribute-set: fou dont-validate: [ strict, dump ] flags: [ admin-perm ] do: request: &all_attrs attributes: - port - ipproto - type - remcsum_nopartial - local_v4 - peer_v4 - local_v6 - peer_v6 - peer_port - ifindex - name: del doc: Delete port. attribute-set: fou dont-validate: [ strict, dump ] flags: [ admin-perm ] do: request: &select_attrs attributes: - af - ifindex - port - peer_port - local_v4 - peer_v4 - local_v6 - peer_v6 - name: get doc: Get tunnel info. attribute-set: fou dont-validate: [ strict, dump ] do: request: *select_attrs reply: *all_attrs dump: reply: *all_attrs