Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal

OETF #7 - ON2 - Simple L2 protocol for network stacks

Recommended Posts

The following document is still a DRAFT and a subject to change, though protocol and assigned numbers should not change.


1. Purpose

ON2 - OCNet L2 protocol - is a very simple standard is aimed at advanced network stacks. It provides protocol tagging and optional vlan separation for devices that support it.

 2. Protocol

ON2 utilizes the fact that OpenComputers network message can have multiple parameters. When a message(data frame) is sent using ON2 layer, the implementation sets first data parameter to protocol number and passes the data via second data argument. Port number(if supported by device) can be used as VLAN tag allowing network separation. Default port number(vlan) is 1

Here is an example modem call for sending data frame with protocol 0x46 (IP frame):

component.invoke(modem, "send", dest, vlan, 0x46, ip_data)

3. Implementation recommendations

Each network stack implementation should default to listening and sending on port 1. If packet of with unknown protocol number is received is should be silently dropped. Implementations should pass local/remote address and interface information(modem ID, vlan or interface object) to higher layers.

4. Protocol numbers:

Protocols are identified by numbers assigned in table below.

| 0x0C            | OC HOST DISCOVERY  | OETF #9              |
| 0x46            | IPv4 or IPv6 Frame | RFC791 and RFC2460   |
| 0xCF            | OHCP CONFIG PROTO  | OETF #10             |
| 0x1000          | MultICE            | ???                  |
| Above 0xFFFF    | User defined       | N/A                  |


You can apply for assigning protocol number by a post in this thread. 

Share this post

Link to post
Share on other sites

I'm reading this, and while it does seem like a good idea, using the port number as some sort of VLAN seems to conflict with other services and you using port 1.
Also, I am a bit worried about using port 1, as while it's a good number, someone earlier could have used it?

Share this post

Link to post
Share on other sites

Port 1 is just a default that can be changed. Ports in this network stack are used as VLANs, If in your infrastructure something else is using that port, you are free to change it, and it's not that hard(that is, implementations shouldn't make it hard).

Share this post

Link to post
Share on other sites

As the MultICE networking stack just gained support, I'd like to reserve protocol 0x1000 (4096). I'll note it uses broadcasts for its stuff though.

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.