<?xml version="1.0" encoding="utf-8"?>
<!-- 
     draft-rfcxml-general-template-standard-02
  
     This template includes examples of the most commonly used features of RFCXML with comments 
     explaining how to customize them. This template can be quickly turned into an I-D by editing 
     the examples provided. Look for [REPLACE], [REPLACE/DELETE], [CHECK] and edit accordingly.
     Note - 'DELETE' means delete the element or attribute, not just the contents.
     
     Documentation is at https://authors.ietf.org/en/templates-and-schemas
-->
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers -->


<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="std"
  docName="draft-rfcxml-general-ipv11-standard-02"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">
<!-- [REPLACE] 
       * docName with name of your draft
     [CHECK] 
       * category should be one of std, bcp, info, exp, historic
       * ipr should be one of trust200902, noModificationTrust200902, noDerivativesTrust200902, pre5378Trust200902
       * updates can be an RFC number as NNNN
       * obsoletes can be an RFC number as NNNN 
-->

  <front>
    <title abbrev="Abbreviated Title">Internet Protocol version 11</title>
    <!--  [REPLACE/DELETE] abbrev. The abbreviated title is required if the full title is longer than 39 characters -->

    <seriesInfo name="Internet-Draft" value="draft-rfcxml-general-ipv11-standard-02"/>
   
    <author fullname="Kiran Kadavill" initials="K" role="editor" surname="Kadavill">
      <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>#34, Goshree Garden,Arattuvazhi Road </street>
          <city>Njarakkal</city>
          <region> KERALA 682505 </region>
          <code>682505</code>
          <country>IN</country>
          <!-- Uses two letter country code -->
        </postal>        
        <phone>+91 9633068829 </phone>
        <email>kin.kad@gmail.com </email>  
        <!-- Can have more than one <email> element -->
        <uri></uri>
      </address>
    </author>
   
    <date year="2023" month="July" day="23" />
    <!-- On draft submission:
         * If only the current year is specified, the current day and month will be used.
         * If the month and year are both specified and are the current ones, the current day will
           be used
         * If the year is not the current one, it is necessary to specify at least a month and day="1" will be used.
    -->

    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <!-- "Internet Engineering Task Force" is fine for individual submissions.  If this element is 
          not present, the default is "Network Working Group", which is used by the RFC Editor as 
          a nod to the history of the RFC Series. -->

    <keyword>IPv11</keyword>
    <!-- [REPLACE/DELETE]. Multiple allowed.  Keywords are incorporated into HTML output files for 
         use by search engines. -->

    <abstract>
      <t> Standard  for  IPv11 address format and routing theory </t>
    </abstract>
 
  </front>

  <middle>
    
    <section>
      	<name>Introduction</name>
<t>IPv6 is dependent on IPv4 and it's not manageable as it scales. This happened because IPv6 addresses were bland and had no networking information in them. We plan to right these wrongs with IPv11. A 128 bit address with 24 bit chunks  of host. 24 bit chunks means just 16,777,216 clients per  network, they are easy to manage. </t>

      <section>
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
          "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
          RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
          interpreted as described in BCP 14 <xref target="RFC2119"/>
          <xref target="RFC8174"/> when, and only when, they appear in
          all capitals, as shown here.</t>
      </section>
      <!-- [CHECK] The 'Requirements Language' section is optional -->

    </section>

     <section>
      	<name>IPv11</name>
      	<t> The Internet Protocol Version 11</t>  
	<section>
		<name>Address Format </name>
		<t> The format for an IPv11 address starts with an Octet and its value is a constant hexadecimal number 0x0B. This tells the device that it is an IPv11 IP address. The next 120 bits are made into 5 manageable 24 bit(6 hexadecimal characters) chunks. The first chunk is called a hyper block, the second one is called the super block,the third is called a cluster block, the fourth is called a block, and the fifth is called the host.</t>
<section>
	<name>Address tier system </name>
