blob: 8c39cdc6fe0777493019a0ebfc46a186f76a9492 [file] [log] [blame]
Jonghwan Hyun13a430d2018-07-22 17:02:51 +09001<!-- partial HTML -->
2<div id="ov-int-app-main">
Carmelo Casconefa421582018-09-13 10:05:57 -07003 <div class="tabular-header">
4 <h2 style="font-weight: bold">In-band Network Telemetry (INT) Control
5 Application</h2>
6 </div>
Jonghwan Hyun13a430d2018-07-22 17:02:51 +09007
Jonghwan Hyun13a430d2018-07-22 17:02:51 +09008 <hr>
Jonghwan Hyun13a430d2018-07-22 17:02:51 +09009
Carmelo Casconefa421582018-09-13 10:05:57 -070010 <div class="tabular-header">
11 <h2>
12 INT Collector Configuration
13 </h2>
14 <div class="config-panel">
15 <h3>
16 Collector IPv4 address and UDP port
17 </h3>
18 <div>
19 <input type="text" required
20 pattern="^([0-9]{1,3}\.){3}[0-9]{1,3}$"
21 ng-model="collectorIp" placeholder="IPv4 address">
22 :
23 <input type="text" required pattern="^[0-9]{0,5}$"
24 ng-model="collectorPort" placeholder="port">
25 </div>
Jonghwan Hyun13a430d2018-07-22 17:02:51 +090026 </div>
Carmelo Casconefa421582018-09-13 10:05:57 -070027 <div class="config-button-panel">
28 <div class="int-app-config-button" ng-click="sendIntConfigString()">
29 Apply Configuration
30 </div>
Jonghwan Hyun13a430d2018-07-22 17:02:51 +090031 </div>
32 </div>
33
Carmelo Casconefa421582018-09-13 10:05:57 -070034 <hr>
35
36 <div class="tabular-header">
37 <h2>
38 INT Watchlist Rules
39 </h2>
40
41 <div>
42 <div class="input-panel">
43 <h3>
44 Create New Watchlist Rule
45 </h3>
46 <div>
47 <label>
48 <input placeholder="Source IP address" type="text"
49 required
50 pattern="^([0-9]{1,3}\.){3}[0-9]{1,3}(/[0-9]{1,2})?$"
51 ng-model="ip4SrcPrefix">
52 </label>
53 <label>
54 <input placeholder="Dest IP address" type="text"
55 required
56 pattern="^([0-9]{1,3}\.){3}[0-9]{1,3}(/[0-9]{1,2})?$"
57 ng-model="ip4DstPrefix">
58 </label>
59 <label>
60 <input placeholder="Source port" type="text" required
61 pattern="^[0-9]{0,5}$"
62 ng-model="l4SrcPort">
63 </label>
64 <label>
65 <input placeholder="Dest port" type="text" required
66 pattern="^[0-9]{0,5}$"
67 ng-model="l4DstPort">
68 </label>
69 <label>
70 Protocol
71 <select name="protocol" ng-model="protocol">
72 <option selected disabled hidden
73 style="display: none" value=''></option>
74 <option value="TCP">TCP</option>
75 <option value="UDP">UDP</option>
76 </select>
77 </label>
78 </div>
79 <div>
80 <label>
81 <input type="checkbox" ng-model="metaSwId">
82 Switch ID
83 </label>
84 <label>
85 <input type="checkbox" ng-model="metaPortId">
86 Port IDs
87 </label>
88 <label>
89 <input type="checkbox" ng-model="metaHopLatency">
90 Hop Latency
91 </label>
92 <label>
93 <input type="checkbox" ng-model="metaQOccupancy">
94 Queue Occupancy
95 </label>
96 <label>
97 <input type="checkbox" ng-model="metaIngressTstamp">
98 Ingress Timestamp
99 </label>
100 <label>
101 <input type="checkbox" ng-model="metaEgressTstamp">
102 Egress Timestamp
103 </label>
104 <label>
105 <input type="checkbox" ng-model="metaQCongestion">
106 Queue Congestion Status
107 </label>
108 <label>
109 <input type="checkbox" ng-model="metaEgressTx">
110 Egress Port Tx Utilization
111 </label>
112 </div>
113 </div>
114 </div>
115
116 <div class="button-panel">
117 <div class="int-app-button" ng-click="sendIntIntentString()">
118 Apply Watchlist Rule
119 </div>
Jonghwan Hyun13a430d2018-07-22 17:02:51 +0900120 </div>
121 </div>
122 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
123 <div class='int-app-main-intents'>
124 <div class="tabular-header">
Carmelo Casconefa421582018-09-13 10:05:57 -0700125 <h2>Installed Watchlist Rules ({{tableData.length}} total)</h2>
Jonghwan Hyun13a430d2018-07-22 17:02:51 +0900126 <div class="ctrl-btns">
127 <div class="refresh" ng-class="{active: autoRefresh}"
128 icon icon-id="refresh" icon-size="36"
129 tooltip tt-msg="autoRefreshTip"
130 ng-click="toggleRefresh()">
131 </div>
132
133 <!-- tooltip tt-msg="uninstallTip" -->
134 <div icon icon-size="42" icon-id="garbage"
135 ng-click="delIntIntent()"
136 ng-class="{active: ctrlBtnState.selection}">
137 </div>
138 </div>
139 </div>
140
141 <div class="summary-list" onos-table-resize>
142
143 <div class="table-header" onos-sortable-header>
144 <table>
145 <tr>
Carmelo Casconefa421582018-09-13 10:05:57 -0700146 <td colId="id" sortable>ID</td>
147 <td colId="srcAddr" sortable>Src Address</td>
148 <td colId="dstAddr" sortable>Dst Address</td>
149 <td colId="srcPort" sortable>Src Port</td>
150 <td colId="dstPort" sortable>Dst Port</td>
151 <td colId="protocol" sortable>Protocol</td>
152 <td colId="metadata" sortable>Metadata</td>
Jonghwan Hyun13a430d2018-07-22 17:02:51 +0900153 </tr>
154 </table>
155 </div>
156
157 <div class="table-body">
158 <table>
159 <tr ng-repeat="item in tableData track by $index"
160 ng-click="selectCallback($event, item)"
161 ng-class="{selected: item.id === selId}">
162 <td>{{item.id}}</td>
163 <td>{{item.srcAddr}}</td>
164 <td>{{item.dstAddr}}</td>
165 <td>{{item.srcPort}}</td>
166 <td>{{item.dstPort}}</td>
167 <td>{{item.protocol}}</td>
168 <td>{{item.metadata}}</td>
169 </tr>
170 </table>
171 </div>
172
173 </div>
174 </div>
175</div>
176<!-- +++++++++++++++++++++ -->