Project

General

Profile

DUL 20 Configuration » History » Version 8

lynxis, 11/11/2020 10:25 PM

1 1 lynxis
h1. DUL 20 Configuration
2
3
The DUL can be configured via
4
5
* OSS-RC (Ericsson operations support system-radio and core - a centralized server)
6
* EMA (Element Manager - a Windows WebUI utility)
7
* moshell (a javabased command line utility - runs on linux)
8
* ncli (a command line utility which runs on the DUL itself)
9
10
h2. Configuration tools
11
12
h3. EMA - Element Manager
13
14
There are different versions of this tool. An ancient version can be downloaded from the DUL itself:
15
http://169.254.1.10/em/index.html
16
17
h3. ncli
18
19
With the ncli basic operations can be performed. However the ncli usually doesn't have a ManagedObject tree loaded which means it doesn't know which attributes an ManagedObject can have.
20
21
h3. moshell
22
23
The most powerful tool to configure the DUL. It loads the ManagedObject on startup. But can also operate offline on backups.
24
See [[moshell]] for further information how to install and use it.
25
26
h2. Backup & Recover
27
28
A backup of the DUL can be created via ftp and serial.
29
The serial is required to boot into the recovery mode.
30
31 3 lynxis
h3. Boot DUL into recovery
32 1 lynxis
33
Configure the serial connection to **9600** baud (alternative **115200**).
34
Restart the DUL by removing the power for 5 seconds.
35
If the connection is working a boot message is shown:
36
<pre>
37 2 lynxis
OSE Delta PowerPC/BL410660
38
Start of @(#)CXC1729957 R80L37 2013-02-01 10:34:51 GMT
39
Plug-in Unit Product Name:   DUL2001
40
Plug-in Unit Product No:     KDU137533/4
41
Plug-in Unit Product rev:    R1F
42
Plug-in Unit Product Date:   20120402
43
Plug-in Unit Product Serial: XXXXXXXXXX
44
Ethernet MAC_address 0:      0x3CCAFFEE2342
45
RAM size:                    1024 Mbytes
46 1 lynxis
</pre>
47
48
Press enter to show the login prompt `username`.
49
50
Login using username "rbs" and password "rbs".
51
<pre>
52 2 lynxis
username: rbs
53
password:
54
Welcome to OSE Shell OSE5.5.
55
$
56 1 lynxis
</pre>
57
Enter the recovery state:
58
59
<pre>
60 2 lynxis
$ reload --
61
[..]
62
Stop due to remain in basic/backup set
63 1 lynxis
</pre>
64
65
Verify the address of the LMT B interface.
66
67
<pre>
68 2 lynxis
$ ifconfig
69
le0: inet 169.254.1.10 netmask 255.255.0.0 broadcast 169.254.255.255
70 1 lynxis
</pre>
71
72
If the address is not correct, the address can be set by:
73
74
<pre>
75 2 lynxis
$ ifconfig le0 169.254.1.10 netmask 255.255.0.0
76 1 lynxis
</pre>
77
78
The DUL should be reachable by icmp/ping and ftp.
79
80 4 lynxis
h3. Backup
81 1 lynxis
82 3 lynxis
Backup the "partitions" /c and /d from the DUL to be safe.
83
/c and /d contains configuration and system files, application and firmwares.
84
The DUL supports a ftp service.
85
86
Mount the volume of c2 on the DUL first.
87
88
<pre>
89
$ mount_c2
90
$
91
</pre>
92
93
Use your local ftp terminal to get all data. Either graphical client or text.
94
As an example **gftp** (text version) is used in a terminal on the laptop.
95
96
<pre>
97
linux ~> mkdir backup ; cd backup
98
linux ~> gftp rbs:rbs@169.254.1.10
99
</pre>
100
101
<pre>
102
linux ~> gftp 169.254.1.10
103
gFTP 2.0.19, Copyright (C) 1998-2008 Brian Masney <masneyb@gftp.org>. If you have any questions, comments, or suggestions about this program, please feel free to email them to me. You can always find out the latest news about gFTP from
104
my website at http://www.gftp.org/
105
gFTP comes with ABSOLUTELY NO WARRANTY; for details, see the COPYING file. This is free software, and you are welcome to redistribute it under certain conditions; for details, see the COPYING file
106
107
Looking up 169.254.1.10
108
Trying 169.254.1.10:21
109
Connected to 169.254.1.10:21
110
220 Welcome to OSE FTP server (Version ose5.3).
111
USER rbs
112
230 User logged in.
113
SYST
114
215 UNIX system type.
115
TYPE I
116
200 Command OK.
117
PWD
118
257 "/" is current directory.
119
ftp>
120
</pre>
121
Copy /c2 and /d recursive.
122
123
<pre>
124
ftp> mget c2
125
[..]
126
127
ftp> mget d
128
[..]
129
</pre>
130
Depending on the software version and configuration the size can vary. E.g. 300 MB - 800 MB.
131
132
Restart the node into normal operation.
133
134
<pre>
135
$ reload
136 1 lynxis
</pre>
137 4 lynxis
138
h2. Recovery
139
140
Ensure the DUL is booted into recovery.
141
142
<pre>
143
$ reload --
144
$ mount_c2
145
146
$ formathd /c2
147
> y
148
$ formathd /d
149
> y
150
151
$ reload --
152
$ ifconfig le0 169.254.1.10 netmask 255.255.0.0
153
</pre>
154
155
Use ftp to copy files towards the DUL
156
<pre>
157
linux ~> gftp 169.254.1.10
158
gFTP 2.0.19, Copyright (C) 1998-2008 Brian Masney <masneyb@gftp.org>. If you have any questions, comments, or suggestions about this program, please feel free to email them to me. You can always find out the latest news about gFTP from
159
my website at http://www.gftp.org/
160
gFTP comes with ABSOLUTELY NO WARRANTY; for details, see the COPYING file. This is free software, and you are welcome to redistribute it under certain conditions; for details, see the COPYING file
161
162
Looking up 169.254.1.10
163
Trying 169.254.1.10:21
164
Connected to 169.254.1.10:21
165
220 Welcome to OSE FTP server (Version ose5.3).
166
USER rbs
167
230 User logged in.
168
SYST
169
215 UNIX system type.
170
TYPE I
171
200 Command OK.
172
PWD
173
257 "/" is current directory.
174
ftp>
175
</pre>
176
177
Copy /c2 and /d recursive.
178
179
<pre>
180
ftp> mput c2
181
[..]
182
183
ftp> mput d
184
[..]
185
</pre>
186
187
Restart the DUL into normal operation.
188
189
<pre>
190
reload
191
</pre>
192
193 3 lynxis
194 1 lynxis
h2. Understanding ManagedObjects
195 3 lynxis
196
**TODO**
197 1 lynxis
198
h2. Step-by-Step Configuration Howto using the moshell.
199 5 lynxis
200 7 lynxis
This howto is for **L13A release**. You can check the release of the DUL with the moshell.
201 5 lynxis
202
<pre>
203
moshell> cvls
204
205
[...]
206
===================================================================================================================
207
201111-16:36            CV Name                                   Upgrade Package       Release
208
===================================================================================================================
209
Startable:              selfconfig_autocreated1                   CXP102051/18_R23BM    L13A (C13.0-EP7)
210
Loaded:                 selfconfig_autocreated1                   CXP102051/18_R23BM    L13A (C13.0-EP7)
211 1 lynxis
Executing:              selfconfig_autocreated1                   CXP102051/18_R23BM    L13A (C13.0-EP7)
212 5 lynxis
Last created:           selfconfig_autocreated1                   CXP102051/18_R23BM    L13A (C13.0-EP7)
213
-------------------------------------------------------------------------------------------------------------------
214
[...]
215
</pre>
216
217 7 lynxis
h3. Cleanup old states
218 5 lynxis
219
The DUL doesn't support a factory reset method other than installing the software from the scratch using the Recovery method.
220
The following howto cleans up most of the old state.
221
222
<pre>
223
# load full mom tree
224
lt all
225
226
# do not ask for confirmation
227
uv del_confirmation=0
228
uv bldebset_confirmation=0
229
230
bl IpSystem=1,IpSec
231
del IpSystem=1,IpSec
232
233
# returns errors if no ntp is defined
234
acc ManagedElementData=1 deleteNtpThird
235
acc ManagedElementData=1 deleteNtpSecondary
236
acc ManagedElementData=1 deleteNtpPrimary
237
238
# remove all cells
239
rdel ENodeBFunction=1,EUtranCellFDD
240
rdel ENodeBFunction=1,Cdma2000Network
241
rdel ENodeBFunction=1,GeraNetwork
242
rdel ENodeBFunction=1,UtraNetwork
243
244
# clear old MO from EnodeBFunction to recreate the refMos
245
set ENodeBFunction=1 upIpAccessHostRef
246
set ENodeBFunction=1 sctpRef
247
248
del TransportNetwork=1,Sctp=1
249
250
# clean up synchronizsation
251
set TimingUnit gpsOutEnabled false
252
# get a list of activated synchronisations
253
get Synchronization=1
254
# remove all entries with `syncReference =`
255
accn Synchronization=1 removeSyncRefResource IpSystem=1,IpAccessHostEt=1,IpSyncRef=1
256
accn Synchronization=1 removeSyncRefResource Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,TimingUnit=1,TuSyncRef=1
257
del TuSyncRef
258
del IpSyncRef
259
260
# remove remaining Ip Mo
261
del IpSystem=1,IpAccessSctp
262
del IpSystem=1,IpAccessHostEt
263
264
# ensure the NodeIp is set to 169.254.1.10
265
get IpOam=1,Ip=1,EthernetLink=1
266
# check ipv4Addresses => 169.254.1.10 prefix = 16
267
# if not, set it
268
# ensure the nodeInterfaceName is set to le0
269
get IpOam=1,Ip=1 nodeInterfaceName
270
set IpOam=1,Ip=1 nodeInterfaceName le0
271
# The IP now changing. exit moshell and reconnect.
272
273
del IpOam=1,Ip=1,IpHostLink
274
del Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterface
275
del Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1
276
# clean up the equipment
277
del ENodeBFunction=1,SectorCarrier
278
bl SectorEquipmentFunction
279
del SectorEquipmentFunction
280
rdel Equipment=1,AntennaUnitGroup
281
282
# remove all connection of the DUL CPRI ports
283
get Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,RiPort remoteRiPortRef
284
set Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,RiPort remoteRiPortRef
285
286
# check for RRUS
287
lpr Equipment=1,AuxPlugInUnit
288
# if only RUS/RRUS appear, remove them
289
rdel Equipment=1,AuxPlugInUnit
290
291
# check for RUS
292
lpr Equipment=1
293
# remove other old RUS
294
</pre>
295
296
h3. setup an empty node
297
298
**It's unsure to what the license is bound. It's expected to bound to a uniqueName or the logicalName.
299
  License issues will show up in the alarm list `al`.**
300
301
<pre>
302 8 lynxis
# load full mom tree
303
lt all
304
305
# do not ask for confirmation
306
uv del_confirmation=0
307
uv bldebset_confirmation=0
308
309 6 lynxis
set ManagedElement=1 userLabel somesite-01
310 5 lynxis
311 6 lynxis
# create network interface. PortNo defines SFP or Ethernet
312
cr Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1
313
    Attribute 1 of 3, dscpPbitMap (sequence:structRef-DscpPbit): d
314
    Attribute 2 of 3, linkType (enumRef:LinkType):
315
    Enter one of the following integers: 0:FRONT_PORTS, 1:BACKPLANE_PORTS: 0
316
    Attribute 3 of 3, portNo (long): 2
317 5 lynxis
318 6 lynxis
cr Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterface=1
319
    Attribute 1 of 2, networkPrefixLength (long): 24
320
    Attribute 2 of 2, defaultRouter0 (string): 10.23.0.1
321
    Following attributes are optional. Enter attribute value or "d" for default.
322
    Once the MO is created, these attributes cannot be changed (they are restricted).
323
    Attribute 1 of 5, ownIpAddressActive (string): d
324
    Attribute 2 of 5, ownIpAddressPassive (string): d
325
    Attribute 3 of 5, rps (boolean): false
326
    Attribute 4 of 5, vlanRef (moRef:ManagedObject):
327
        Enter mo LDN:
328
    Attribute 5 of 5, mtu (long): 1500
329 5 lynxis
330 6 lynxis
# set OAM IP
331
cr Ip=1,IpHostLink=1
332
    Attribute 1 of 1, ipInterfaceMoRef (moRef:ManagedObject):
333
    Enter mo LDN: Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterface=1
334
set Ip=1,IpHostLink=1 ipv4Addresses 10.23.0.199
335 5 lynxis
336 6 lynxis
# set eNodeB IP
337
cr IpSystem=1,IpAccessHostEt=1
338
    Attribute 1 of 2, ipAddress (string): 10.23.0.198
339
    Attribute 2 of 2, ipInterfaceMoRef (moRef:ManagedObject):
340
       Enter mo LDN: Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterface=1
341
    Following attributes are optional. Enter attribute value or "d" for default.
342
    Once the MO is created, these attributes cannot be changed (they are restricted).
343
    Attribute 1 of 1, networkPrefixLength (long): 24
344 5 lynxis
345 6 lynxis
cr IpSystem=1,IpAccessSctp=1
346
    Attribute 1 of 1, ipAccessHostEtRef1 (moRef:IpAccessHostEt):
347 5 lynxis
       Enter mo LDN: IpSystem=1,IpAccessHostEt=1
348
349 6 lynxis
350
# ntp settings
351
accn ManagedElementData createNtpPrimary 10.23.0.2 16 1024 true true
352 5 lynxis
accn ManagedElementData createNtpSecondary 10.23.0.3 16 1024 true true
353 1 lynxis
354 8 lynxis
# optional allow ntp sync for clock ref with low priority
355 6 lynxis
cr IpSystem=1,IpAccessHostEt=1,IpSyncRef=1
356
    Following attributes are optional. Enter attribute value or "d" for default.
357
    Once the MO is created, these attributes cannot be changed (they are restricted).
358
    Attribute 1 of 1, ntpServerIpAddress (string): 10.23.0.2
359 5 lynxis
360 6 lynxis
cr IpSystem=1,IpAccessHostEt=1,IpSyncRef=2
361
    Following attributes are optional. Enter attribute value or "d" for default.
362
    Once the MO is created, these attributes cannot be changed (they are restricted).
363
    Attribute 1 of 1, ntpServerIpAddress (string): 10.23.0.3
364
accn Synchronization=1 addSyncRefResource IpSystem=1,IpAccessHostEt=1,IpSyncRef=1 3
365
accn Synchronization=1 addSyncRefResource IpSystem=1,IpAccessHostEt=1,IpSyncRef=2 4
366
deb IpSystem=1,IpAccessHostEt=1,IpSyncRef=1
367 5 lynxis
deb IpSystem=1,IpAccessHostEt=1,IpSyncRef=2
368 6 lynxis
369
# only GPS or external clock can be used.
370
## external clock sync (untested). See `mom TuSyncRef` for more info about Tu
371
# cr Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,TimingUnit=1,TuSyncRef=1
372
# accn Synchronization=1 addSyncRefResource Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,TimingUnit=1,TuSyncRef=1 1
373 1 lynxis
# deb Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,TimingUnit=1,TuSyncRef=2
374 5 lynxis
375 8 lynxis
# gps sync with high priority
376 6 lynxis
cr Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,TimingUnit=1,TuSyncRef=2
377
accn Synchronization=1 addSyncRefResource Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,TimingUnit=1,TuSyncRef=2 2
378
deb Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,TimingUnit=1,TuSyncRef=2
379 5 lynxis
380
381 6 lynxis
# create sctp nodes
382
cr TransportNetwork=1,Sctp=1
383
    Attribute 1 of 2, numberOfAssociations (long): 10
384
    Attribute 2 of 2, rpuId (moRef:ReliableProgramUniter):
385
       Enter mo LDN: ReliableProgramUniter=sctp_host
386
set TransportNetwork=1,Sctp=1 ipAccessSctpRef IpSystem=1,IpAccessSctp=1
387 5 lynxis
388 6 lynxis
# setup ENodeBFunction
389
# there might be old values
390
get ENodeBFunction
391 5 lynxis
392 6 lynxis
# part of Cell Global Identity
393
set ENodeBFunction=1 eNBId 2342
394
set ENodeBFunction=1 sctpRef TransportNetwork=1,Sctp=1
395
set ENodeBFunction=1 eNodeBPlmnId mcc=901,mnc=70,mncLength=2
396
set ENodeBFunction=1 upIpAccessHostRef IpSystem=1,IpAccessHostEt=1
397 5 lynxis
398 6 lynxis
# s1 link
399
cr ENodeBFunction=1,TermPointToMme=1
400
# a second ip can be also set or an domainName
401
set ENodeBFunction=1,TermPointToMme=1 ipAddress1 10.23.0.2
402
deb ENodeBFunction=1,TermPointToMme=1
403 5 lynxis
404 6 lynxis
# setup the hardware equipment
405
# create a subrack
406
cr Equipment=1,RbsSubrack=1
407
    Following attributes are optional. Enter attribute value or "d" for default.
408
    Once the MO is created, these attributes cannot be changed (they are restricted).
409
    Attribute 1 of 1, noOfSlots (long): d
410 5 lynxis
411 6 lynxis
# should not be needed, this SwAllocation should be already present
412
get SwManagement=1,SwAllocation=RBS_RU
413
# cr SwManagement=1,SwAllocation=RBS_RU
414
# accn SwManagement=1,SwAllocation=RBS_RU addRepertoire SwManagement=1,Repertoire=LTE_RBS_RU
415 5 lynxis
416 6 lynxis
# the dul needs to support this specific RUS/RRUS. Take a look on the installed RUS/RRUS productNumber
417
# in this case KRC11875
418
# check if this RUS is supported
419
lpr KRC11875
420
# SwManagement=1,PiuType=KRC11875/1_*
421
# should return a MO, this MO is required when adding a new antenna setup
422
cr Equipment=1,RbsSubrack=1,RbsSlot=1,AuxPlugInUnit=1
423
    Attribute 1 of 1, piuType (moRef:PiuType):
424
    Enter mo LDN: PiuType=KRC11875/1_*
425 5 lynxis
426 6 lynxis
# connect the RUS Data 1 port to the DUL RiPort A
427
set Equipment=1,RbsSubrack=1,RbsSlot=1,AuxPlugInUnit=1,RiPort=DATA_1 remoteRiPortRef Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,RiPort=A
428 5 lynxis
429 6 lynxis
# create antennagroup
430
cr Equipment=1,AntennaUnitGroup=1
431 5 lynxis
432 6 lynxis
cr Equipment=1,AntennaUnitGroup=1,RfBranch=1
433
    Attribute 1 of 2, dlAttenuation (sequence:long):
434
    Enter value or sequence of values, separated by ,: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
435
    Attribute 2 of 2, ulAttenuation (sequence:long):
436
    Enter value or sequence of values, separated by ,: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
437
cr Equipment=1,AntennaUnitGroup=1,RfBranch=2
438
    Attribute 1 of 2, dlAttenuation (sequence:long):
439
    Enter value or sequence of values, separated by ,: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
440
    Attribute 2 of 2, ulAttenuation (sequence:long):
441
    Enter value or sequence of values, separated by ,: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
442
cr Equipment=1,AntennaUnitGroup=1,AntennaUnit=1
443 5 lynxis
444 6 lynxis
# connect the Antenna with the RUS
445
set Equipment=1,AntennaUnitGroup=1,RfBranch=1 rfPortRef Equipment=1,RbsSubrack=1,RbsSlot=1,AuxPlugInUnit=1,DeviceGroup=ru,RfPort=A
446
set Equipment=1,AntennaUnitGroup=1,RfBranch=2 rfPortRef Equipment=1,RbsSubrack=1,RbsSlot=1,AuxPlugInUnit=1,DeviceGroup=ru,RfPort=b
447 5 lynxis
448 6 lynxis
# unblock the RUS
449
deb Equipment=1,RbsSubrack=1,RbsSlot=1,AuxPlugInUnit=1,DeviceGroup=ru,RfPort=A
450 5 lynxis
451 6 lynxis
# create sectorequipment function
452
cr SectorEquipmentFunction=1
453
# on older setup this is in W, on newer this is in mW ###
454
# use mom SectorEquipmentFunction configuredOutputPower to know it#
455
set SectorEquipmentFunction=1 confOutputPower 20
456 5 lynxis
457 6 lynxis
# connect Sector Function to the antenna
458
set SectorEquipmentFunction rfBranchRef Equipment=1,AntennaUnitGroup=1,RfBranch=1
459 5 lynxis
460 6 lynxis
cr ENodeBFunction=1,SectorCarrier=1
461
    Attribute 1 of 1, sectorFunctionRef (moRef:SectorEquipmentFunction):
462
    Enter mo LDN: SectorEquipmentFunction=1
463
set ENodeBFunction=1,SectorCarrier=1 noOfRxAntennas 1
464
set ENodeBFunction=1,SectorCarrier=1 noOfTxAntennas 1
465 5 lynxis
466 6 lynxis
# create cell
467
cr ENodeBFunction=1,EUtranCellFDD=1
468
    Attribute 1 of 6, earfcndl (long): 300
469
    Attribute 2 of 6, earfcnul (long): 18300
470
    Attribute 3 of 6, cellId (long): 1
471
    Attribute 4 of 6, physicalLayerCellIdGroup (long): 1
472
    Attribute 5 of 6, physicalLayerSubCellId (long): 1
473
    Attribute 6 of 6, tac (long): 1
474
    Following attributes are optional. Enter attribute value or "d" for default.
475
    Once the MO is created, these attributes cannot be changed (they are restricted).
476
    Attribute 1 of 5, sectorCarrierRef (sequence:moRef-SectorCarrier):
477
       Enter LDN, or sequence of LDNs (separated by spaces): ENodeBFunction=1,SectorCarrier=1
478
    Attribute 2 of 5, dlChannelBandwidth (long): d
479
    Attribute 3 of 5, ulChannelBandwidth (long): d
480
    Attribute 4 of 5, additionalPlmnList (sequence:structRef-PlmnIdentity): d
481
    Attribute 5 of 5, additionalPlmnReservedList (sequence:boolean):
482
       Enter value or sequence of values, separated by ,: d
483 5 lynxis
484 6 lynxis
# Check the status of all nodes
485
st
486
# most of the MO should be unlocked and enabled.
487
# ensure all important nodes are unlocked
488
ldeb ENodeBFunction=1,EUtranCellFDD=1
489
ldeb ENodeBFunction=1,TermPointToMme=1
490
ldeb SectorEquipmentFunction=1
491
ldeb Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1
492
ldeb Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,TimingUnit=1,TuSyncRef=2
493
ldeb Equipment=1,RbsSubrack=1,RbsSlot=1,AuxPlugInUnit=1
494 5 lynxis
495 6 lynxis
# finally create a new configuration version otherwise everything is lost after a restart
496
cvms singlecell moshell
497 5 lynxis
</pre>
Add picture from clipboard (Maximum size: 48.8 MB)