IPWorks EDA CLI Interface

Contents

1Introduction
1.1Prerequisites
1.2Related Information

2

Interface Overview
2.1Interface Role
2.2Services
2.3Encapsulation and Addressing

3

Procedures
3.1EnumDnSched Object
3.2EnumDnRange Object
3.3AAANSDUser Object

4

Error Handling
4.1Authentication and Access Control Errors
4.2Network Errors
4.3General Errors
4.4Enumdnsched Related Errors
4.5EnumDnRange Related Errors
4.6AAANSDUser Related Errors

5

Security Considerations

6

Use Examples
6.1Example for CLI Login
6.2Example for ENUM Records EnumDnSched in IMS
6.3Example for ENUM Records EnumDnRange in IMS

7

Information Model

8

Formal Syntax

9

Related Standards

Reference List

1   Introduction

This document describes the interface between the IPWorks and the Ericsson Dynamic Activation (EDA) by using the Command-Line Interface (CLI) and specifies the behavior of the IPWorks CLI for EDA and the expected command results described in the following document:

For a complete list of supported commands in the IPWorks CLI interface, see Command Line Interface User Guide for IPWorks SS.

Scope

This document focuses on the most commonly used CLI commands issued through the EDA within the IMS and MPBN solution. It mainly discusses the ENUM resource record EnumDnSched and EnumDnRange. These two records are the only records provisioned by EDA for now.

It is the IPWorks that offers this interface IPWorks EDA CLI Interface-Offered to EDA.

Document Structure

This document covers the following topics:

Target Groups

This document is intended for personnel who need to understand the logical entity, including interfaces and protocols, of the IPWorks and EDA.

1.1   Prerequisites

1.1.1   Documents

Ensure that the following documents have been read:

1.2   Related Information

Trademark information, typographic conventions, definition, and explanation of acronyms and terminology can be found in the following documents:

2   Interface Overview

This section describes the CLI interface between the IPWorks and the EDA as shown in below Figure.

Figure 1   Interface between EDA and IPWorks

2.1   Interface Role

This section describes the role of the CLI in IPWorks as follows:

For features that CLI support, refer to Command Line Interface User Guide for IPWorks SS.

For some configuration examples, refer to Configure DNS and ENUM.

2.2   Services

This section describes the services the CLI offers and uses in IPWorks and EDA.

2.2.1   Login and Logout

2.2.1.1   Login

To log in to IPWorks CLI, under cluster storage server environment, we recommend that you use ssh to execute ipwcli application:

#ssh ipworks@192.168.1.5 ipwcli

Specify the ssh host IP as the virtual IP of the cluster storage server. In this command example, 192.168.1.5 is the virtual IP and ipworks is the user account for the Linux machines where the IPWorks cluster storage server runs.

Note:  
To use the command ssh ipworks@192.168.1.5 ipwcli, some environments need to be set on the target machine. See an example as follows:

# vi /root/.bashrc

Add the following line

source /opt/ipworks/common/env/setup_env.sh >/dev/null 2>&1


Command output:

Password:

IPWorks> Login:admin

IPWorks> Password:********

Login to server successful.

<Previous login information text>

IPWorks>

TIP: The string <Previous login information text> is a variable text and display different information to the user according to the last login status. For example:

Change 192.168.1.5 to the actual virtual IP of the cluster storage server, issuing command results in authentication challenge from IPWorks CLI after EDA has provided the password for the Linux OS user account first. A valid username and password combination is required to successfully log into CLI. The default CLI prompt is IPWorks>.

Note:  
The maximum number of ipwcli session logins is 5.

2.2.1.2   Logout

To log out of IPWorks CLI, EDA only needs to exit the IPWorks CLI once, the ssh connection can automatically terminated. If telnet method is still to be used, it is necessary for EDA to log out twice, one for IPWorks CLI and the other one for telnet session.

2.2.2   CLI Commands

This section introduces the IPWorks CLI commands for SS.

2.2.2.1   Create

