> > Horatiu, could you also give some references to the frames that need > > to be sent. I've no idea what information they need to contain, if the > > contents is dynamic, or static, etc. > It is dynamic - but trivial... If it is trivial, i don't see why you are so worried about abstracting it? > Here is a dump from WireShark with > annotation on what our HW can update: > > Ethernet II, Src: 7a:8b:b1:35:96:e1 (7a:8b:b1:35:96:e1), Dst: Iec_00:00:01 (01:15:4e:00:00:01) > Destination: Iec_00:00:01 (01:15:4e:00:00:01) > Source: 7a:8b:b1:35:96:e1 (7a:8b:b1:35:96:e1) > Type: MRP (0x88e3) > PROFINET MRP MRP_Test, MRP_Common, MRP_End > MRP_Version: 1 > MRP_TLVHeader.Type: MRP_Test (0x02) > MRP_TLVHeader.Type: MRP_Test (0x02) > MRP_TLVHeader.Length: 18 > MRP_Prio: 0x1f40 High priorities > MRP_SA: 7a:8b:b1:35:96:e1 (7a:8b:b1:35:96:e1) > MRP_PortRole: Primary ring port (0x0000) > MRP_RingState: Ring closed (0x0001) > MRP_Transition: 0x0001 > MRP_TimeStamp [ms]: 0x000cf574 <---------- Updated automatic > MRP_TLVHeader.Type: MRP_Common (0x01) > MRP_TLVHeader.Type: MRP_Common (0x01) > MRP_TLVHeader.Length: 18 > MRP_SequenceID: 0x00e9 <---------- Updated automatic > MRP_DomainUUID: ffffffff-ffff-ffff-ffff-ffffffffffff > MRP_TLVHeader.Type: MRP_End (0x00) > MRP_TLVHeader.Type: MRP_End (0x00) > MRP_TLVHeader.Length: 0 > > But all the fields can change, but to change the other fields we need to > interact with the HW. Other SoC may have other capabilities in their > offload. As an example, if the ring becomes open then the fields > MRP_RingState and MRP_Transition need to change and in our case this > requires SW interference. Isn't SW always required? You need to tell your state machine that the state has changed. > Would you like a PCAP file as an example? Or do you want a better > description of the frame format. I was hoping for a link to an RFC, or some standards document. Andrew