<t>IP with range  0b::000001 to 0B::FFFFFF:FFFFFF is a tier1 network IPaddress. A tier2 IP address has  range from 0b:1:000000:000000 to 0B::FFFFFF:FFFFFFF:FFFFFFF. A tier3 IP address has range from 0b::1:000000:000000:000000 to 0B::FFFFFF:FFFFFF:FFFFFF:FFFFFF. Finally a tier4 ip address range is from 0B:1:000000:000000:000000:000000 to 0B:FFFFFF:FFFFFF:FFFFFF:FFFFFF:FFFFFF. If the destination  IP address is in a tier above them the payloads are forwarded to The tier above them. if they are in a tier below then they are forwarded to the tier below them. </t>


 	

	<table>
        	<thead>
        			<!-- [REPLACE/DELETE] a table header is optional -->
          			<tr><th></th><th>IP Address</th></tr>
        		</thead>
        		<tbody>
         		<tr>
				<td>Host Part of address and network part of the address</td>
				<td>0B:NNNNNN:NNNNNN:NNNNNN:NNNNNN:HHHHHH </td>
			</tr>
 			<tr>
				<td>Tier1 network</td>
				<td>0B:000000:000000:000000:NNNNNN:HHHHHH </td>
			</tr>
			<tr>
				<td>Tier2 network</td>
				<td>0B:000000:000000:NNNNNN:NNNNNN:HHHHHH </td>
			</tr>
			<tr>
				<td>Tier3 network</td>
				<td>0B:000000:NNNNNN:NNNNNN:NNNNNN:HHHHHH </td>
			</tr>
			<tr>
				<td>Tier4 network</td>
				<td>0B:NNNNNN:NNNNNN:NNNNNN:NNNNNN:HHHHHH </td>
			</tr>
        		</tbody>
      	</table>
</section>
</section>
</section>
<section>
<name>IPv11 Assignment</name>
<t>Network addresses are assigned sequentially to ISP or any other organization. The ip addresses start at the first tier1 address  i.e. the first network address is  0B::1:000000 and the last one is the last tire4 address 0B:EFFFFF:FFFFFF:FFFFFF:FFFFFF:000000</t>
<table>
        <thead>
        <!-- [REPLACE/DELETE] a table header is optional -->
          <tr><th></th><th>IP Address</th></tr>
        </thead>
        <tbody>
          <tr>
<td>First network 
to assign</td>
<td>0B::1:000000</td>
</tr>
 	<tr>
		<td> Last network 
to assign</td>
<td>0B:EFFFFF:FFFFFF:FFFFFF:FFFFFF:000000</td>
</tr>

        </tbody>
      </table>
</section>
<section>
	<name>Broadcast address </name>
<t> Gateways can send broadcast messages to hosts by filling in the network part of the address and masking the host part of the client address with the value F. This will communicate with all hosts (including  gateways) on their network. For security purposes broadcast of packets from a host and external Gateways must be dropped </t>

<table>
        <thead>
        <!-- [REPLACE/DELETE] a table header is optional -->
          <tr><th></th><th>IP Address</th></tr>
        </thead>
        <tbody>
          <tr>
		<td>Broadcast address of first network</td>
		<td>0B::1:FFFFFF </td>
	  </tr>
	  <tr>
		<td>Broadcast address of a network</td>
		<td>0B:XXXXXX:XXXXXX:XXXXXX:XXXXXX:FFFFFF</td>
	  </tr>

        </tbody>
</table>
</section>
<section>
<name>Topology</name>
<t>IPv11 uses a cylindrical routing topology made up of 4 disks stacked one on top of each other.</t>
<t>there are 5 types of gateways. </t>
<ul>
       	<li>Inter-tier gateways</li>
       	<li>Inter-block gateways</li>
	<li>Inter-clusterblock gateways</li>
	<li>Inter-superblock gateways</li> 
	<li>Inter-hyperblock gateways</li> 
</ul>
<t>Inter-tier gateways connect to lower or higher tier network.</t>

<t>inter-block Gateways hold routing Tables of each of its 16,777,216 hosts. this including 3 sibling gateways and one gateway.</t>

<t>Tier2 Gateways hold routing Tables of 16,777,216 hosts.This including 8 Gateways, 3 to intra-cluster-block, 3 to intra-block gateways,  It also must have one gateway to tier3 and one to tier1 address.</t>

<t> Tier3 Gateway holds routing Tables of 16,777,216 hosts. This including 11  gateways 3 within same superblock, 3 to other distinct blocks, 3 distinct cluster gateways It also must have one Gateway to tier4 and one to tier2 address).</t>

<t>Tier4  hyper blocks hold routing Tables to 16,777,216 host.This including 14 Gateways(3 within same hyperblock gateways, 3 to distinct superblock gateways, and 3 to other distinct blocks, and 3 to distinct clusters) and one Gateway to tier4 and one to tier3 address.</t>

 <!-- [REPLACE/DELETE] a table header is optional -->


<section>
<name>Connectivity</name>
<t>Each tier1 network needs  to be connected to a total of four gateways.  three inter-block address connections and one tier2 address.</t>

