IgmpMessageType.MulticastTraceRouteResponse,IgmpMessageType.MulticastTraceRoute);// todo support IGMP traceroute http://www.ietf.org/proceedings/48/I-D/idmr-traceroute-ipm-07.txt.
IgmpMessageType.MulticastTraceRouteResponse,IgmpMessageType.MulticastTraceRoute);// todo support IGMP traceroute http://www.ietf.org/proceedings/48/I-D/idmr-traceroute-ipm-07.txt.
thrownewInvalidOperationException(System.Reflection.MethodBase.GetCurrentMethod().Name+" can only be accessed when reply code is request pending retry in this many seconds");
returnthis[Offset.Code];
}
}
/// <summary>
/// <summary>
/// The Max Resp Code field specifies the maximum time allowed before sending a responding report.
/// The Max Resp Code field specifies the maximum time allowed before sending a responding report.
/// The actual time allowed, called the Max Resp Time, is represented in units of 1/10 second and is derived from the Max Resp Code as follows:
/// The actual time allowed, called the Max Resp Time, is represented in units of 1/10 second and is derived from the Max Resp Code as follows:
/// In a Confirm Group Request message, the identifier field contains zero.
///
/// In all other Request messages, the identifier field contains a value to distinguish the request from other requests by the same host.
///
/// In a Reply message, the identifier field contains the same value as in the corresponding Request message.
/// </summary>
publicuintIdentifier
{
get
{
returnReadUInt(Offset.Identifier,Endianity.Big);
}
}
/// <summary>
/// Version 0:
/// In a Create Group Request message, the group address field contains zero.
/// In all other Request messages, the group address field contains a host group address.
/// In a Create Group Reply message, the group address field contains either a newly allocated host group address (if the request is granted)
/// or zero (if denied).
/// In all other Reply messages, the group address field contains the same host group address as in the corresponding Request message.
///
/// Version 1 or higher:
/// The Group Address field is set to zero when sending a General Query,
/// The Group Address field is set to zero when sending a General Query,
/// and set to the IP multicast address being queried when sending a Group-Specific Query or Group-and-Source-Specific Query.
/// and set to the IP multicast address being queried when sending a Group-Specific Query or Group-and-Source-Specific Query.
/// In a Membership Report of version 1 or 2 or Leave Group message, the group address field holds the IP multicast group address of the group being reported or left.
/// In a Membership Report of version 1 or 2 or Leave Group message,
/// the group address field holds the IP multicast group address of the group being reported or left.
/// In a Membership Report of version 3 this field is meaningless.
/// In a Membership Report of version 3 this field is meaningless.
/// In a Create Group Request message, the access key field contains zero.
/// In all other Request messages, the access key field contains the access key assigned to the host group identified in the Group Address field
/// (zero for public groups).
/// In a Create Group Reply message, the access key field contains either a non-zero 64-bit number (if the request for a private group is granted)
/// or zero.
/// In all other Reply messages, the access key field contains the same access key as in the corresponding Request.
/// </summary>
publiculongAccessKey
{
get
{
returnReadULong(Offset.AccessKey,Endianity.Big);
}
}
}
/// <summary>
/// <summary>
/// When set to one, the S Flag indicates to any receiving multicast routers that they are to suppress the normal timer updates they perform upon hearing a Query.
/// When set to one, the S Flag indicates to any receiving multicast routers
/// It does not, however, suppress the querier election or the normal "host-side" processing of a Query
/// that they are to suppress the normal timer updates they perform upon hearing a Query.
/// It does not, however, suppress the querier election or the normal "host-side" processing of a Query
/// that a router may be required to perform as a consequence of itself being a group member.
/// that a router may be required to perform as a consequence of itself being a group member.
/// The Group Address field is set to zero when sending a General Query,
/// The Group Address field is set to zero when sending a General Query,
/// and set to the IP multicast address being queried when sending a Group-Specific Query or Group-and-Source-Specific Query.
/// and set to the IP multicast address being queried when sending a Group-Specific Query or Group-and-Source-Specific Query.
/// In a Membership Report of version 1 or 2 or Leave Group message, the group address field holds the IP multicast group address of the group being reported or left.
/// In a Membership Report of version 1 or 2 or Leave Group message, the group address field holds the IP multicast group address of the group being reported or left.
/// In a Membership Report of version 3 this field is meaningless.
/// In a Membership Report of version 3 this field is meaningless.
/// </summary>
/// </summary>
publicIpV4AddressGroupAddress{get;set;}
publicIpV4AddressGroupAddress{get;set;}
/// <summary>
/// <summary>
/// The number of bytes this layer will take.
/// The number of bytes this layer will take.
/// </summary>
/// </summary>
publicsealedoverrideintLength
publicsealedoverrideintLength
{
{
get{returnIgmpDatagram.HeaderLength;}
get{returnIgmpDatagram.HeaderLength;}
}
}
/// <summary>
/// <summary>
/// Writes the layer to the buffer.
/// Writes the layer to the buffer.
/// This method ignores the payload length, and the previous and next layers.
/// This method ignores the payload length, and the previous and next layers.
/// </summary>
/// </summary>
/// <param name="buffer">The buffer to write the layer to.</param>
/// <param name="buffer">The buffer to write the layer to.</param>
/// <param name="offset">The offset in the buffer to start writing the layer at.</param>
/// <param name="offset">The offset in the buffer to start writing the layer at.</param>