diff options
| author | Andrey Konovalov <andreyknvl@google.com> | 2017-04-07 16:06:11 +0200 |
|---|---|---|
| committer | Andrey Konovalov <andreyknvl@google.com> | 2017-04-07 16:15:16 +0200 |
| commit | 0c82c1c3e78ca83e83fe816b87512ee69c237a4f (patch) | |
| tree | 7b0f012d44312d4009cb4bf57710f1665a156c5f /sys | |
| parent | 96adce017fc18e2da584bb22672bef9712578a69 (diff) | |
sys: add ipv4 arp ioctls
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/socket.txt | 4 | ||||
| -rw-r--r-- | sys/socket_inet.txt | 25 | ||||
| -rw-r--r-- | sys/socket_inet_amd64.const | 12 | ||||
| -rw-r--r-- | sys/socket_inet_arm64.const | 12 | ||||
| -rw-r--r-- | sys/socket_inet_ppc64le.const | 12 |
5 files changed, 63 insertions, 2 deletions
diff --git a/sys/socket.txt b/sys/socket.txt index 988921d2e..03bd0079a 100644 --- a/sys/socket.txt +++ b/sys/socket.txt @@ -82,6 +82,7 @@ sockaddr [ nfc sockaddr_nfc # TODO: AF_VSOCK # TODO: AF_QIPCRTR + ethernet sockaddr_ethernet generic sockaddr_generic ] @@ -125,6 +126,7 @@ sockaddr_all [ nfc_llcp sockaddr_nfc_llcp # TODO: AF_VSOCK # TODO: AF_QIPCRTR + ethernet sockaddr_ethernet generic sockaddr_all_generic ] [varlen] @@ -204,7 +206,7 @@ sockopt_so_timestamping = SOF_TIMESTAMPING_TX_HARDWARE, SOF_TIMESTAMPING_TX_SOFT # TODO: SIOCADDRT, SIOCDELRT, SIOCRTMSG # TODO: ETHTOOL commands (SIOCETHTOOL, ...) -# TODO: SIOCDARP, SIOCGARP, SIOCSARP, SIOCDRARP, SIOCGRARP, SIOCSRARP +# TODO: SIOCDRARP, SIOCGRARP, SIOCSRARP # TODO: SIOCGIFVLAN, SIOCSIFVLAN # TODO: SIOCGSTAMP, SIOCGSTAMPNS diff --git a/sys/socket_inet.txt b/sys/socket_inet.txt index cae635dd8..d42c28ad1 100644 --- a/sys/socket_inet.txt +++ b/sys/socket_inet.txt @@ -4,6 +4,7 @@ include <linux/ip.h> include <linux/ipv6.h> include <linux/route.h> +include <uapi/linux/if_arp.h> include <uapi/linux/netfilter_ipv6/ip6_tables.h> # IP sockets @@ -190,8 +191,14 @@ ioctl$inet_SIOCADDRT(fd sock_in, cmd const[SIOCADDRT], arg ptr[in, rtentry_in]) ioctl$inet_SIOCDELRT(fd sock_in, cmd const[SIOCDELRT], arg ptr[in, rtentry_in]) ioctl$inet_SIOCRTMSG(fd sock_in, cmd const[SIOCRTMSG], arg ptr[in, rtentry_in]) +ioctl$inet_SIOCDARP(fd sock_in, cmd const[SIOCDARP], arg ptr[in, arpreq_in]) +ioctl$inet_SIOCGARP(fd sock_in, cmd const[SIOCGARP], arg ptr[inout, arpreq_in]) +ioctl$inet_SIOCSARP(fd sock_in, cmd const[SIOCSARP], arg ptr[in, arpreq_in]) + # TODO: more here +rt_flags = RTF_UP, RTF_GATEWAY, RTF_HOST, RTF_REINSTATE, RTF_DYNAMIC, RTF_MODIFIED, RTF_MTU, RTF_WINDOW, RTF_IRTT, RTF_REJECT + rtentry_in { rt_pad1 int64 rt_dst sockaddr_in @@ -208,4 +215,20 @@ rtentry_in { rt_irtt int16 } -rt_flags = RTF_UP, RTF_GATEWAY, RTF_HOST, RTF_REINSTATE, RTF_DYNAMIC, RTF_MODIFIED, RTF_MTU, RTF_WINDOW, RTF_IRTT, RTF_REJECT +sockaddr_ethernet_family = ARPHRD_ETHER, ARPHRD_FDDI, ARPHRD_IEEE802 + +sockaddr_ethernet { + sa_family flags[sockaddr_ethernet_family, int16] + sa_data mac_addr + pad array[const[0, int8], 8] +} + +arp_flags = ATF_COM, ATF_PERM, ATF_PUBL, ATF_USETRAILERS, ATF_NETMASK, ATF_DONTPUB + +arpreq_in { + arp_pa sockaddr_in + arp_ha sockaddr_ethernet + arp_flags flags[arp_flags, int32] + arp_netmask sockaddr_in + arp_dev devname +} diff --git a/sys/socket_inet_amd64.const b/sys/socket_inet_amd64.const index 3c0c2efe1..116e43ae3 100644 --- a/sys/socket_inet_amd64.const +++ b/sys/socket_inet_amd64.const @@ -1,5 +1,14 @@ # AUTOGENERATED FILE AF_INET = 2 +ARPHRD_ETHER = 1 +ARPHRD_FDDI = 774 +ARPHRD_IEEE802 = 6 +ATF_COM = 2 +ATF_DONTPUB = 64 +ATF_NETMASK = 32 +ATF_PERM = 4 +ATF_PUBL = 8 +ATF_USETRAILERS = 16 IPPROTO_IP = 0 IP_ADD_MEMBERSHIP = 35 IP_ADD_SOURCE_MEMBERSHIP = 39 @@ -63,8 +72,11 @@ RTF_REJECT = 512 RTF_UP = 1 RTF_WINDOW = 128 SIOCADDRT = 35083 +SIOCDARP = 35155 SIOCDELRT = 35084 +SIOCGARP = 35156 SIOCRTMSG = 35085 +SIOCSARP = 35157 __NR_accept = 43 __NR_accept4 = 288 __NR_bind = 49 diff --git a/sys/socket_inet_arm64.const b/sys/socket_inet_arm64.const index 8352659cc..aaba7ef8d 100644 --- a/sys/socket_inet_arm64.const +++ b/sys/socket_inet_arm64.const @@ -1,5 +1,14 @@ # AUTOGENERATED FILE AF_INET = 2 +ARPHRD_ETHER = 1 +ARPHRD_FDDI = 774 +ARPHRD_IEEE802 = 6 +ATF_COM = 2 +ATF_DONTPUB = 64 +ATF_NETMASK = 32 +ATF_PERM = 4 +ATF_PUBL = 8 +ATF_USETRAILERS = 16 IPPROTO_IP = 0 IP_ADD_MEMBERSHIP = 35 IP_ADD_SOURCE_MEMBERSHIP = 39 @@ -63,8 +72,11 @@ RTF_REJECT = 512 RTF_UP = 1 RTF_WINDOW = 128 SIOCADDRT = 35083 +SIOCDARP = 35155 SIOCDELRT = 35084 +SIOCGARP = 35156 SIOCRTMSG = 35085 +SIOCSARP = 35157 __NR_accept = 202 __NR_accept4 = 242 __NR_bind = 200 diff --git a/sys/socket_inet_ppc64le.const b/sys/socket_inet_ppc64le.const index 269450c18..238b647d8 100644 --- a/sys/socket_inet_ppc64le.const +++ b/sys/socket_inet_ppc64le.const @@ -1,5 +1,14 @@ # AUTOGENERATED FILE AF_INET = 2 +ARPHRD_ETHER = 1 +ARPHRD_FDDI = 774 +ARPHRD_IEEE802 = 6 +ATF_COM = 2 +ATF_DONTPUB = 64 +ATF_NETMASK = 32 +ATF_PERM = 4 +ATF_PUBL = 8 +ATF_USETRAILERS = 16 IPPROTO_IP = 0 IP_ADD_MEMBERSHIP = 35 IP_ADD_SOURCE_MEMBERSHIP = 39 @@ -63,8 +72,11 @@ RTF_REJECT = 512 RTF_UP = 1 RTF_WINDOW = 128 SIOCADDRT = 35083 +SIOCDARP = 35155 SIOCDELRT = 35084 +SIOCGARP = 35156 SIOCRTMSG = 35085 +SIOCSARP = 35157 __NR_accept = 330 __NR_accept4 = 344 __NR_bind = 327 |