<t>Each tier2 network needs to connect to a total 8 gateways.Three connections to the  inter-cluster-blocks network , three connections to inter-block networks, one tier3 gateway and one tier1 gateway.</t>

<t>Each tier3 network needs to connect to a total of 11 gateways. They need to connect to  three  inter-super-block gateway Three inter-cluster-block gateway,three inter-block gateway, one tier4 gateway and one tier2 gateway.</t>

<t>Each tier4 network needs to connect to a total of 14 gateways. i.e. They need to connect to  three inter-hyper-block, three inter-super-block gateway, three  inter-cluster-block gateway, three inter-block gateway, one to tier4 gateway and one tier2 gateway. </t>

<t>Coordination of network connectivity can be managed by contacting network entities with publicly advertised email addresses.</t>

 <!-- [REPLACE/DELETE] a table header is optional -->
<table>
	<thead> 
          <tr><th></th><th>Topology in Address</th><th>Breakup</th></tr>
        </thead>
        <tbody> 
<tr>
<td> tier1 ip address</td>
<td>0B::XXXXXX:HHHHHH </td>
<td>0B::block:host </td>
</tr>
<tr>
<td> tier2 ip address</td>
<td>0B::XXXXXX:XXXXXX:HHHHHH</td>
<td>0B::cluster-block:block:host</td>
</tr>
<tr>
<td>tier3 ip address</td>
<td>0B::XXXXXX:XXXXXX:XXXXXX:HHHHHH</td>
<td>0B::super-block:cluster-block:block:host</td>
</tr>
<tr>
<td>tier4 ip address</td>
<td>0B:XXXXXX:XXXXXX:XXXXXX:XXXXXX:HHHHHH</td>
<td>0B:hyper-block:super-block:cluster-block:block:host</td>
</tr>

</tbody>
</table>        
       
</section>
</section>
<section>
<name>Routing </name>
<t>Routing is accomplished by first knowing if the destination IP address is a tier1 , tier2 ,tier3 or tier4 address  and route to the right tier. Once they are in the same tier as the destination address the packet is forwarded to their destination network through its sibling gateways. There are four types of sibling Gateways. An inter-block gateway, An inter-cluster-block gateway, An inter-super-block gateway, An inter-hyper-block gateway.</t>

<t> If the destination ip address of a packet has a different block  address, then one of the best of 3 sibling inter-block gateways must be used.If the destination ip address of a packet has a different cluster-block  address,  then one of the best of 3 sibling inter-cluster-block gateways must be used.If the destination ip address of a packet has ta different super-block  address  then, one of the best of 3 sibling inter-super-block gateways must be used.If the destination ip address of a packet has a different hyper-block  address,  then one of the best of 3 sibling inter-hyper-block gateways must be used</t>

<t>Please note that inter-hyperblock gateway means a gateway to the same tier with the same superblock network, same cluster block network and same block address as the destination network.</t>

<t>similarly inter-super-block gateway means a gateway to  the same tier with the same cluster-block network and the same block network as the destination network.</t> 

<t>similarly inter-cluster-block gateway means a  gateway to the same tier with the same block address as the destination network. </t>