Create an object. If an object is a prerequisite object for the object to-be-created, the object must be created first.

Summary:

Create an object.

Syntax:

Create class [keys]

Parameters:

Class

Specifies the class of the new object

Keys

Specifies the key value(s) of the new object (if known)

Qualifiers:

add

Indicates the values to assign to fields as part of the create. Both the field and value are specified in the qualifier value - in the form of an assignment expression (separating them with the equals '=' character). If there are multiple values, they can be separated by the comma ',' character. You can specify multiple fields by repeating the qualifier or by separating field assignments with the semicolon ';' character (e.g.: -add field1=val1,val2;field2=val3).

commit

Determines when transactions are committed. See HELP TRANSACTIONS for more information. (Once, PerObject, Manual)

fields

The fields to prompt for - defaults to fields in the prompt fieldlist. See HELP FIELDLISTS for more information.

load

Indicates the fields whose values should be loaded from an external file as part of the update. Both the field and filename are specified in the qualifier value - in the form of an assignment expression (separating them with the equals '=' character). You can specify multiple fields by repeating the qualifier or by separating field assignments with the semicolon ';' character (e.g.: -load field1=file1;field2=file2).

preserve

Execute the command without changing the current workset.

set

Indicates the values to be assigned to fields as part of the update. This is the same as the -add qualifier.

Global Qualifiers:

output

Output is written to the specified file.

append

If specified with -output qualifier, then output is appended to file instead of overwriting it.

echo

If specified with -output qualifier, then output continues to be directed to its current location(s) as well as to the specified file.

quiet

All output is suppressed. (On, Off)

stacktrace

Stacktraces are displayed for errors. (On, Off)

verbose

Additional output is displayed. (On, Off)

width

Character width of console used for text wrapping.

pagesize

Number of lines on the console used for paging output. When set to 0 (the default), no paging is performed.

timer

Execution of the command is timed. (On, Off)

preferences

Specifies preferences to use only for a single command.

2.2.2.2   Delete

The delete command is used to delete one or more objects that have been created. The list of class objects on which the delete operation can be performed is the same as for create.

Summary:

Delete one (or more) objects

Syntax:

delete [workset]

Parameters:

workset

Specifies the object(s) to operate on: see HELP WORKSET for more information

Qualifiers:

commit

Determines when transactions are committed. See HELP TRANSACTIONS for more information. (Once, PerObject, Manual)

dbfrom

The index of the first object from the objects matching the selection criteria to include in the selection. This is only used if other selection criteria is specified, and defaults to 1 (the first object).

dbto

The index of the last object from the objects matching the selection criteria to include in the selection. This is only used if other selection criteria is specified, and defaults to -1 (the last object).

for

The object used as the source for relationship selections. You must specify both the class of the object and the key value(s), separated by the colon(':') character (e.g.: class:key1:key2).

from

The index of the first object in the workset to operate on. If not specified, it defaults to 1 (the first object).

preserve

Execute the command without changing the current workset.

related

The relationship that should be used to find related objects. This is used with the -for qualifier, or if one is not specified, it finds all related objects for the current workset.

sort

The field(s) used to sort the objects in the workset. You can append a '+' or '-' character to the field name to indicate ascending or descending sort order; ascending is the default.

source

The source of the object(s) for the operation. This should only be specified when you want to work with dynamic objects. For dynamic resource records, it is the name of the zone that contains the records.

subset

If specified, the search criteria is only applied to objects in the current working set, so that the new workset is a subset of the current workset.

to

The index of the last object in the workset to operate on. If not specified, it defaults to -1 (the last object).

where

Search filter for selecting objects based on field values: see HELP FILTER for details.

Global Qualifiers:

Refer to Global Qualifiers.

2.2.2.3   List

The list command is used to search and display one or more objects that have already been created. It is mainly used to verify if the previous commands are executed successfully.

Summary:

Display one (or more) objects.

Syntax:

list [workset]

Parameters:

workset

Specifies the object(s) to display: see HELP WORKSET for more information

Qualifiers:

dbfrom

