You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.3 KiB
116 lines
3.3 KiB
Vlan server protocol and library *draft*
|
|
========================================
|
|
|
|
telnet-based protocol. Client commands are text, server responses are numbers followed by
|
|
an explicative text (like irc). Common messages number should probalbly be grouped.
|
|
|
|
Two different notions: session and connexion
|
|
session has a long timeout (several hours), and should not use server-side resources
|
|
connexion has a short timeout (a few minutes) and can use server-side resources (thread)
|
|
|
|
A vlan resource (switch+port) is identified by a unique id. Changes can obviously be done
|
|
with this id, but also, for administrative facilities, with other identifiers.
|
|
|
|
Client commands:
|
|
|
|
LOGIN <login> [<application>]
|
|
-> open connexion, required before any communication with server. Login and password should
|
|
correspond to groups (admin, users...) rather than individual ids. Application is for stats.
|
|
answers: 100: ok
|
|
101: rejected, invalid login
|
|
102: rejected, too many connexions
|
|
103: rejected, forbidden source
|
|
104: rejected, already logged in
|
|
109: rejected, other reason
|
|
password required
|
|
|
|
PASS <password>
|
|
|
|
LOGOUT -> close connexion
|
|
answer: 200: ok, session closed
|
|
|
|
OPEN <client-session-id>
|
|
-> open session. required before any write operations
|
|
answers: 300: <server-session-id>
|
|
301: rejected, not authorized
|
|
302: rejected, too many sessions
|
|
399: rejected, other reason
|
|
|
|
RECOVER <client-session-id> <server-session-id>
|
|
-> recover session. Both id are required for security.
|
|
answer: 400: ok
|
|
401: rejected, not authorized (invalid login or something else)
|
|
402: rejected, invalid ids
|
|
403: rejected, session already active on another connexion
|
|
499: rejected, other reason
|
|
|
|
CLOSE [<server-session-id>]
|
|
-> close session. Session must be active for normal users.
|
|
answer: 500: ok, session closed
|
|
501: error, not loged in
|
|
502: error: active session
|
|
503: error: not authorized
|
|
|
|
STATUS ME
|
|
STATUS MAC <mac>
|
|
STATUS IP <ip>
|
|
STATUS ID <rsc-id>
|
|
give informations about something
|
|
answer: 600: mark beginning of status info
|
|
601: mark end of status info
|
|
602: error, not authorized
|
|
603: error, unknown
|
|
604: error, request failed
|
|
610: <rsc-id>
|
|
611: <vlan>
|
|
612: <ip>
|
|
613: <mac>
|
|
614: <switch-ip>
|
|
615: <switch-port>
|
|
616: <number of interfaces dependant of this resource>
|
|
617: <lock info>
|
|
699: error, other reason
|
|
|
|
LOCK ME
|
|
LOCK MAC <mac>
|
|
LOCK IP <ip>
|
|
LOCK ID <rsc-id>
|
|
lock a resource id (session required)
|
|
answers:
|
|
|
|
UNLOCK ME
|
|
UNLOCK MAC <mac>
|
|
UNLOCK IP <ip>
|
|
UNLOCK ID <id>
|
|
unlock a resource id (session required)
|
|
answers:
|
|
|
|
CHANGE ME <vlan>
|
|
CHANGE MAC <mac> <vlan>
|
|
CHANGE IP <ip> <vlan>
|
|
CHANGE ID <id> <vlan>
|
|
change a vlan (session required)
|
|
|
|
Administrative commands:
|
|
|
|
HELP
|
|
print list of commands
|
|
answer:
|
|
|
|
KICK
|
|
|
|
RESET
|
|
|
|
LIST IDS
|
|
LIST MACS
|
|
LIST IPS
|
|
LIST SESSIONS
|
|
LIST CONNECTIONS
|
|
LIST LOGINS
|
|
|
|
QUIT
|
|
|
|
CONFIRM
|
|
|
|
|
|
|
|
|