<t>block gateway  means a gateway to the same tier as the destination network.</t>

      <figure>
        <name>Routing</name>
        <sourcecode name="routing.py" type="python" markers="true">
          <![CDATA[
routerip = '0B:2345:2345:2345:32453:2345'
def route(destip):
  if tier(destip)=="tire1":
    if blockaddress(routerip)==blockaddress(destip):
      print(
"forward to host on current network")
    else:
        print(
"forward to inter-block-gateway %s"%        
str(blockaddress(destip)))
  elif tier(destip)=="tire2":
    if blockaddress(routerip)==blockaddress(destip):
      if clusterblockaddress(routerip)==clusterblockaddress(destip):
        print(
          "forward to host on current network")
      else:
        print(
"forward to best of 3 inter-cluster-block Gatewayto block %s"%
str(clusterblockaddress(destip)))
    else:
      print(
"forward to best of 3 inter-blocks-level Gateway to block %s"%
str(blockaddress(destip)))
  elif tier(destip)=="tire3":
    if blockaddress(routerip)==blockaddress(destip):
      if clusterblockaddress(routerip)==clusterblockaddress(destip):
        if superblockaddress(routerip)==superblockaddress(destip):
          print(
"forward to host on current network")
        else:
          print(
"forward to best of 3 inter-super-block  Gateway to superblock %s"%
str(superblockaddress(destip)))
      else:
        print(
"forward to best of 3 inter-clusterblock Gateway to clusterblock %s"%
str(clusterblockaddress(destip)))
    else:
      print(
"forward to best of 3 inter-block level Gateway to block %s"%
str(blockaddress()))
  elif tier(destip)=="tier4":
    if blockaddress(routerip)==blockaddress(destip):
      if clusterblockaddress(routerip)==clusterblockaddress(destip):
        if superblockaddress(routerip)==superblockaddress(destip):
          if hyperblockaddress(routerip)==hyperblockaddress(destip):
            print(
"forward to host on current network")
          else: 
            print(
'''forward to best of 3 inter-hyperblock gateway to hyperblock %s'''%
str(hyperblockaddress(destip)))
        else:
          print(
'''forward to best of 3 next one of 3 inter-super-block 
gateway to superblock %s'''%
str(superblockaddress(destip)))
      else:
        print(
'''forward to best of 3 inter-cluster-block 
gateway to clusterblock %s'''%
str(clusterblockaddress(destip)))   
    else:
      print(
"forward to best of 3 inter-block Gateway to block %s"%
str(blockaddress(destip)))
  else:
    print("invalid tier")
						
def clusterblockaddress(ip):
  c=2
  for i in range(5):
    c=ip.find(':',c+1)
    d=ip.find(':',c+1)
  return ip[c+1:d].zfill(6)

def hostaddress(ip):
  c=2
  for i in range(4):
    c=ip.find(':',c+1)
    d=ip.find(':',c+1)
  return ip[c+1:d].zfill(6)


	
def blockaddress(ip):
  c=2
  for i in range(3):
    c=ip.find(':',c+1)
    d=ip.find(':',c+1)
  return ip[c+1:d].zfill(6)
	
def superblockaddress(ip):
  c=2
  for i in range(2):
    c=ip.find(':',c+1)
    d=ip.find(':',c+1)
  return ip[c+1:d].zfill(6)
	
def hyperblockaddress(ip):
  c=2
  for i in range(1):
    c=ip.find(':',c+1)
    d=ip.find(':',c+1)
  return ip[c+1:d].zfill(6)
		
def tier(ip):
  if int(hyperblockaddress(ip))!=0:
    return "tier4"
  if int(superblockaddress(ip))!=0:
    return "tier3"
  if int(clusterblockaddress(ip))!=0:
    return "tier2"
  if int(blockaddress(ip))!=0:
    return "tier1"

def expandip(ip):
  ip=makeip(ip)
  j=ip.find(':', 0)
  k=ip.find(':', j+1)
  l=ip.find(':', k+1)
  m=ip.find(':', l+1)
  n=ip.find(':', m+1)
  ip='0B'+':'+(
ip[j+1:k].zfill(6))+':'+(
ip[k+1:l].zfill(6))+':'+(
ip[l+1:m].zfill(6))+':'+(
ip[m+1:n].zfill(6))+':'+(
ip[n+1:].zfill(6))	
  return ip

def makeip(ip):
  for i in range(6-ip.count(':')):
    ip=ip.replace('::', '::000000:')
    ip=ip.replace('::', ':')
    return ip
ip="0B:876768:23434:1:2323:000000"
route(ip)		
print(tier(ip))

          ]]>
        </sourcecode>
        <!-- [CHECK] markers="true" means that the rendered file will have <CODE BEGINS> and <CODE ENDS> added -->
      </figure>

 
<figure>
        <name>Topology</name>
        <artset>
        <!-- This <artset> includes two <artwork> elements, each of a different type -->
          <artwork type="svg" src="https://raw.githubusercontent.com/kincody/svgrep/main/ipv11.svg" />

		
	  

          <!-- [REPLACE] src points to either a local file or a URI. -->
