<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://mibs.cablelabs.com/namespaces/DOCSIS/3.0/xsd/ipdr/DOCSIS-IP-MULTICAST" 
        xmlns:DOCSIS-CPE="http://mibs.cablelabs.com/namespaces/DOCSIS/3.0/xsd/ipdr/DOCSIS-IP-MULTICAST" 
        xmlns:ipdr="http://mibs.cablelabs.com/namespaces/DOCSIS/tmforum/xsd/ipdr/" version="3.7-A.1.0.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <import namespace="http://mibs.cablelabs.com/namespaces/DOCSIS/tmforum/xsd/ipdr/" schemaLocation="http://mibs.cablelabs.com/namespaces/DOCSIS/tmforum/xsd/ipdr/IPDRDoc3.5.1.xsd"/>
    <include schemaLocation="http://mibs.cablelabs.com/namespaces/DOCSIS/tmforum/xsd/ipdr/IPDRTypes.xsd"/>
    <annotation>
       <documentation>
        DOCSIS-IP-MULTICAST is an auxiliary schema 
        which defines IP Multicast information.
        
        Revision History:
        3.5.1-A.1 Initial version.
        3.7-A.1.0.0 New revision naming convention.

        Contact:
        Postal: Cable Television Laboratories, Inc.
        858 Coal Creek Circle
        Louisville, Colorado 80027-9750
        U.S.A.
        Phone: +1 303-661-9100
        Fax:   +1 303-661-9199
        Email: data-model-support@cablelabs.com

        Copyright 2019-2024 Cable Television Laboratories, Inc.
            All rights reserved.
        </documentation>
        <documentation>
        <ipdr:reference>Data-Over-Cable Service Interface Specifications: Operations
        Support System Interface Specification SP-CM-OSSIv3.0-I24-140729, Annex C.
        </ipdr:reference>
        </documentation>
    </annotation>
    <element name="IpMcastSrcIpv4Addr" type="ipdr:ipV4Addr">
        <annotation>
            <documentation>Contains the value of the IPv4 address of 'S' as the source 
            address for a particular (S,G) IP multicast session. For the case of Any 
            Source Multicast (ASM), this attribute reports a value of 0.0.0.0.</documentation>
        </annotation>
    </element>
    <element name="IpMcastSrcIpv6Addr" type="ipdr:ipV6Addr">
        <annotation>
            <documentation>Contains the value of the IPv6 address of 'S' as the source 
            address for a particular (S,G) IP multicast session. For the case of Any 
            Source Multicast (ASM), this attribute reports a value of 0::/0.</documentation>
        </annotation>
    </element>
    <element name="IpMcastGrpIpv4Addr" type="ipdr:ipV4Addr">
        <annotation>
            <documentation>Contains the value of the IPv4 address of 'G' as the group 
            address for a particular (S,G) IP multicast session.</documentation>
        </annotation>
    </element>
    <element name="IpMcastGrpIpv6Addr" type="ipdr:ipV6Addr">
        <annotation>
            <documentation>Contains The value of the IPv6 address of 'G' as the group 
            address for a particular (S,G) IP multicast session.</documentation>
        </annotation>
    </element>
        <element name="IpMcastGsfId" type="unsignedInt">
        <annotation>
            <documentation>Contains the value of the Group Service Flow Id. This element
             is associated with the ServiceIdentifer element from the SAMIS-TYPE-1 and 
             SAMIS-TYPE-2 Service Definition Schemas.</documentation>
        </annotation>
    </element>
    <element name="IpMcastDsid" type="unsignedInt">
        <annotation>
            <documentation>Contains the value of the Downstream Service ID (DSID) label 
            with which the CMTS labels all packets of a particular (S,G) IP multicast 
            session.</documentation>
        </annotation>
    </element>
    <element name="IpMcastSessionProtocolType">
        <annotation>
            <documentation>Contains the value of the type of IP multicast session 
            (IGMP, MLD or PIM).</documentation>
        </annotation>
        <simpleType>
			<restriction base="integer">
				<enumeration value="0">
					<annotation>
						<documentation>
							<ipdr:enumMeaning>reserved</ipdr:enumMeaning>
						</documentation>
					</annotation>
				</enumeration>
				<enumeration value="1">
					<annotation>
						<documentation>
							<ipdr:enumMeaning>IGMP</ipdr:enumMeaning>
						</documentation>
					</annotation>
				</enumeration>
				<enumeration value="2">
					<annotation>
						<documentation>
							<ipdr:enumMeaning>MLD</ipdr:enumMeaning>
						</documentation>
					</annotation>
				</enumeration>
			</restriction>
		</simpleType>
    </element>
    <element name="IpMcastCpeMacAddrList" type="hexBinary">
        <annotation>
            <documentation>The value of the list of CPE MAC addresses joining the
             (S,G) IP multicast session. The associated CPE IPv4 and IPv6 address 
             information can be obtained with the CPE-TYPE Service Definition 
             Schema.</documentation>
        </annotation>
    </element>
    <element name="IpMcastJoinTime" type="ipdr:dateTimeMsec">
        <annotation>
            <documentation>The value of the UTC time stamp "yyyy-mm-ddThh:mm:ssZ" 
            at the time the IP multicast JOIN request from this CPE for this multicast
            session was processed by the CMTS. The compact representation of this 
            attribute is the 64-bit Long value of milliseconds since Epoch Time.</documentation>
        </annotation>
    </element>
    <element name="IpMcastLeaveTime" type="ipdr:dateTimeMsec">
        <annotation>
            <documentation>The value of the UTC time stamp "yyyy-mm-ddThh:mm:ssZ" 
            at the time the “LeaveMulticastSession” request from this CPE for this 
            multicast session was processed by the CMTS or the CMTS determines that 
            this CPE has left the IP multicast session. The compact representation of 
            this attribute is the 64-bit Long value of milliseconds since Epoch Time.
            If the multicast session is active (i.e. the CMTS has yet to determine that 
            the CPE has left the IP multicast session) when this record is generated, 
            the compact representation of the IpMcastLeaveTime value MUST be set 
            to 0.</documentation>
        </annotation>
    </element>
</schema>
