Hi, > >>> 1. What exactly client should do with content of Active Station field in > >>> stage 2 Initial frame? All the necessary information can be obtained > >>> through a announcement and a ready frames. > >> > >> Not really. For how many reply should a new client wait after sending > >> out its announcement frame? > > > > You mean, waiting for what? Let summarize negotiation procedure: > > 1. Server send Config Stage 1. > > 2. New client send New Announce. > > 3. Other clients send Reply Announce -- then new client update its tables > > (eg. ARP). > > 4. Server send Config State 2 -- with Active station field (I don't need it > > so far) > > 5. Server send Config 2 frames, client send ACK. > > 6. When Stage 2 will be finished, client send ready frame -- from now it is > > able to communicate with other nodes, if some node hasn't sent Reply > > Announce is not present in ARP table so write operation will fail. We know > > if node is ready from bit 1 of Flag field of Reply Announcement frame or > > from Ready frame. > > > > Have I missed something? > > Hmm, don't think so. And it looks like this field is write-only in > RTnet's RTcfg implementations as well. So it was likely added to the > spec with something else in mind that I do not remember anymore and also > never implemented.
Ok, I skip this field. > > > >>> 2. What should happen when a client detect a inconsistent state 2 data > >>> between ack? It should wait for a number of frames given by burst rate or > >>> do something else? > >> > >> What kind of inconsistency do you have in mind? In case a client > >> receives some stage 2 configs it doesn't like, it must not ack it. > >> Rather, it acks what it already received properly. Can be 0 as well. > >> That shall trigger the server to retry the stage 2 configuration from > >> that point on. > > > > On this stage I don't have any particular inconsistency on my mind. I only > > try follow of RTnet specification. As far as I understand, client should > > send ACK after specified number of stage 2 configuration frames given by > > burs rate (value negotiated with server). For example, if burst rate is set > > to 2 and after first frame client detect inconsistent data, it should wait > > for one more frame and, then send ACK witch proper Acknowledge Length or > > should send ack just after detect inconsistency? > > I'm afraid this is not that precisely specified. The current > implementation should handle and "early" ack as well, resetting the > config offset accordingly and resuming transmission from there. So let's > assume this was also specified. ;) Ok, it sounds reasonable. > > > >>> 3. What happen when the flag 0 (request available stage 2 configuration > >>> data from the server) in Flags field in New Announcement frame is not set > >>> and the server has stage 2 data for given client (set in server RTnet > >>> configuration file) > >> > >> The server should assume the client ack'ed all the stage 2 configs > >> despite not having it sent. > > > > Ok. > > > >>> > >>> 4. Why Physical Client Address field in Dead Station Frame is 32bytes > >>> long? > >> > >> To allow support for physical media that have longer physical addresses > >> than Ethernet. > > > > Ok, I thought so. > > > >>> > >>> And other questions from standard PC implementation (Xenomai): > >>> > >>> 1. Where stage 2 data are stored on client side? How client can get to > >>> these data. > >> > >> It's stored in RTcfg stack only briefly, dropped as soon as you > >> extracted it via the RTcfg command line tool. That tool may dump the > >> data to the console or into a file. See documentation. > > > > Ok, I have missed this part. > > > >>> > >>> 2. If some station stop responding (stop sending a heartbeats), is there > >>> a way to inform a application that some station is down? Or that the > >>> station is up? > >> > >> The information is exported via /proc on both client and server. Unless > >> I forget something, there is no event signaling mechanism to wait on > >> such an error via the rtcfg tool, e.g. But that would be implementable > >> if required. > > > > Do you have something special in mind. This information is present in the > > system, the only problem is to export it to application. If you don't mind > > I could try to take care of it, with a little help from your side. > > Well, there could be something like "rtcfg <dev> monitor > [event,event,...]" with one event being "node-failure". Then you will > need to define and implement a corresponding RTcfg-config IOCTL that > implements the actual blocking of the caller and its wakeup on the > specified events in the kernel. The return code of the IOCTL or some > additional data structure could provide information about the event that > caused a wakeup. Well, that's a first, rough description if such an > interface. What would be important is to match it against an actual use > case, i.e. some script or application that will actually call "rtcfg > monitor". Otherwise, we risk designing something that no one would use > in the end. What do you have in mind here? I though rather about application api (xenomai native, posix). So, in the first step, I should implement ioctl blocking service and something like event-info structure. Then I prepare example containing relevant use case. The "rtcfg <dev> monito [event,event,...]" is last on my TODO list. What do you think about it? Mariusz > Jan ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ RTnet-users mailing list RTnet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rtnet-users