The index of the first object from the objects matching the selection criteria to include in the selection. This is only used if other selection criteria is specified, and defaults to 1 (the first object).

dbto

The index of the last object from the objects matching the selection criteria to include in the selection. This is only used if other selection criteria is specified, and defaults to -1 (the last object).

fields

The fields to display - defaults to fields in the baseline fieldlist (see HELP FIELDLISTS).

for

The object used as the source for relationship selections. You must specify both the class of the object and the key value(s), separated by the colon(':') character (e.g: class:key1:key2).

format

The format used to display the output.

from

The index of the first object in the workset to operate on. If not specified, it defaults to 1 (the first object).

preserve

Execute the command without changing the current workset.

related

The relationship that should be used to find related objects. This is used with the -for qualifier, or if one is not specified, it finds all related objects for the current workset.

sort

The field(s) used to sort the objects in the workset. You can append a '+' or '-' character to the field name to indicate ascending or descending sort order; ascending is the default.

source

The source of the object(s) for the operation. This should only be specified when you want to work with dynamic objects. For dynamic resource records it is the name of the zone that contains the records.

subset

If specified, the search criteria is only applied to objects in the current working set, so that the new workset is a subset of the current workset.

to

The index of the last object in the workset to operate on. If not specified, it defaults to -1 (the last object).

Global Qualifiers:

Refer to Global Qualifiers.

2.2.2.4   Modify

The modify command is issued to update the field values for one or more existing objects.

Summary:

Modify one (or more) objects.

Syntax:

modify [workset]

Parameters:

workset

Specifies the object(s) to operate on: see HELP WORKSET for more information

Qualifiers:

add

Indicates the values to be added to fields as part of the update. Both the field and value are specified in the qualifier value - in the form of an assignment expression (separating them with the equals '=' character). If there are multiple values, they can be separated by the comma ',' character. You can specify multiple fields by repeating the qualifier or by separating field assignments with the semicolon ';' character (e.g.: -add field1=val1,val2;field2=val3).

commit

Determines when transactions are committed. See HELP TRANSACTIONS for more information. (Once, PerObject, Manual)

dbfrom

The index of the first object from the objects matching the selection criteria to include in the selection. This is only used if other selection criteria is specified, and defaults to 1 (the first object).

dbto

The index of the last object from the objects matching the selection criteria to include in the selection. This is only used if other selection criteria is specified, and defaults to -1 (the last object).

edit

Specifies an edit (or set of edits) to apply to a single

field

Multiple fields can be edited by specifying the qualifier more than once. For the syntax of an edit command, see HELP EDITING.

fields

The fields to prompt for - defaults to fields in the prompt fieldlist. See HELP FIELDLISTS for more information.

for

The object used as the source for relationship selections. You must specify both the class of the object and the key value(s), separated by the colon(':') character (e.g: class:key1:key2).

from

The index of the first object in the workset to operate on. If not specified, it defaults to 1 (the first object).

load

Indicates the fields whose values should be loaded from an external file as part of the update. Both the field and filename are specified in the qualifier value - in the form of an assignment expression (separating them with the equals '=' character). You can specify multiple fields by repeating the qualifier or by separating field assignments with the semicolon ';' character (e.g.: -load field1=file1;field2=file2).

preserve

Execute the command without changing the current workset.

related

The relationship that should be used to find related objects. This is used with the -for qualifier, or if one is not specified, it finds all related objects for the current workset.

remove

Indicates the values to be removed from fields as part of the update. See the add qualifier for details on how to specify values.

set

Indicates the values to be assigned to fields as part of the update. See the add qualifier for details on how to specify assigned values.

sort

The field(s) used to sort the objects in the workset. You can append a '+' or '-' character to the field name to indicate ascending or descending sort order; ascending is the default.

source

The source of the object(s) for the operation. This should only be specified when you want to work with dynamic objects. For dynamic resource records, it is the name of the zone that contains the records.

subset

If specified, the search criteria is only applied to objects in the current working set, so that the new workset is a subset of the current workset.

