Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        public override void Define()
        {
            IpPacket packet = null;

            When()
            .Match(() => packet);
            Then()
            .Do(ctx => InsertFacts(ctx, packet));
        }
Esempio n. 3
0
        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
            }));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }