public OfpPacketOut(Stream stream, OfpHeader header = null) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = header ?? new OfpHeader(stream); br.Parse(out BufferId); br.Parse(out InPort); br.Parse(out ActionsLen); int length = ActionsLen; while (length >= 8) { var action = OfpActionHeader.ParseAction(stream); Actions[action.Header.Type] = action; length -= action.Header.Len; } if (BufferId == uint.MaxValue) //-1 { length = Header.Length - (int)Size - ActionsLen; if (length > 0) { br.Parse(out Data, length); } } }
public OfpVendorStats(Stream stream, int length) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); br.Parse(out Vendor, 4); br.Parse(out Content, length); }
public OfpFlowStats(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); br.Parse(out Length); br.Parse(out TableId); br.ReadBytes(1); Match = new OfpMatch(stream); br.Parse(out DurationSec); br.Parse(out DurationNsec); br.Parse(out Priority); br.Parse(out IdleTimeout); br.Parse(out HardTimeout); br.ReadBytes(6); br.Parse(out Cookie); br.Parse(out PacketCount); br.Parse(out ByteCount); IOfpAction action = OfpActionHeader.ParseAction(stream); while (action != null) { Actions[action.Header.Type] = action; action = OfpActionHeader.ParseAction(stream); } }
public OfpPacketQueue(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); br.Parse(out QueueId); br.Parse(out Len); br.ReadBytes(2); //PAD }
public OfpQueueStatsRequest(Stream stream, OfpHeader header = null) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); br.Parse(out PortNo); br.ReadBytes(2); br.Parse(out QueueId); }
public OfpActionVendorHeader(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = new OfpActionHeader(stream); br.Parse(out Vendor); br.Parse(out Content, Header.Len); }
public OfpActionHeader(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); br.Parse(out Type); br.Parse(out Len); //br.ReadBytes(4); //PAD 4 }
public OfpSwitchConfig(Stream stream, OfpHeader header = null) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = header ?? new OfpHeader(stream); br.Parse(out Flags); br.Parse(out MissSendLen); }
public OfpQueuePropHeader(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); br.Parse(out Property); br.Parse(out Len); br.ReadBytes(4); }
public OfpActionOutput(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = new OfpActionHeader(stream); br.Parse(out Port); br.Parse(out MaxLen); }
public OfpActionHeader(Stream stream, int padding) { _pad = padding; BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); br.Parse(out Type); br.Parse(out Len); br.ReadBytes(_pad); //PAD 4 }
public OfpAggregateStats(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); br.Parse(out PacketCount); br.Parse(out ByteCount); br.Parse(out FlowCount); br.ReadBytes(4); }
public OfpStatsReply(Stream stream, OfpHeader header = null) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = header ?? new OfpHeader(stream); br.Parse(out Type); br.Parse(out Flags); br.Parse(out Body, (int)(Header.Length - Size)); }
public OfpActionEnqueue(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = new OfpActionHeader(stream); br.Parse(out Port); br.ReadBytes(6); //PAD 6 br.Parse(out QueueId); }
public OfpAggregateStatsRequest(Stream stream, OfpHeader header = null) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Match = new OfpMatch(stream); br.Parse(out TableId); br.ReadBytes(1); br.Parse(out OutPort); }
public OfpHeader(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); br.Parse(out Version); br.Parse(out Type); br.Parse(out Length); br.Parse(out Xid); }
public OfpDescStats(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); br.Parse(out MfrDesc, DESC_STR_LEN); br.Parse(out HwDesc, DESC_STR_LEN); br.Parse(out SwDesc, DESC_STR_LEN); br.Parse(out SerialNum, SERIAL_NUM_LEN); br.Parse(out DpDesc, DESC_STR_LEN); }
public OfpQueueStats(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); br.Parse(out PortNo); br.ReadBytes(2); //PAD 2 br.Parse(out QueueId); br.Parse(out TxBytes); br.Parse(out TxPackets); br.Parse(out TxErrors); }
public OfpErrorMsg(Stream stream, OfpHeader header = null) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = header ?? new OfpHeader(stream); br.Parse(out Type); br.Parse(out Code); int length = (int)(Header.Length - Size); br.Parse(out Data, length); }
public OfpFlowMod(Stream stream, OfpHeader header = null) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = header ?? new OfpHeader(stream); //var pos = stream.Position; Match = new OfpMatch(stream); //pos = stream.Position; br.Parse(out Cookie); br.Parse(out Command); br.Parse(out IdleTimeout); br.Parse(out HardTimeout); br.Parse(out Priority); br.Parse(out BufferId); br.Parse(out OutPort); //FIXED: br.Parse(out Flags); //pos = stream.Position; IOfpAction action = OfpActionHeader.ParseAction(stream); while (action != null) { Actions[action.Header.Type] = action; action = OfpActionHeader.ParseAction(stream); } }
public OfpPacketIn(Stream stream, OfpHeader header = null) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = header ?? new OfpHeader(stream); br.Parse(out BufferId); br.Parse(out TotalLen); br.Parse(out InPort); br.Parse(out Reason); br.ReadBytes(1); int length = (int)(Header.Length - Size + 2); //FIXED: Data = br.ReadBytes(length); }
public OfpActionNwAddr(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = new OfpActionHeader(stream); br.Parse(out NwAddr); }
public OfpQueuePropMinRate(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); PropHeader = new OfpQueuePropHeader(stream); br.Parse(out Rate); }
public OfpActionDlAddr(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = new OfpActionHeader(stream); br.Parse(out DlAddr, OFP_MAX_ETH_ALEN); br.ReadBytes(6); }
public OfpActionTpPort(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = new OfpActionHeader(stream); br.Parse(out TpPort); br.ReadBytes(2); //PAD 2 }
public OfpQueueGetConfigRequest(Stream stream, OfpHeader header = null) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = header ?? new OfpHeader(stream); br.Parse(out Port); br.ReadBytes(2); }
public OfpActionNwTos(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = new OfpActionHeader(stream); br.Parse(out NwTos); br.ReadBytes(3); }
public OfpPhyPort(Stream stream) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); br.Parse(out PortNo); br.Parse(out HwAddr, OFP_MAX_ETH_ALEN); br.Parse(out Name, OFP_MAX_PORT_NAME_LEN); br.Parse(out Config); br.Parse(out State); br.Parse(out Curr); br.Parse(out Advertised); br.Parse(out Supported); br.Parse(out Peer); }
public OfpPortStatus(Stream stream, OfpHeader header = null) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = header ?? new OfpHeader(stream); br.Parse(out Reason); br.ReadBytes(7); Desc = new OfpPhyPort(stream); }
public OfpSwitchFeatures(Stream stream, OfpHeader header = null) { BeBinaryReader br = new BeBinaryReader(stream, Encoding.ASCII, true); Header = header ?? new OfpHeader(stream); br.Parse(out DatapathId); br.Parse(out NBuffers); br.Parse(out NTables); br.ReadBytes(3); //PAD 3 br.Parse(out Capabilities); br.Parse(out Actions); var portCount = (Header.Length - Size) / OfpPhyPort.Size; for (int i = 0; i < portCount; i++) { OfpPhyPort port = new OfpPhyPort(stream); Ports.Add(port); } }