to

The index of the last object in the workset to operate on. If not specified, it defaults to -1 (the last object).

where

Search filter for selecting objects based on field values: see HELP FILTER for details.

Global Qualifiers:

Refer to Global Qualifiers.

2.3   Encapsulation and Addressing

SSH is used in this interface.

3   Procedures

This section describes the procedures used in connection with the offered and used interfaces of the IPWorks and the EDA.

An Overview displays below:

Figure 2   Connection with the offered and used interfaces of the IPWorks and the EDA

3.1   EnumDnSched Object

In IMS solution EDA can be used to provision EnumDnSched resource records into IPWorks. All other objects are created through any other possible methods.

To create an EnumDnSched resource record, a valid matching enumzone must already be existed. For detailed EnumDnSched object parameters, see IPWorks DNS, ASDNS, ENUM Parameter Description.

Create

The mandatory fields required to create the EnumDnSched resource record includes: enumDn, naptrFlags, naptrOrder, naptrPreference, and naptrTxt. Not like NAPTR resource resource record, the enumDn field of EnumDnSched does not support wildcard character. The syntax for creating an EnumDnSched resource record with reverse dotted notation is as follows:

Delete

The syntax for deleting a specific EnumDnSched resource record is as follows:

List

To check whether the corresponding resource record has been stored in IPWorks or not, the List command could be used. EDA performs a list operation prior to every create, set, or delete operation on the EnumDnSched record. The syntax for listing a specific EnumDnSched resource record is as follows:

Modify

The syntax for modifying a specific EnumDnSched resource record is as follows:

3.2   EnumDnRange Object

In IMS solution EDA could be used to provision EnumDnRange resource records into IPWorks to implement ENUM wildcard function, which uses a wildcard expression to represent a number series. To create an EnumDnRange resource record, a valid matching enumzone must already be existed. For detailed EnumDnRange object parameters, see IPWorks DNS, ASDNS, ENUM Parameter Description.

Create

The mandatory fields required to create the EnumDnRange resource record includes: naptrFlags, naptrOrder, naptrPreference, and naptrTxt. The syntax for creating an EnumDnRange resource record supporting wildcard with reverse dotted notation is as follows, such as Enum wildcard record *.5.6.7.8.e164.iptelco.com:

Delete

The syntax for deleting a specific EnumDnRange resource record is as follows:

List

To check whether the corresponding resource record has been stored in IPWorks or not, the List command could be used. EDA performs a list operation prior to each create, set, or delete operation on the EnumDnRange record. The syntax for listing a specific EnumDnRange resource record is as follows:

Modify

The syntax for modifying a specific EnumDnRange resource record is as follows:

3.3   AAANSDUser Object

EDA could be used to provision AAANSDUser records into the IPWorks. For detailed AAANSDUser object parameters, refer to IPWorks AAA Parameter Description.

3.3.1   Create

The syntax for creating an AAANSDUser record is as follows:

IPWorks> create AAANSDUser -set name=<username>; password=<password>;IMSI=<imsi>;MSISDN=<msisdn>;APN=”<apnlist>”;userStatus=<disable|enable>;Certificateissuername=<Client Certificate Issuer>;certificateid=<Client Certificate Serial Number>

Example:

IPWorks> create AAANSDUser -set name=240994004097@nai.epc.mnc015.mcc234.3gppnetwork.org;password="54654";IMSI=240994004095;MSISDN=13739944240;APN="example-apn1,server.alibaba,mail.com.org";userStatus=enable;Certificateissuername="C=AU,ST=Some-State,O=Internet Widgits Pty Ltd, CN=CA";certificateid="01"

3.3.2   Delete

The syntax for deleting an AAANSDUser from the IPWorks is as follows:

IPWorks> delete AAANSDUser <username>

Example:

IPWorks> delete aaansduser username001

3.3.3   List

The syntax for listing AAANSDUser in IPWorks are as follows:

3.3.4   Modify

The syntax for modifying an AAANSDUser in IPWorks is as follows:

