private void InsertFacts(IContext ctx, IpPacket packet) { ctx.TryInsert(new IpFlow { IpSrc = packet.IpSrc, IpDst = packet.IpDst }); ctx.TryInsert(new IpSourceEndpoint { IpAddr = packet.IpSrc }); ctx.TryInsert(new IpEndpoint { IpAddr = packet.IpSrc }); ctx.TryInsert(new AddressMapping { IpAddr = packet.IpSrc, EthAddr = packet.EthSrc }); ctx.TryInsert(new IpDestinationEndpoint { IpAddr = packet.IpDst }); ctx.TryInsert(new IpEndpoint { IpAddr = packet.IpDst }); ctx.TryInsert(new AddressMapping { IpAddr = packet.IpDst, EthAddr = packet.EthDst }); if (packet.EthDst == "ff:ff:ff:ff:ff:ff" && packet.IpDst != "255.255.255.255") { var f = new LocalNetworkBroadcast { IpBroadcast = packet.IpDst }; ctx.TryInsert(f); } }
public override void Define() { IpPacket packet = null; When() .Match(() => packet); Then() .Do(ctx => InsertFacts(ctx, packet)); }
public override void Define() { IpPacket packet = null; When() .Match(() => packet); // LocalNetworkAddress.Contains(packet.IpSrc) Then() .Do(ctx => ctx.TryInsert(new AddressMapping { IpAddr = packet.IpSrc, EthAddr = packet.EthSrc })); }
public override bool Equals(object obj) { IpPacket that = obj as IpPacket; return((((((that != null) && object.Equals(this.FrameNumber, that.FrameNumber)) && object.Equals(this.EthSrc, that.EthSrc)) && object.Equals(this.EthDst, that.EthDst)) && object.Equals(this.IpSrc, that.IpSrc)) && object.Equals(this.IpDst, that.IpDst)); }
public static IpPacket Create(System.Func <string, string, string> mapper, string[] values) { IpPacket newObj = new IpPacket(); newObj._FrameNumber = mapper.Invoke("frame.number", values[0]).ToInt32(); newObj._EthSrc = mapper.Invoke("eth.src", values[1]).ToString(); newObj._EthDst = mapper.Invoke("eth.dst", values[2]).ToString(); newObj._IpSrc = mapper.Invoke("ip.src", values[3]).ToString(); newObj._IpDst = mapper.Invoke("ip.dst", values[4]).ToString(); return(newObj); }
public static IpPacket Create(string[] values) { IpPacket newObj = new IpPacket(); newObj._FrameNumber = values[0].ToInt32(); newObj._EthSrc = values[1].ToString(); newObj._EthDst = values[2].ToString(); newObj._IpSrc = values[3].ToString(); newObj._IpDst = values[4].ToString(); return(newObj); }