summaryrefslogtreecommitdiffstats
path: root/scripts/automation/trex_control_plane/client/trex_port.py
diff options
context:
space:
mode:
authorHanoh Haim <hhaim@cisco.com>2016-01-24 13:27:11 +0200
committerHanoh Haim <hhaim@cisco.com>2016-01-24 13:27:11 +0200
commit951dd56abfd78d5669f0f57d840b2fe623ded2cd (patch)
tree60857060a198512b0d629e04daf63ca2168f09b3 /scripts/automation/trex_control_plane/client/trex_port.py
parent2d27d1df02328d7148ac1c4ed029ecdaf1853c1e (diff)
parent6f4a51c126b7a78ee8e37d396ed2b61b05fa506c (diff)
Merge from origin
Diffstat (limited to 'scripts/automation/trex_control_plane/client/trex_port.py')
-rw-r--r--scripts/automation/trex_control_plane/client/trex_port.py41
1 files changed, 38 insertions, 3 deletions
diff --git a/scripts/automation/trex_control_plane/client/trex_port.py b/scripts/automation/trex_control_plane/client/trex_port.py
index 66d87f9d..94240f2a 100644
--- a/scripts/automation/trex_control_plane/client/trex_port.py
+++ b/scripts/automation/trex_control_plane/client/trex_port.py
@@ -56,7 +56,7 @@ class Port(object):
def err(self, msg):
return RC_ERR("port {0} : {1}".format(self.port_id, msg))
- def ok(self, data = "ACK"):
+ def ok(self, data = ""):
return RC_OK(data)
def get_speed_bps (self):
@@ -198,6 +198,9 @@ class Port(object):
# remove stream from port
def remove_stream (self, stream_id):
+ if not self.is_acquired():
+ return self.err("port is not owned")
+
if not stream_id in self.streams:
return self.err("stream {0} does not exists".format(stream_id))
@@ -219,6 +222,9 @@ class Port(object):
# remove all the streams
def remove_all_streams (self):
+ if not self.is_acquired():
+ return self.err("port is not owned")
+
params = {"handler": self.handler,
"port_id": self.port_id}
@@ -244,6 +250,10 @@ class Port(object):
# start traffic
def start (self, mul, duration):
+
+ if not self.is_acquired():
+ return self.err("port is not owned")
+
if self.state == self.STATE_DOWN:
return self.err("Unable to start traffic - port is down")
@@ -270,8 +280,15 @@ class Port(object):
# with force ignores the cached state and sends the command
def stop (self, force = False):
- if (not force) and (self.state != self.STATE_TX) and (self.state != self.STATE_PAUSE):
- return self.err("port is not transmitting")
+ if not self.is_acquired():
+ return self.err("port is not owned")
+
+ # port is already stopped
+ if not force:
+ if (self.state == self.STATE_IDLE) or (self.state == self.state == self.STATE_STREAMS):
+ return self.ok()
+
+
params = {"handler": self.handler,
"port_id": self.port_id}
@@ -287,6 +304,9 @@ class Port(object):
def pause (self):
+ if not self.is_acquired():
+ return self.err("port is not owned")
+
if (self.state != self.STATE_TX) :
return self.err("port is not transmitting")
@@ -305,6 +325,9 @@ class Port(object):
def resume (self):
+ if not self.is_acquired():
+ return self.err("port is not owned")
+
if (self.state != self.STATE_PAUSE) :
return self.err("port is not in pause mode")
@@ -322,6 +345,10 @@ class Port(object):
def update (self, mul):
+
+ if not self.is_acquired():
+ return self.err("port is not owned")
+
if (self.state != self.STATE_TX) :
return self.err("port is not transmitting")
@@ -338,6 +365,9 @@ class Port(object):
def validate (self):
+ if not self.is_acquired():
+ return self.err("port is not owned")
+
if (self.state == self.STATE_DOWN):
return self.err("port is down")
@@ -413,6 +443,11 @@ class Port(object):
def clear_stats(self):
return self.port_stats.clear_stats()
+
+ def get_stats (self):
+ return self.port_stats.get_stats()
+
+
def invalidate_stats(self):
return self.port_stats.invalidate()