IPWorks> modify AAANSDUser <username> -set [name=<username>][password=<password>][IMSI=<imsi>][MSISDN=<msisdn>][APN=”<apnlist>”][userStatus=<disable|enable>][Certificateissuername=<Client Certificate Issuer>][certificateid=<Client Certificate Serial Number>]

Example:

4   Error Handling

IPWorks issues the following error messages relevant to CLI interface use from EDA to IPWorks.

4.1   Authentication and Access Control Errors

4.2   Network Errors

4.3   General Errors

4.4   Enumdnsched Related Errors

4.5   EnumDnRange Related Errors

4.6   AAANSDUser Related Errors

5   Security Considerations

EDA uses SSH protocol to log into IPWorks Storage Server machine and initiates a CLI session automatically via executing command like:

#ssh ipworks@192.168.1.5 ipwcli

6   Use Examples

The following CLI screen snapshot shows in detail the various CLI commands that are issued by EDA and the responses that are generated.

Note:  
Only some failure scenarios are shown.

6.1   Example for CLI Login

The first login is successful:

IPWorks> Login:admin

IPWorks> Password:********

Login to server successful.

Welcome to Storage Server!

IPWorks>

The previous login is successful:

IPWorks> Login:admin

IPWorks> Password:********

Login to server successful.

The previous successful login time of this use is 2010-11-25 12:14:59, and logout time is 2010-11-25 12:15:19

IPWorks>

The previous login is failed:

IPWorks> Login:admin

IPWorks> Password:********

Login to server successful.

There have been 1 Failed Login Attempts since this user previous successful login.

IPWorks>

Failed login:

IPWorks> Login:admin

IPWorks> Password:*******

Access Denied: Invalid username or password

IPWorks>

IPWorks> Login:

IPWorks> Login:#

6.2   Example for ENUM Records EnumDnSched in IMS

IPWorks> create enumdnsched 8.4.3.0.5.1.6.4.e164.arpa -set naptrflags="nu";naptrorder=10;naptrpreference=100;naptrservice="E2U+sip";naptrtxt="!^.*$!sip:46150348@example.com!"

1 object(s) created.

IPWorks> list enumdnsched 8.4.3.0.5.1.6.4.e164.arpa

[EnumDnSched 1 46150348]
enumDn: 46150348
enumZoneId: 1
propBlocking: 0
naptrOrder: 10
naptrPreference: 100
naptrService: E2U+sip
naptrFlags: nu
naptrTxt: !^.*$!sip: 46150348@example.com!
naptrOrder2: 10
naptrPreference2: 101
naptrService2: E2U+sip
naptrFlags2: nu
naptrTxt2: !^.*$!sip: second@example.com!

IPWorks> list enumdnsched 1.2.3.4.5.6.e164.arpa

No matching object(s) found.

IPWorks> modify enumdnsched 8.4.3.0.5.1.6.4.e164.arpa -set naptrFlags=”nu”;naptrTxt=”!^.*$!sip:newvalue@example.com!” -where naptrPreference=101

Working on 1 object(s).

1 object(s) were updated.

IPWorks> list enumdnsched 8.4.3.0.5.1.6.4.e164.arpa

[EnumDnSched 1 46150348]
enumDn: 46150348
enumZoneId: 1
propBlocking: 0
naptrOrder: 10
naptrPreference: 100
naptrService: E2U+sip
naptrFlags: nu
naptrTxt: !^.*$!sip: 46150348@example.com!
naptrOrder2: 10
naptrPreference2: 101
naptrService2: E2U+sip
naptrFlags2: nu
naptrTxt2: !^.*$!sip:newvalue@example.com!

IPWorks> delete enumdnsched 8.4.3.0.5.1.6.4.e164.arpa -where naptrPreference=101

Working on 1 object(s).

1 object(s) were updated.

IPWorks> modify enumdnsched 8.4.3.0.5.1.6.4.e164.arpa -set naptrFlags="nu";naptrTxt="!^.*$!sip:newvalue@example.com!"

