1*4e16b6a7SJakub Kicinski# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
237d9df22SJakub Kicinski
34eb77b4eSJakub Kicinskiname: fou
44eb77b4eSJakub Kicinski
54eb77b4eSJakub Kicinskiprotocol: genetlink-legacy
64eb77b4eSJakub Kicinski
74eb77b4eSJakub Kicinskidoc: |
84eb77b4eSJakub Kicinski  Foo-over-UDP.
94eb77b4eSJakub Kicinski
104eb77b4eSJakub Kicinskic-family-name: fou-genl-name
114eb77b4eSJakub Kicinskic-version-name: fou-genl-version
124eb77b4eSJakub Kicinskimax-by-define: true
134eb77b4eSJakub Kicinskikernel-policy: global
144eb77b4eSJakub Kicinski
154eb77b4eSJakub Kicinskidefinitions:
164eb77b4eSJakub Kicinski  -
174eb77b4eSJakub Kicinski    type: enum
184eb77b4eSJakub Kicinski    name: encap_type
194eb77b4eSJakub Kicinski    name-prefix: fou-encap-
204eb77b4eSJakub Kicinski    enum-name:
214eb77b4eSJakub Kicinski    entries: [ unspec, direct, gue ]
224eb77b4eSJakub Kicinski
234eb77b4eSJakub Kicinskiattribute-sets:
244eb77b4eSJakub Kicinski  -
254eb77b4eSJakub Kicinski    name: fou
264eb77b4eSJakub Kicinski    name-prefix: fou-attr-
274eb77b4eSJakub Kicinski    attributes:
284eb77b4eSJakub Kicinski      -
294eb77b4eSJakub Kicinski        name: unspec
304eb77b4eSJakub Kicinski        type: unused
31bcec7171SJakub Kicinski        value: 0
324eb77b4eSJakub Kicinski      -
334eb77b4eSJakub Kicinski        name: port
344eb77b4eSJakub Kicinski        type: u16
354eb77b4eSJakub Kicinski        byte-order: big-endian
364eb77b4eSJakub Kicinski      -
374eb77b4eSJakub Kicinski        name: af
384eb77b4eSJakub Kicinski        type: u8
394eb77b4eSJakub Kicinski      -
404eb77b4eSJakub Kicinski        name: ipproto
414eb77b4eSJakub Kicinski        type: u8
424eb77b4eSJakub Kicinski      -
434eb77b4eSJakub Kicinski        name: type
444eb77b4eSJakub Kicinski        type: u8
454eb77b4eSJakub Kicinski      -
464eb77b4eSJakub Kicinski        name: remcsum_nopartial
474eb77b4eSJakub Kicinski        type: flag
484eb77b4eSJakub Kicinski      -
494eb77b4eSJakub Kicinski        name: local_v4
504eb77b4eSJakub Kicinski        type: u32
514eb77b4eSJakub Kicinski      -
524eb77b4eSJakub Kicinski        name: local_v6
534eb77b4eSJakub Kicinski        type: binary
544eb77b4eSJakub Kicinski        checks:
554eb77b4eSJakub Kicinski          min-len: 16
564eb77b4eSJakub Kicinski      -
574eb77b4eSJakub Kicinski        name: peer_v4
584eb77b4eSJakub Kicinski        type: u32
594eb77b4eSJakub Kicinski      -
604eb77b4eSJakub Kicinski        name: peer_v6
614eb77b4eSJakub Kicinski        type: binary
624eb77b4eSJakub Kicinski        checks:
634eb77b4eSJakub Kicinski          min-len: 16
644eb77b4eSJakub Kicinski      -
654eb77b4eSJakub Kicinski        name: peer_port
664eb77b4eSJakub Kicinski        type: u16
674eb77b4eSJakub Kicinski        byte-order: big-endian
684eb77b4eSJakub Kicinski      -
694eb77b4eSJakub Kicinski        name: ifindex
704eb77b4eSJakub Kicinski        type: s32
714eb77b4eSJakub Kicinski
724eb77b4eSJakub Kicinskioperations:
734eb77b4eSJakub Kicinski  list:
744eb77b4eSJakub Kicinski    -
754eb77b4eSJakub Kicinski      name: unspec
764eb77b4eSJakub Kicinski      doc: unused
77bcec7171SJakub Kicinski      value: 0
784eb77b4eSJakub Kicinski
794eb77b4eSJakub Kicinski    -
804eb77b4eSJakub Kicinski      name: add
814eb77b4eSJakub Kicinski      doc: Add port.
824eb77b4eSJakub Kicinski      attribute-set: fou
834eb77b4eSJakub Kicinski
844eb77b4eSJakub Kicinski      dont-validate: [ strict, dump ]
854eb77b4eSJakub Kicinski      flags: [ admin-perm ]
864eb77b4eSJakub Kicinski
874eb77b4eSJakub Kicinski      do:
884eb77b4eSJakub Kicinski        request: &all_attrs
894eb77b4eSJakub Kicinski          attributes:
904eb77b4eSJakub Kicinski            - port
914eb77b4eSJakub Kicinski            - ipproto
924eb77b4eSJakub Kicinski            - type
934eb77b4eSJakub Kicinski            - remcsum_nopartial
944eb77b4eSJakub Kicinski            - local_v4
954eb77b4eSJakub Kicinski            - peer_v4
964eb77b4eSJakub Kicinski            - local_v6
974eb77b4eSJakub Kicinski            - peer_v6
984eb77b4eSJakub Kicinski            - peer_port
994eb77b4eSJakub Kicinski            - ifindex
1004eb77b4eSJakub Kicinski
1014eb77b4eSJakub Kicinski    -
1024eb77b4eSJakub Kicinski      name: del
1034eb77b4eSJakub Kicinski      doc: Delete port.
1044eb77b4eSJakub Kicinski      attribute-set: fou
1054eb77b4eSJakub Kicinski
1064eb77b4eSJakub Kicinski      dont-validate: [ strict, dump ]
1074eb77b4eSJakub Kicinski      flags: [ admin-perm ]
1084eb77b4eSJakub Kicinski
1094eb77b4eSJakub Kicinski      do:
1104eb77b4eSJakub Kicinski        request: &select_attrs
1114eb77b4eSJakub Kicinski          attributes:
1124eb77b4eSJakub Kicinski            - af
1134eb77b4eSJakub Kicinski            - ifindex
1144eb77b4eSJakub Kicinski            - port
1154eb77b4eSJakub Kicinski            - peer_port
1164eb77b4eSJakub Kicinski            - local_v4
1174eb77b4eSJakub Kicinski            - peer_v4
1184eb77b4eSJakub Kicinski            - local_v6
1194eb77b4eSJakub Kicinski            - peer_v6
1204eb77b4eSJakub Kicinski
1214eb77b4eSJakub Kicinski    -
1224eb77b4eSJakub Kicinski      name: get
1234eb77b4eSJakub Kicinski      doc: Get tunnel info.
1244eb77b4eSJakub Kicinski      attribute-set: fou
1254eb77b4eSJakub Kicinski      dont-validate: [ strict, dump ]
1264eb77b4eSJakub Kicinski
1274eb77b4eSJakub Kicinski      do:
1284eb77b4eSJakub Kicinski        request: *select_attrs
1294eb77b4eSJakub Kicinski        reply: *all_attrs
1304eb77b4eSJakub Kicinski
1314eb77b4eSJakub Kicinski      dump:
1324eb77b4eSJakub Kicinski        reply: *all_attrs
133