edit makefile to clear db (need feedback)
labelStack shows empty list (Fixed but need feedback)
added tunnel path in show tunnel command
removed mpls action from aclAdded TTL actions in group, etherType with '0x', Added tunnelInfo in 'show policy', removed |breif, details| from groups
diff --git a/cli/Makefile b/cli/Makefile
index 4693918..18ddc47 100755
--- a/cli/Makefile
+++ b/cli/Makefile
@@ -84,3 +84,7 @@
build-sdnplatform:
# cd $(FL_DIR); ant dist
+clean-srdb: stop-sdncon
+ rm -fr sdncon/sdncon
+ make clean
+ make start-sdncon
diff --git a/cli/cli/c_actions.py b/cli/cli/c_actions.py
index 9c4176f..219b1d6 100755
--- a/cli/cli/c_actions.py
+++ b/cli/cli/c_actions.py
@@ -68,7 +68,7 @@
newActions += ch
return newActions
else:
- actions
+ ''
def renameActions(actions):
actions = actions.replace('GOTO_TABLE','GOTO')
actions = actions.replace('WRITE_ACTIONS','WRITE')
@@ -2198,22 +2198,18 @@
combResult = []
tunnelList = entries
for tunnel in tunnelList:
- labelStack = str(tunnel.get('labelStack'))
+ labelStack = str(tunnel.get('labelStack')) if tunnel.get('labelStack') else ''
labelStack = remove_unicodes(labelStack)
tunnelId = tunnel.get('tunnelId')
+ tunnelPath = tunnel.get('tunnelPath')
dpidGroup = str(tunnel.get('dpidGroup'))
dpidGroup= remove_unicodes(dpidGroup)
policies = tunnel.get('policies')
- #nodes = ''
- #for node in tunnel.get("nodes"):
- # nodes += (node.get('value') + ',')
- #if nodes != '':
- # nodes = nodes[:-1]
combResult.append({
'tunnelId' : tunnelId,
- #'nodes' : nodes,
- 'labelStack' :labelStack,
- 'dpidGroup' :dpidGroup,
+ 'labelStack' : labelStack,
+ 'dpidGroup' : dpidGroup,
+ 'tunnelPath' : tunnelPath,
'policies' : policies,
})
entries = combResult
@@ -2267,7 +2263,8 @@
if actions != None:
actions = remove_unicodes(actions)
actions = renameActions(actions)
- actions = remove_unicodes(actions)
+ else:
+ actions =''
combResult.append({
'switch' : ipTableEntry['switch'],
'byteCount' : ipTableEntry['byteCount'],
@@ -2294,6 +2291,8 @@
if actions != None:
actions = remove_unicodes(actions)
actions = renameActions(actions)
+ else:
+ actions =''
combResult.append({
'switch' : ipTableEntry['switch'],
'byteCount' : ipTableEntry['byteCount'],
@@ -2339,6 +2338,8 @@
if actions != None:
actions = remove_unicodes(actions)
actions = renameActions(actions)
+ else:
+ actions = ''
combResult.append({
'switch' : ipTableEntry['switch'],
'byteCount' : ipTableEntry['byteCount'],
diff --git a/cli/cli/desc/version200/core.py b/cli/cli/desc/version200/core.py
index d9b949f..02397f7 100755
--- a/cli/cli/desc/version200/core.py
+++ b/cli/cli/desc/version200/core.py
@@ -2070,38 +2070,14 @@
REALTIME_TABLE_ACL_FLOW_FORMAT = {
'realtime_table_acl_flow' : {
'field-orderings' : {
- 'default' : [
- 'Idx', 'cookie', 'priority'
- 'byteCount', 'packetCount',
- 'dataLayerSource', 'dataLayerDestination',
- 'flow-brief','mplsLabel','mplsBos','mplsTc','actions'
- ],
- 'scoped' : [
- 'Idx', 'cookie', 'priority',
- 'byteCount', 'packetCount',
- 'dataLayerSource', 'dataLayerDestination','mplsLabel','mplsBos','mplsTc'
- 'flow-brief','actions'
-
- ],
- 'brief' : [ 'Idx', 'cookie','priority', 'dataLayerSource', 'dataLayerDestination',
- 'networkSource', 'networkDestination', 'networkProtocol',
- 'transportSource', 'transportDestination','mplsLabel','mplsBos','mplsTc','actions'],
'default' : [ 'Idx','byteCount', 'packetCount', 'durationSeconds',
'cookie','priority', 'inputPort', 'dataLayerSource', 'dataLayerDestination',
'dataLayerType', 'networkSource', 'networkDestination', 'networkProtocol',
- 'transportSource', 'transportDestination''mplsLabel','mplsBos','mplsTc', 'actions'],
+ 'transportSource', 'transportDestination''mplsLabel','actions'],
'scoped' : [ 'Idx','byteCount', 'packetCount', 'durationSeconds',
'cookie','priority', 'inputPort', 'dataLayerSource', 'dataLayerDestination',
'dataLayerType', 'networkSource', 'networkDestination', 'networkProtocol',
- 'transportSource', 'transportDestination','mplsLabel','mplsBos','mplsTc','actions'],
- 'details' : [ 'Idx','byteCount', 'packetCount', 'durationSeconds',
- 'cookie', 'priority','hardTimeout', 'idleTimeout', 'priority', 'tableId', 'inputPort',
- 'dataLayerSource', 'dataLayerDestination', 'dataLayerType', 'dataLayerVirtualLan',
- 'dataLayerVirtualLanPriorityCodePoint', 'networkSource', 'networkDestination',
- 'networkProtocol', 'transportSource', 'transportDestination',
- 'networkTypeOfService','mplsLabel','mplsBos','mplsTc', 'actions'],
- #'vns_flow': [ 'Idx', 'dataLayerSource', 'dataLayerDestination', 'dataLayerVirtualLan', 'dataLayerType'],
- #'summary' : [ 'Idx', 'vnsName', 'vnsFlowCnt', 'flowEntryCnt'],
+ 'transportSource', 'transportDestination','actions'],
},
'fields': {
'switch' : { 'verbose-name' : 'Switch',
@@ -2148,7 +2124,7 @@
'dataLayerDestination' : { 'verbose-name' : 'Dst MAC',
'formatter' : fmtcnv.replace_host_with_alias
},
- 'dataLayerType' : { 'verbose-name' : 'Ether Type',
+ 'dataLayerType' : { 'verbose-name' : 'EthType',
'formatter' : fmtcnv.decode_ether_type
},
'dataLayerVirtualLan' : { 'verbose-name' : 'VLAN ID',
@@ -2416,7 +2392,7 @@
SHOW_TUNNEL_FORMAT = {
'show_tunnel' : {
'field-orderings' : {
- 'default' : [ 'Idx', 'tunnelId', 'policies','labelStack',],
+ 'default' : [ 'Idx', 'tunnelId', 'policies','labelStack','tunnelPath'],
'details' : [ 'Idx', 'tunnelId', 'policies','labelStack', 'dpidGroup',],
},
'fields': {
@@ -2424,7 +2400,9 @@
},
'dpidGroup' : { 'verbose-name' : 'dpid/Group',
},
- 'labelStack' : { 'verbose-name' : 'Label Stack',
+ 'labelStack' : { 'verbose-name' : 'Label Stack [Outer-->Inner]',
+ },
+ 'tunnelPath' : { 'verbose-name' : 'Tunnel Path [Head-->Tail]',
},
}
},
@@ -2433,9 +2411,9 @@
SHOW_POLICY_FORMAT = {
'show_policy' : {
'field-orderings' : {
- 'default' : [ 'Idx', 'policyId', 'policyType','tunnelId','priority','dstMacAddress','srcMacAddress',
- 'dstIpAddress' ,'srcIpAddress', 'dstTcpPortNumber','srcTcpPortNumber',
- 'etherType', 'ipProtocolNumber',
+ 'default' : [ 'Idx', 'policyId', 'policyType','priority','dstMacAddress','srcMacAddress',
+ 'etherType','dstIpAddress' ,'ipProtocolNumber','srcIpAddress', 'dstTcpPortNumber',
+ 'srcTcpPortNumber','tunnelId'
]
},
'fields': {
diff --git a/cli/cli/desc/version200/policy.py b/cli/cli/desc/version200/policy.py
index 2dee7c1..685a86c 100644
--- a/cli/cli/desc/version200/policy.py
+++ b/cli/cli/desc/version200/policy.py
@@ -43,10 +43,9 @@
'completion' : 'complete-object-field',
'syntax-help' : 'Enter a policy name',
'doc' : 'policy|policy',
- #'doc-include' : [ 'type-doc' ],
},
{
- 'token' : 'type',
+ 'token' : 'policy-type',
'optional-for-no' : True,
'short-help' : 'Set type of policy',
'doc' : 'policy|policy',
diff --git a/cli/cli/desc/version200/switch.py b/cli/cli/desc/version200/switch.py
index 13f3a69..190c538 100755
--- a/cli/cli/desc/version200/switch.py
+++ b/cli/cli/desc/version200/switch.py
@@ -492,13 +492,13 @@
'doc' : 'switch|show-interfaces-alias',
}
),
- {
- 'field' : 'vns',
- 'type' : 'enum',
- 'values' : 'vns',
- 'action' : 'legacy-cli',
- 'obj-type' : 'switch-ports-vns'
- },
+ #{
+ # 'field' : 'vns',
+ # 'type' : 'enum',
+ # 'values' : 'vns',
+ # 'action' : 'legacy-cli',
+ # 'obj-type' : 'switch-ports-vns'
+ #},
{
'field' : 'alias',
'type' : 'enum',
diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelInfo.java b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelInfo.java
index 105983b..3808ef8 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelInfo.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelInfo.java
@@ -9,14 +9,17 @@
private String tunnelId;
private List<List<String>> labelStack;
private List<String> dpidGroup;
+ private List<Integer> tunnelPath;
private String policies;
public SegmentRouterTunnelInfo (String tId,List<List<String>> tunnelRoutes,
- List<String> dpidsWithGroup,String policiesId){
+ List<String> dpidsWithGroup,List<Integer> path, String policiesId){
this.tunnelId = tId;
this.labelStack = tunnelRoutes;
this.dpidGroup = dpidsWithGroup;
+ this.tunnelPath = path;
this.policies = policiesId;
+
}
public String getTunnelId (){
return this.tunnelId;
@@ -27,6 +30,9 @@
public List<String> getDpidGroup (){
return this.dpidGroup;
}
+ public List<Integer> getTunnelPath (){
+ return this.tunnelPath;
+ }
public String getPolicies (){
return this.policies;
}
diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelResource.java b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelResource.java
index 32d9cc6..aa9b62f 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelResource.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelResource.java
@@ -82,6 +82,7 @@
List<SegmentRouterTunnelInfo> infoList = new ArrayList<SegmentRouterTunnelInfo>();
while(ttI.hasNext()){
TunnelInfo tunnelInfo = ttI.next();
+ List<Integer> tunnelPath = tunnelInfo.getLabelids();
String tunnelId = tunnelInfo.getTunnelId();
Collection<PolicyInfo> policies = segmentRoutingService.getPoclicyTable();
Iterator<PolicyInfo> piI = policies.iterator();
@@ -106,7 +107,7 @@
dpidGroup.add(label.getSrcSwDpid() + "/"+ gId);
}
SegmentRouterTunnelInfo info = new SegmentRouterTunnelInfo(tunnelId,
- labelStack, dpidGroup, policiesId);
+ labelStack, dpidGroup, tunnelPath, policiesId );
infoList.add(info);
}
log.debug("getTunnel with params");