Exemple #1
0
        public override void Define()
        {
            LocalNetworkPrefix localPrefix = null;
            ArpUnanswered      hostArp     = null;

            When()
            .Match(() => localPrefix)
            .Match(() => hostArp)
            .All <IpFlow>(f => f.IpSrc != hostArp.Request.ArpSrcProtoIpv4 || IsLocalOrMulticast(f.IpDst, localPrefix));
            Then()
            .Do(ctx => EmitInvalidGateway(ctx, hostArp));
        }
Exemple #2
0
 private void EmitInvalidGateway(IContext ctx, ArpUnanswered badGwArp)
 {
     ctx.TryInsert(new InvalidGateway {
         HostIpAddr = badGwArp.Request.ArpSrcProtoIpv4, GwIpAddr = badGwArp.Request.ArpDstProtoIpv4
     });
 }