|
78 |
MakeDoubleAccessor (&KernelSocketFdFactory::m_rate), |
78 |
MakeDoubleAccessor (&KernelSocketFdFactory::m_rate), |
79 |
MakeDoubleChecker<double> ()) |
79 |
MakeDoubleChecker<double> ()) |
80 |
.AddAttribute ("RanVar", "The decision variable attached to this error model.", |
80 |
.AddAttribute ("RanVar", "The decision variable attached to this error model.", |
81 |
RandomVariableValue (UniformVariable (0.0, 1.0)), |
81 |
StringValue ("ns3::UniformRandomVariable[Min=0.0|Max=1.0]"), |
82 |
MakeRandomVariableAccessor (&KernelSocketFdFactory::m_ranvar), |
82 |
MakePointerAccessor (&KernelSocketFdFactory::m_ranvar), |
83 |
MakeRandomVariableChecker ()) |
83 |
MakePointerChecker<RandomVariableStream> ()) |
84 |
; |
84 |
; |
85 |
return tid; |
85 |
return tid; |
86 |
} |
86 |
} |
|
91 |
m_logFile (0) |
91 |
m_logFile (0) |
92 |
{ |
92 |
{ |
93 |
TypeId::LookupByNameFailSafe ("ns3::LteUeNetDevice", &m_lteUeTid); |
93 |
TypeId::LookupByNameFailSafe ("ns3::LteUeNetDevice", &m_lteUeTid); |
|
|
94 |
m_variable = CreateObject<UniformRandomVariable> (); |
94 |
} |
95 |
} |
95 |
|
96 |
|
96 |
KernelSocketFdFactory::~KernelSocketFdFactory () |
97 |
KernelSocketFdFactory::~KernelSocketFdFactory () |
|
137 |
KernelSocketFdFactory::Malloc (struct SimKernel *kernel, unsigned long size) |
138 |
KernelSocketFdFactory::Malloc (struct SimKernel *kernel, unsigned long size) |
138 |
{ |
139 |
{ |
139 |
KernelSocketFdFactory *self = (KernelSocketFdFactory *)kernel; |
140 |
KernelSocketFdFactory *self = (KernelSocketFdFactory *)kernel; |
140 |
if (self->m_ranvar.GetValue () < self->m_rate) |
141 |
if (self->m_ranvar->GetValue () < self->m_rate) |
141 |
{ |
142 |
{ |
142 |
NS_LOG_DEBUG ("return null"); |
143 |
NS_LOG_DEBUG ("return null"); |
143 |
// Inject fault |
144 |
// Inject fault |
|
256 |
} u; |
257 |
} u; |
257 |
for (uint8_t i = 0; i < sizeof (u.buffer); i++) |
258 |
for (uint8_t i = 0; i < sizeof (u.buffer); i++) |
258 |
{ |
259 |
{ |
259 |
u.buffer[i] = self->m_variable.GetInteger (0,255); |
260 |
u.buffer[i] = self->m_variable->GetInteger (0,255); |
260 |
} |
261 |
} |
261 |
return u.v; |
262 |
return u.v; |
262 |
} |
263 |
} |