ba6ed7015879a134047cf04daece9b44cf130df2
[nepi.git] / src / nepi / resources / ns3 / classes / lte_ue_net_device.py
1 #
2 #    NEPI, a framework to manage network experiments
3 #    Copyright (C) 2014 INRIA
4 #
5 #    This program is free software: you can redistribute it and/or modify
6 #    it under the terms of the GNU General Public License as published by
7 #    the Free Software Foundation, either version 3 of the License, or
8 #    (at your option) any later version.
9 #
10 #    This program is distributed in the hope that it will be useful,
11 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #    GNU General Public License for more details.
14 #
15 #    You should have received a copy of the GNU General Public License
16 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 #
18
19 from nepi.execution.attribute import Attribute, Flags, Types
20 from nepi.execution.trace import Trace, TraceAttr
21 from nepi.execution.resource import ResourceManager, clsinit_copy, \
22         ResourceState, reschedule_delay
23 from nepi.resources.ns3.ns3netdevice import NS3BaseNetDevice 
24
25 @clsinit_copy
26 class NS3LteUeNetDevice(NS3BaseNetDevice):
27     _rtype = "ns3::LteUeNetDevice"
28
29     @classmethod
30     def _register_attributes(cls):
31         
32         attr_imsi = Attribute("Imsi",
33             "International Mobile Subscriber Identity assigned to this UE",
34             type = Types.Integer,
35             default = "0",  
36             allowed = None,
37             range = None,    
38             flags = Flags.Reserved | Flags.Construct)
39
40         cls._register_attribute(attr_imsi)
41
42         attr_dlearfcn = Attribute("DlEarfcn",
43             "Downlink E-UTRA Absolute Radio Frequency Channel Number (EARFCN) as per 3GPP 36.101 Section 5.7.3. ",
44             type = Types.Integer,
45             default = "100",  
46             allowed = None,
47             range = None,    
48             flags = Flags.Reserved | Flags.Construct)
49
50         cls._register_attribute(attr_dlearfcn)
51
52         attr_csgid = Attribute("CsgId",
53             "The Closed Subscriber Group (CSG) identity that this UE is associated with, i.e., giving the UE access to cells which belong to this particular CSG. This restriction only applies to initial cell selection and EPC-enabled simulation. This does not revoke the UE\'s access to non-CSG cells. ",
54             type = Types.Integer,
55             default = "0",  
56             allowed = None,
57             range = None,    
58             flags = Flags.Reserved | Flags.Construct)
59
60         cls._register_attribute(attr_csgid)
61
62         attr_mtu = Attribute("Mtu",
63             "The MAC-level Maximum Transmission Unit",
64             type = Types.Integer,
65             default = "30000",  
66             allowed = None,
67             range = None,    
68             flags = Flags.Reserved | Flags.Construct)
69
70         cls._register_attribute(attr_mtu)
71
72
73
74     @classmethod
75     def _register_traces(cls):
76         pass
77
78     def __init__(self, ec, guid):
79         super(NS3LteUeNetDevice, self).__init__(ec, guid)
80         self._home = "ns3-lte-ue-net-device-%s" % self.guid