View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Protocolo ETHERLITE

Apuntes sobre el protocolo del etherlite, obtenidos leyendo los fuentes del driver dgrp-1.9.40 para linux 2.6.27 y de capturas de tráfico de red entre el anden2 y una UIS.

Notas generales:
  • Es un protocolo BIG ENDIAN (un "u16_t s" se manda como "((s>>8)&0xff) (s&0xff)")

Mensajes PC -> ETHERLITE

Password reply (dgrp_net_ops.c:1846)
FieldsizeContentsNotes
Header20xfd 0x20
Passwd size2((strlen(passwd)>>8)&0xff) (strlen(passwd)&0xff)
Passwdstrlen(passwd)(n bytes of string passwd)

ImmediateOpen/PersistentOpen/IncomingOpen/Close/CancelOpen Request (dgrp_net_ops.c:1932, dgrp_net_ops.c:1932, dgrp_net_ops.c:1959, dgrp_net_ops:1976, dgrp_net_ops:2513)
FieldsizeContentsNotes
Header2(0xb0+(port&0xf)) 0x0a
Type1(0x00 or 0x01 or 0x02 or 0x03 or 0x04)0x00:Immediate Open Request
0x01:Persistent Open Request
0x02:Incoming Open Request
0x03:Close Request
0x04:Cancel Open Request (cancels a pending ImmediateOpen/PersistentOpen/IncomingOpen request)

CompositeCommand: Send Query (dgrp_net_ops.c:1994)
FieldsizeContentsNotes
SequenceRequest2(0xb0+(port&0xf)) 0x0e
ConfigureEventConditions5(0xb0+(port&0xf)) 0x2a 0x02 0xc0 (DM_DTR(0x01) bitwiseor DM_RTS(0x02) bitwiseor DM_CTS(0x10) bitwiseor DM_DSR(0x20) bitwiseor DM_RI(0x40) bitwiseor DM_CD(0x80))
StatusRequest2(0xb0+(port&0xf)) 0x10
BufferRequest2(0xb0+(port&0xf)) 0x14
PortCapabilityRequest2(0xb0+(port&0xf)) 0x16
RaiseModemSignals5(0xb0+(port&0xf)) 0x2c (DM_DTR(0x01) bitwiseor DM_RTS(0x02)) mflownone(0x00) mcontrolnone(0x00)

CompositeCommand: Ready Mode (dgrp_net_ops.c:2114)
FieldsizeContentsNotes
SendTmaxTtime (optional)6(0xb0+(port&0xf)) 0x30 ((Tmax>>8)&0xff) (Tmax&0xff) ((Ttime>>8)&0xff) (Ttime&0xff)(only sent if changed from last TmaxTtime sent)
SendRlowRhigh (optional)6(0xb0+(port&0xf)) 0x2d ((Rlow>>8)&0xff) (Rlow&0xff) ((Rhigh>>8)&0xff) (Rhigh&0xff)(only sent if changed from last RlowRhigh sent)
SendBrateCflagIflagOflagXflag (optional)12(0xb0+(port&0xf)) 0x28 ((Brate>>8)&0xff) (Brate&0xff) ((Cflag>>8)&0xff) (Cflag&0xff) ((Iflag>>8)&0xff) (Iflag&0xff) ((Oflag>>8)&0xff) (Oflag&0xff) ((Xflag>>8)&0xff) (Xflag&0xff)(only sent if changed from last SendBrateCflagIflagOflagXflag sent)
SendMoutMflowMctrl (optional)5(0xb0+(port&0xf)) 0x2c (Mout&0xff) (Mflow&0xff) (Mctrl&0xff)(only sent if changed from last SendMoutMflowMctrl)
SendFlowControlCharacters (optional)7(0xb0+(port&0xf)) 0x2e (Xon&0xff) (Xoff&0xff) (Lnext&0xff) (Xxon&0xff) (Xxoff&0xff)(only sent if changed from last SendFlowControlCharacters)
SendRmaxRtime (optional)6(0xb0+(port&0xf)) 0x2f ((Rmax>>8)&0xff) (Rmax&0xff) ((Rtime>>8)&0xff) (Rtime&0xff)(only sent if changed from last RmaxRtime sent)
SendCharacterImmediate (optional)3(0xb0+(port&0xf)) 0x3c (Xon&0xff)Put this mode only if was pending (requested by user)
BreakRequest (optional)4(0xb0+(port&0xf)) 0x3d ((Breaktime>>8)&0xff) (Breaktime&0xff)Send this only if was pending (requested by user)
FlushIOBuffers (optional)3(0xb0+(port&0xf)) 0x3e (Rxflush(0x1) bitwiseor Txflush(0x2))Send this only if was pending (requested by user)
PauseIO (optional)3(0xb0+(port&0xf)) 0x33 (Txstop(0x1) bitwiseor Rxstop(0x10))Send this only if was pending (requested by user)
StartIO (optional)3(0xb0+(port&0xf)) 0x40 (EvOpu(0x1) bitwiseor EvOps(0x2) bitwiseor EvOpx(0x4) bitwiseor EvIpu(0x10) bitwiseor EvIps(0x20))Send this only if was pending (requested by user); (EvOpu bitwiseor EvOps bitwiseor EvOpx) is sent when RR_TX_START and (EvIpu bitwiseor EvIps) when RX_START
... (lin 2402)