Working on 1 object(s).

1 object(s) were updated.

IPWorks> list enumdnsched 8.4.3.0.5.1.6.4.e164.arpa

[EnumDnSched 1 46150348]
enumDn: 46150348
enumZoneId: 1
propBlocking: 0
naptrOrder: 10
naptrPreference: 100
naptrService: E2U+sip
naptrFlags: nu
naptrTxt: !^.*$!sip:newvalue@example.com!

6.3   Example for ENUM Records EnumDnRange in IMS

IPWorks> create enumdnrange 7.8.e164.iptelco.com -set naptrorder=10;naptrpreference=20;naptrflags=nU;naptrservice=E2U+SIP;naptrTxt=!^.*$!sip:87230000@iptelco.com!

1 object(s) created.

IPWorks> create enumdnrange 5.6.7.8.e164.iptelco.com -set naptrorder=20;naptrpreference=30;naptrflags=nU;naptrservice=E2U+SIP;naptrTxt=!^.*$!sip:87651111@iptelco.com!

1 object(s) created.

IPWorks> list enumdnrange

[EnumDNRange 1 7] 
enumZoneId: 1
viewId: 0
enumDnRange: 7
scope:
updateLevel: 0
naptrOrder: 10
naptrPreference: 20
naptrService: E2U+SIP
naptrFlags: nU
naptrTxt: !^.*$!sip:87230000@iptelco.com! 
[EnumDNRange 1 765]
enumZoneId: 1
viewId: 0
enumDnRange: 765
scope: 
updateLevel: 0
naptrOrder: 20
naptrPreference: 30 
naptrService: E2U+SIP
naptrFlags: nU 
naptrTxt: !^.*$!sip:87651111@iptelco.com!
Working on 2 object(s).

IPWorks> delete enumdnrange 7.8.e164.iptelco.com

Working on 1 object(s).

1 object(s) were updated.

IPWorks> list enumdnrange 5.6.7.8.e164.iptelco.com

[EnumDNRange 1 765] 
enumZoneId: 1
viewId: 0
enumDnRange: 765
scope: 
updateLevel: 0
naptrOrder: 30
naptrPreference: 30
naptrService: E2U+SIP
naptrFlags: nU
naptrTxt: !^.*$!sip:87651111@iptelco.com!
Working on 1 object(s).

IPWorks> list enumdnrange 5.6.7.9.e164.iptelco.com

No matching object(s) found.

IPWorks> create enumdnrange 7.9.e164.iptelco.com -set naptrorder=10;naptrpreference=20;naptrflags=nU;naptrservice=E2U+SIP;naptrTxt=!^.*$!sip:87230000@iptelco.com!;scope="001~742"

1 object(s) created.

Note:  
This example gives an option parameter “scope”. The format is minimalNumber~maximalNumber. It indicates that the object provides common information for all numbers from 97001 to 97742.

7   Information Model

Not applicable.

8   Formal Syntax

This section refers to specification where the formal syntax notation is defined. It also describes any deviations from the specification, if applicable.

For information about the formal syntax notation, see the following specification:

9   Related Standards

Not applicable.


Reference List

IPWorks Library Documents
[1] Command Line Interface User Guide for IPWorks SS.
[2] IPWorks Configuration Management.
[3] Trademark Information.
[4] Glossary of Terms and Acronyms.
[5] Typographic Conventions.
[6] IPWorks DNS, ASDNS, ENUM Parameter Description.
[7] Configure DNS and ENUM.
[8] Configure EPC AAA.


Copyright

© Ericsson AB 2015-2017. All rights reserved. No part of this document may be reproduced in any form without the written permission of the copyright owner.

Disclaimer

The contents of this document are subject to revision without notice due to continued progress in methodology, design and manufacturing. Ericsson shall have no liability for any error or damage of any kind resulting from the use of this document.

Trademark List
All trademarks mentioned herein are the property of their respective owners. These are shown in the document IPWorks Trademark Information

    IPWorks EDA CLI Interface