]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
uapi: add missing rose and ax25 files
authorStephen Hemminger <stephen@networkplumber.org>
Sat, 15 Jan 2022 18:38:58 +0000 (10:38 -0800)
committerStephen Hemminger <stephen@networkplumber.org>
Sat, 15 Jan 2022 18:38:58 +0000 (10:38 -0800)
All iproute2 headers should come from sanitized kernel headers
not the local system.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
include/uapi/linux/ax25.h [new file with mode: 0644]
include/uapi/linux/rose.h [new file with mode: 0644]

diff --git a/include/uapi/linux/ax25.h b/include/uapi/linux/ax25.h
new file mode 100644 (file)
index 0000000..b496b9d
--- /dev/null
@@ -0,0 +1,117 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+ * These are the public elements of the Linux kernel AX.25 code. A similar
+ * file netrom.h exists for the NET/ROM protocol.
+ */
+
+#ifndef        AX25_KERNEL_H
+#define        AX25_KERNEL_H
+
+#include <linux/socket.h>
+
+#define AX25_MTU       256
+#define AX25_MAX_DIGIS  8
+
+#define AX25_WINDOW    1
+#define AX25_T1                2
+#define AX25_N2                3
+#define AX25_T3                4
+#define AX25_T2                5
+#define        AX25_BACKOFF    6
+#define        AX25_EXTSEQ     7
+#define        AX25_PIDINCL    8
+#define AX25_IDLE      9
+#define AX25_PACLEN    10
+#define AX25_IAMDIGI   12
+
+#define AX25_KILL      99
+
+#define SIOCAX25GETUID         (SIOCPROTOPRIVATE+0)
+#define SIOCAX25ADDUID         (SIOCPROTOPRIVATE+1)
+#define SIOCAX25DELUID         (SIOCPROTOPRIVATE+2)
+#define SIOCAX25NOUID          (SIOCPROTOPRIVATE+3)
+#define SIOCAX25OPTRT          (SIOCPROTOPRIVATE+7)
+#define SIOCAX25CTLCON         (SIOCPROTOPRIVATE+8)
+#define SIOCAX25GETINFOOLD     (SIOCPROTOPRIVATE+9)
+#define SIOCAX25ADDFWD         (SIOCPROTOPRIVATE+10)
+#define SIOCAX25DELFWD         (SIOCPROTOPRIVATE+11)
+#define SIOCAX25DEVCTL          (SIOCPROTOPRIVATE+12)
+#define SIOCAX25GETINFO         (SIOCPROTOPRIVATE+13)
+
+#define AX25_SET_RT_IPMODE     2
+
+#define AX25_NOUID_DEFAULT     0
+#define AX25_NOUID_BLOCK       1
+
+typedef struct {
+       char            ax25_call[7];   /* 6 call + SSID (shifted ascii!) */
+} ax25_address;
+
+struct sockaddr_ax25 {
+       __kernel_sa_family_t sax25_family;
+       ax25_address    sax25_call;
+       int             sax25_ndigis;
+       /* Digipeater ax25_address sets follow */
+};
+
+#define sax25_uid      sax25_ndigis
+
+struct full_sockaddr_ax25 {
+       struct sockaddr_ax25 fsa_ax25;
+       ax25_address    fsa_digipeater[AX25_MAX_DIGIS];
+};
+
+struct ax25_routes_struct {
+       ax25_address    port_addr;
+       ax25_address    dest_addr;
+       unsigned char   digi_count;
+       ax25_address    digi_addr[AX25_MAX_DIGIS];
+};
+
+struct ax25_route_opt_struct {
+       ax25_address    port_addr;
+       ax25_address    dest_addr;
+       int             cmd;
+       int             arg;
+};
+
+struct ax25_ctl_struct {
+        ax25_address            port_addr;
+        ax25_address            source_addr;
+        ax25_address            dest_addr;
+        unsigned int            cmd;
+        unsigned long           arg;
+        unsigned char           digi_count;
+        ax25_address            digi_addr[AX25_MAX_DIGIS];
+};
+
+/* this will go away. Please do not export to user land */
+struct ax25_info_struct_deprecated {
+       unsigned int    n2, n2count;
+       unsigned int    t1, t1timer;
+       unsigned int    t2, t2timer;
+       unsigned int    t3, t3timer;
+       unsigned int    idle, idletimer;
+       unsigned int    state;
+       unsigned int    rcv_q, snd_q;
+};
+
+struct ax25_info_struct {
+       unsigned int    n2, n2count;
+       unsigned int    t1, t1timer;
+       unsigned int    t2, t2timer;
+       unsigned int    t3, t3timer;
+       unsigned int    idle, idletimer;
+       unsigned int    state;
+       unsigned int    rcv_q, snd_q;
+       unsigned int    vs, vr, va, vs_max;
+       unsigned int    paclen;
+       unsigned int    window;
+};
+
+struct ax25_fwd_struct {
+       ax25_address    port_from;
+       ax25_address    port_to;
+};
+
+#endif
diff --git a/include/uapi/linux/rose.h b/include/uapi/linux/rose.h
new file mode 100644 (file)
index 0000000..19aa469
--- /dev/null
@@ -0,0 +1,91 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+ * These are the public elements of the Linux kernel Rose implementation.
+ * For kernel AX.25 see the file ax25.h. This file requires ax25.h for the
+ * definition of the ax25_address structure.
+ */
+
+#ifndef        ROSE_KERNEL_H
+#define        ROSE_KERNEL_H
+
+#include <linux/socket.h>
+#include <linux/ax25.h>
+
+#define ROSE_MTU       251
+
+#define ROSE_MAX_DIGIS 6
+
+#define        ROSE_DEFER      1
+#define ROSE_T1                2
+#define        ROSE_T2         3
+#define        ROSE_T3         4
+#define        ROSE_IDLE       5
+#define        ROSE_QBITINCL   6
+#define        ROSE_HOLDBACK   7
+
+#define        SIOCRSGCAUSE            (SIOCPROTOPRIVATE+0)
+#define        SIOCRSSCAUSE            (SIOCPROTOPRIVATE+1)
+#define        SIOCRSL2CALL            (SIOCPROTOPRIVATE+2)
+#define        SIOCRSSL2CALL           (SIOCPROTOPRIVATE+2)
+#define        SIOCRSACCEPT            (SIOCPROTOPRIVATE+3)
+#define        SIOCRSCLRRT             (SIOCPROTOPRIVATE+4)
+#define        SIOCRSGL2CALL           (SIOCPROTOPRIVATE+5)
+#define        SIOCRSGFACILITIES       (SIOCPROTOPRIVATE+6)
+
+#define        ROSE_DTE_ORIGINATED     0x00
+#define        ROSE_NUMBER_BUSY        0x01
+#define        ROSE_INVALID_FACILITY   0x03
+#define        ROSE_NETWORK_CONGESTION 0x05
+#define        ROSE_OUT_OF_ORDER       0x09
+#define        ROSE_ACCESS_BARRED      0x0B
+#define        ROSE_NOT_OBTAINABLE     0x0D
+#define        ROSE_REMOTE_PROCEDURE   0x11
+#define        ROSE_LOCAL_PROCEDURE    0x13
+#define        ROSE_SHIP_ABSENT        0x39
+
+typedef struct {
+       char            rose_addr[5];
+} rose_address;
+
+struct sockaddr_rose {
+       __kernel_sa_family_t srose_family;
+       rose_address    srose_addr;
+       ax25_address    srose_call;
+       int             srose_ndigis;
+       ax25_address    srose_digi;
+};
+
+struct full_sockaddr_rose {
+       __kernel_sa_family_t srose_family;
+       rose_address    srose_addr;
+       ax25_address    srose_call;
+       unsigned int    srose_ndigis;
+       ax25_address    srose_digis[ROSE_MAX_DIGIS];
+};
+
+struct rose_route_struct {
+       rose_address    address;
+       unsigned short  mask;
+       ax25_address    neighbour;
+       char            device[16];
+       unsigned char   ndigis;
+       ax25_address    digipeaters[AX25_MAX_DIGIS];
+};
+
+struct rose_cause_struct {
+       unsigned char   cause;
+       unsigned char   diagnostic;
+};
+
+struct rose_facilities_struct {
+       rose_address    source_addr,   dest_addr;
+       ax25_address    source_call,   dest_call;
+       unsigned char   source_ndigis, dest_ndigis;
+       ax25_address    source_digis[ROSE_MAX_DIGIS];
+       ax25_address    dest_digis[ROSE_MAX_DIGIS];
+       unsigned int    rand;
+       rose_address    fail_addr;
+       ax25_address    fail_call;
+};
+
+#endif