<artwork type="ascii-art" name="stream.txt">						
<!-- [REPLACE/DELETE] name recommends a filename to use if the diagram is extracted -->  
            <![CDATA[
     +___________+
    /:\         ,:\
   / : \       , : \
  /  :  \     ,  :  \
 /   :   +-----------+
+....:../:...+   :  /|
|\   +./.:...`...+ / |
| \ ,`/  :   :` ,`/  |16,777,216 hyper blocks: Each hyper block contains 
|  \ /`. :   : ` /`  |16,777,216 super blocks X 16,777,216 block X
| , +-----------+  ` |16,777,216 clusters X 16,777,216 hosts
|,  |   `+...:,.|...`+
+...|...,'...+  |   /
 \  |  ,     `  |  /
  \ | ,       ` | /\
  /\|,         `|/  \
 /  +___________+----+
+....:../:...+   :  /|
|\   +./.:...`...+ / |
| \ ,`/  :   :` ,`/  |16,777,216 super blocks: Each super block contains 
|  \ /`. :   : ` /`  |16,777,216 block X 16,777,216 clusters X 
| , +-----------+  ` |16,777,216 host
|,  |   `+...:,.|...`+
+...|...,'...+  |   /
 \  |  ,     `  |  /
  \ | ,       ` | /\
  /\|,         `|/  \ 
 /   +___________+---+
+....:../:...+   :  /|
|\   +./.:...`...+ / |
| \ ,`/  :   :` ,`/  |16,777,216 blocks: Each block contains 
|  \ /`. :   : ` /`  |16,777,216 neworks X 16,777,216 hosts	
| , +-----------+  ` |
|,  |   `+...:,.|...`+
+...|...,'...+  |   /
 \  |  ,     `  |  /
  \ | ,       ` | /\
  /\|,         `|/  \
 /  +___________+----+
+....:../:...+   :  /|
|\   +./.:...`...+ / |
| \ ,`/  :   :` ,`/  |
|  \ /`. :   : ` /`  |16,777,216 block: Each block
| , +-----------+  ` |contains 16,777,216 hosts
|,  |   `+...:,.|...`+
+...|...,'...+  |   /
 \  |  ,     `  |  /
  \ | ,       ` | /
   \|,         `|/   
    +___________+

            ]]>
          </artwork>
        </artset>
</figure>
</section>
<section>
<name>Glossary</name>	
      <dl newline="true">
        <!-- Omit newline="true" if you want each definition to start on the same line as the corresponding term -->
        <dt>Block:</dt>
        <dd>A block is a sub-network address and is the fourth 24 bits IP address.</dd>
        <dt>Clusterblock:</dt>
        <dd>A cluster-block is a sub-network address and is the third 24 bits IP address.</dd>    
        <dt>Hyper-block:</dt>
        <dd>A hyper-block is a sub-network address and is the first 24 bits IP address.</dd>
        <dt>Superblock:</dt>
        <dd>A superblock is a sub-network address and is the second 24 bits IP address.</dd>
        <dt>Tier1 address:</dt>
<dd>An address that does not have a cluster-block address, a superblock address and a hyperblock address. </dd>
<dt>Tier2 address:</dt>
<dd>An address that does not have a superblock address and a hyperblock address but has a cluster block address</dd>
	<dt>Tier3 address:</dt>
<dd>An address that does not have a hyperblock address and has a superblock address.</dd>
	<dt>Tier4 address:</dt>
	<dd>An address that must have a hyperblock address.</dd>

        
        
      </dl>
    
</section>

    <section anchor="IANA">
    <!-- All drafts are required to have an IANA considerations section. See RFC 8126 for a guide.-->
      <name>IANA Considerations</name>
      <t>IP addresses are assigned sequentially to network  entities starting at the first address from the lowest 24 bit address tier  i.e. the first network address is  0B::1:000000  and the last 0B:EFFFFF:FFFFFF:FFFFFF:FFFFFF:000000 


</t>   
<table>
        <thead>
        <!-- [REPLACE/DELETE] a table header is optional -->
          <tr><th></th><th>IP Address</th></tr>
        </thead>
        <tbody>
          <tr>
<td>First network to assign</td>
<td>0B::100:0000</td>
</tr>
 	<tr>
		<td> Last network to assign</td>
<td>0B:EFFFFF:FFFFFF:FFFFFF:FFFFFF:000000</td>
</tr>

        </tbody>
      </table>
</section>
    
    
    <section anchor="Security">
      <!-- All drafts are required to have a security considerations section. See RFC 3552 for a guide. -->
      <name>Security Considerations</name>
      <t>Broadcast packets are needed to be dropped unless They are from a known local gateways.</t>
    </section>
    
    <!-- NOTE: The Acknowledgements and Contributors sections are at the end of this template -->
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <!-- The recommended and simplest way to include a well known reference -->
        
      </references>
 
      <references>
        <name>Informative References</name>
       
       

        <reference anchor="Wikipedia" target="https://www.wikipedia.org/">
        
          <front>
            <title>Wikipedia</title>
            <author>
		<organization>Wikipedia</organization>
            </author>
            <date year="2023"/>
            <!-- [CHECK] -->
          </front>
        </reference>       
       
      </references>
    </references>
 </back>
</rfc>











