public override int GetBehaviorHashCode()
 {
     return(AddMode.GetHashCode() ^
            AinitValue.GetHashCode() ^
            Atype.GetHashCode() ^
            Awidth ^
            Bconstant.GetHashCode() ^
            BorrowSense.GetHashCode() ^
            Btype.GetHashCode() ^
            Bvalue.GetHashCode() ^
            Bwidth ^
            BypassCePriority.GetHashCode() ^
            BypassSense.GetHashCode() ^
            ConstantInputValue.GetHashCode() ^
            Generator.GetHashCode() ^
            HasBypass.GetHashCode() ^
            HasCarryIn.GetHashCode() ^
            HasCarryOut.GetHashCode() ^
            HasCE.GetHashCode() ^
            HasConstantInput.GetHashCode() ^
            HasSCLR.GetHashCode() ^
            HasSSET.GetHashCode() ^
            Implementation.GetHashCode() ^
            Latency.GetHashCode() ^
            LatencyConfiguration.GetHashCode() ^
            OutWidth);
 }
        EmulationConfiguration GetEmulationConfiguration(Config.NetworkEmulation config)
        {
            EmulationConfiguration emulationConfiguration = null;

            if (config.EmulationType == NetworkEmProfile.Bandwidth)
            {
                emulationConfiguration = new BandwidthConfiguration
                {
                    DownstreamBandwidth = config.BandwidthDownstreamSpeed,
                    UpstreamBandwidth   = config.BandwidthUpstreamSpeed,
                    TargetEndpoints     = config.TargetEndpoints
                };
            }
            if (config.EmulationType == NetworkEmProfile.Corruption)
            {
                emulationConfiguration = new CorruptionConfiguration
                {
                    PacketPercentage = config.PacketPercentage,
                    TargetEndpoints  = config.TargetEndpoints
                };
            }
            if (config.EmulationType == NetworkEmProfile.Latency)
            {
                emulationConfiguration = new LatencyConfiguration
                {
                    FixedLatencyDelayMilliseconds = _config.LatencyDelay,
                    TargetEndpoints = config.TargetEndpoints
                };
            }

            /* TODO -CT
             * if (config.EmulationType == NetworkEmProfile.Disconnect)
             * {
             *      emulationConfiguration = new DisconnectConfiguration
             *      {
             *              ConnectionTime = config.ConnectionTime,
             *              DisconnectionTime = config.DisconnectionTime,
             *              PeriodicDisconnectionRate = config.PeriodicDisconnectionRate,
             *              TargetEndpoints = config.TargetEndpoints
             *      };
             * }
             */
            if (config.EmulationType == NetworkEmProfile.Loss)             //Random support implemented...
            {
                emulationConfiguration = new LossConfiguration
                {
                    //BurstRate = config.BurstRate,
                    //MaximumBurst = config.MaximumBurst,
                    //MinimumBurst = config.MinimumBurst,
                    //PeriodicLossPeriod = config.PeriodicLossPeriod,
                    RandomLossRate  = config.RandomLossRate,
                    TargetEndpoints = config.TargetEndpoints
                };
            }
            if (config.EmulationType == NetworkEmProfile.Reorder)
            {
                emulationConfiguration = new ReorderConfiguration
                {
                    CorrelationPercentage = config.CorrelationPercentage,
                    PacketPercentage      = config.PacketPercentage
                };
            }

            return(emulationConfiguration);
        }
Exemple #3
0
        private EmulationConfiguration GetEmulationConfiguration(Config.NetworkEmulation config)
        {
            EmulationConfiguration emulationConfiguration = null;

            if (config.EmulationType == NetworkEmProfile.Bandwidth)
            {
                emulationConfiguration = new BandwidthConfiguration
                {
                    DownstreamBandwidth = config.BandwidthDownstreamSpeed,
                    UpstreamBandwidth   = config.BandwidthUpstreamSpeed,
                    TargetEndpoints     = config.TargetEndpoints
                };
            }
            if (config.EmulationType == NetworkEmProfile.Corruption)
            {
                emulationConfiguration = new CorruptionConfiguration
                {
                    PacketPercentage = config.PacketPercentage,
                    TargetEndpoints  = config.TargetEndpoints
                };
            }
            if (config.EmulationType == NetworkEmProfile.Latency)
            {
                emulationConfiguration = new LatencyConfiguration
                {
                    FixedLatencyDelayMilliseconds = _config.LatencyDelay,
                    TargetEndpoints = config.TargetEndpoints
                };
            }

            /* TODO -CT
             * if (config.EmulationType == NetworkEmProfile.Disconnect)
             * {
             *      emulationConfiguration = new DisconnectConfiguration
             *      {
             *              ConnectionTime = config.ConnectionTime,
             *              DisconnectionTime = config.DisconnectionTime,
             *              PeriodicDisconnectionRate = config.PeriodicDisconnectionRate,
             *              TargetEndpoints = config.TargetEndpoints
             *      };
             * }
             */
            if (config.EmulationType == NetworkEmProfile.Loss)             //Random and Burst are supported...
            {
                emulationConfiguration = new LossConfiguration
                {
                    LossRate        = config.LossRate,
                    LossType        = config.LossType,
                    TargetEndpoints = config.TargetEndpoints
                };

                if (config.LossType == LossType.Burst)
                {
                    ((LossConfiguration)emulationConfiguration).BurstRate = config.BurstRate;
                }
            }
            if (config.EmulationType == NetworkEmProfile.Reorder)
            {
                emulationConfiguration = new ReorderConfiguration
                {
                    CorrelationPercentage = config.CorrelationPercentage,
                    PacketPercentage      = config.PacketPercentage
                };
            }

            return(emulationConfiguration);
        }