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. 

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).

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.