Network Interface Layer protocol syntax
{
ChatNet Network Interface Layer
Version 1.00 - unreleased
Last modified: 20-01-95
Written by G. Hiddink
This is an informal description of the layer precisely on top of the
underlying connection oriented network. It deals with chatnet entities
identifying theirselves and exchanging IDs for the Chatnet Multicast
protocol.
Since the underlying network may be any network, no service primitives are
given for the required service.
05-11-94 Added "BYE" when a connection is not allowed.
moved PING and PONG from the multicast layer to this layer.
11-12-94 "BYE" is sent when a normal connection closes. Added "NAK" and
"FULL". Added NIL_ConnInd and NIL_ConnReq.
20-01-95 Only corrected a few typo's.
26-06-96 added a dot in front of all messages to make the combination of
nil, mcast and the servers LL(1), that is context-free.
26-06-96 added a message "NSUP", which stands for "Not Supported", and it is
sent when an unsupported entity tries to connect.
22-04-98 updated the IAM message to reflect a few changes
}
<Message> ::= <IAmServer> | <IAmClient> | <IRCUser> | <IRCNick> |
<IRCPass> | <Error> | BYE | QUIT | NOAUTH
| FULL | NSUP | NOMORE | PING | PONG
<IAmServer> ::= IAM SERV <serverid> <password> <protocolversion> <software>
<version>
<IAmClient> ::= IAM CLNT <userid> <password> <protocolversion> <software>
<version> <next-layer info>
<IRCPass> ::= PASS <password>
<IRCNick> ::= NICK <nickname>
<IRCUser> ::= USER <accountname> <hostname> <servername> :<realname>
<Error> ::= ERROR <Message>
<serverid> ::= <num>+
<password ::= <ascii>+
<protocolversion> ::= <num>'.'<num><num><ascii>*
<software> ::= <ascii>+
<version> ::= <anychar>+
<next-layer info> ::= <anychar>*
IAM ::= "IAM"
SERV ::= "SERV"
CLNT ::= "CLNT"
PASS ::= "PASS"
IDIE ::= "IDIE"
USER ::= "USER"
NICK ::= "NICK"
BYE ::= "BYE"
NOAUTH ::= "NAK"
FULL ::= "FULL"
NSUP ::= "SNPNI"
QUIT ::= "QUIT"
NOMORE ::= "NOMORE"
PING ::= "PING"
PONG ::= "PONG"
ERROR ::= "ERROR"
<ascii> ::= 'a' .. 'z'| 'A' .. 'Z'| <digit> | <special>
<anychar> ::= OCTET \ { CHAR(13), CHAR(10), CHAR(0) }
<num> ::= <digit>+
<digit> ::= '1' | '2' ... '9' | '0'
(c) 1996 by G. Hiddink
If you have any comments, please mail to
grit@cal050031.student.utwente.nl