From 876d4def98007d989396051cf6711addf5ee0225 Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Mon, 13 Feb 2017 15:46:28 +0100 Subject: sys: add igmp basic packet description --- sys/vnet.txt | 23 +++++++++++++++++++++++ sys/vnet_amd64.const | 10 ++++++++++ sys/vnet_arm64.const | 10 ++++++++++ sys/vnet_ppc64le.const | 10 ++++++++++ 4 files changed, 53 insertions(+) (limited to 'sys') diff --git a/sys/vnet.txt b/sys/vnet.txt index 26fa6ba3f..9a0fab70e 100644 --- a/sys/vnet.txt +++ b/sys/vnet.txt @@ -384,6 +384,7 @@ ipv4_payload [ udp udp_packet icmp icmp_packet dccp dccp_packet + igmp igmp_packet ] [varlen] ipv6_payload [ @@ -860,3 +861,25 @@ dccp_packet { header dccp_header payload array[int8] } [packed] + +################################################################################ +###################################### IGMP #################################### +################################################################################ + +# https://tools.ietf.org/html/rfc2236 +# https://tools.ietf.org/html/rfc3376#section-4 + +include + +igmp_types = IGMP_HOST_MEMBERSHIP_QUERY, IGMP_HOST_MEMBERSHIP_REPORT, IGMP_DVMRP, IGMP_PIM, IGMP_TRACE, IGMPV2_HOST_MEMBERSHIP_REPORT, IGMP_HOST_LEAVE_MESSAGE, IGMPV3_HOST_MEMBERSHIP_REPORT, IGMP_MTRACE_RESP, IGMP_MTRACE + +igmp_packet { + type flags[igmp_types, int8] + mrtime int8 + csum csum[parent, inet, int16be] + addr ipv4_addr + data array[int8] +} [packed] + +# TODO: describe particular IGMP packets +# TODO: open IGMP sockets from userspace diff --git a/sys/vnet_amd64.const b/sys/vnet_amd64.const index ec468bc1b..cf6a36f28 100644 --- a/sys/vnet_amd64.const +++ b/sys/vnet_amd64.const @@ -132,6 +132,16 @@ ICMP_SR_FAILED = 5 ICMP_TIMESTAMP = 13 ICMP_TIMESTAMPREPLY = 14 ICMP_TIME_EXCEEDED = 11 +IGMPV2_HOST_MEMBERSHIP_REPORT = 22 +IGMPV3_HOST_MEMBERSHIP_REPORT = 34 +IGMP_DVMRP = 19 +IGMP_HOST_LEAVE_MESSAGE = 23 +IGMP_HOST_MEMBERSHIP_QUERY = 17 +IGMP_HOST_MEMBERSHIP_REPORT = 18 +IGMP_MTRACE = 31 +IGMP_MTRACE_RESP = 30 +IGMP_PIM = 20 +IGMP_TRACE = 21 IPOPT_CIPSO = 134 IPOPT_END = 0 IPOPT_LSRR = 131 diff --git a/sys/vnet_arm64.const b/sys/vnet_arm64.const index ec468bc1b..cf6a36f28 100644 --- a/sys/vnet_arm64.const +++ b/sys/vnet_arm64.const @@ -132,6 +132,16 @@ ICMP_SR_FAILED = 5 ICMP_TIMESTAMP = 13 ICMP_TIMESTAMPREPLY = 14 ICMP_TIME_EXCEEDED = 11 +IGMPV2_HOST_MEMBERSHIP_REPORT = 22 +IGMPV3_HOST_MEMBERSHIP_REPORT = 34 +IGMP_DVMRP = 19 +IGMP_HOST_LEAVE_MESSAGE = 23 +IGMP_HOST_MEMBERSHIP_QUERY = 17 +IGMP_HOST_MEMBERSHIP_REPORT = 18 +IGMP_MTRACE = 31 +IGMP_MTRACE_RESP = 30 +IGMP_PIM = 20 +IGMP_TRACE = 21 IPOPT_CIPSO = 134 IPOPT_END = 0 IPOPT_LSRR = 131 diff --git a/sys/vnet_ppc64le.const b/sys/vnet_ppc64le.const index ec468bc1b..cf6a36f28 100644 --- a/sys/vnet_ppc64le.const +++ b/sys/vnet_ppc64le.const @@ -132,6 +132,16 @@ ICMP_SR_FAILED = 5 ICMP_TIMESTAMP = 13 ICMP_TIMESTAMPREPLY = 14 ICMP_TIME_EXCEEDED = 11 +IGMPV2_HOST_MEMBERSHIP_REPORT = 22 +IGMPV3_HOST_MEMBERSHIP_REPORT = 34 +IGMP_DVMRP = 19 +IGMP_HOST_LEAVE_MESSAGE = 23 +IGMP_HOST_MEMBERSHIP_QUERY = 17 +IGMP_HOST_MEMBERSHIP_REPORT = 18 +IGMP_MTRACE = 31 +IGMP_MTRACE_RESP = 30 +IGMP_PIM = 20 +IGMP_TRACE = 21 IPOPT_CIPSO = 134 IPOPT_END = 0 IPOPT_LSRR = 131 -- cgit mrf-deployment