Protocol extensions command reference

The following table lists all the new commands added for custom protocols, and the existing commands that have been modified for custom protocols.

show lb persistentSessions [<vserv-name>]

  • CLI command:

    add user protocol <name> -transport ( TCP | SSL ) -extension <string> -comment <string>]>

  • Description:

    Adds a new user protocol to the Citrix ADC appliance by using extensions. Currently only user protocols with transport value TCP or SSL are  supported.

    Example:

    add user protocol MQTT -transport TCP -extension mqtt_code

  • CLI command:

    rm user protocol <name>

  • Description:

    Removes a user protocol previously added to the Citrix ADC appliance.

    Example:

    rm user protocol mqtt

  • CLI command:

    set user protocol <name> -comment <string>

  • Description:

    Changes settings for a user protocol previously added to the Citrix ADC appliance.

    Example:

    set user protocol mqtt -comment “MQTT protocol implementation”

  • CLI command:

    unset user protocol <name> -comment

  • Description:

    Removes settings for a user protocol previously added to the Citrix ADC appliance.

    Example:

    unset user protocol mqtt -comment “MQTT protocol implementation”

  • CLI command:

    update ns extension <extension name>

  • Description:

    Updates the implementation for a previously added user protocol by using extensions.

    You can update the protocol implementation only if the protocol is not being used by any user virtual server.

    Example:

    update ns extension my-extension

  • CLI command:

    add lb vserver <name> [USER_TCP | USER_SSL_TCP] [-lbmethod USER_TOKEN] [-persistencetype USERSESSION] [-timeout <value>]

  • Description:

    Adds a load balancing virtual server to the Citrix ADC appliance. This is an existing CLI command.

    For load balancing user virtual servers, the service type to use is USER_TCP or USER_SSL_TCP. The IP address and port are not allowed with user load balancing virtual servers.

    For user load balancing virtual servers, only the ROUNDROBIN load balancing method is allowed, and the token value is provided by the extension code. Similarly, only USERSESSION persistence is allowed, and the persistence setting is provided by the extension code.

    Example:

    add lb vserver mysv USER_TCP –lbmethod ROUNDROBIN

  • CLI command:

    add user vserver <name> <userProtocol> <IPAddress> <port> -defaultLB <string> [-params <string>] [-comment <string>]

  • Description:

    Adds a virtual server for a user protocol by using extensions. The configured default user load balancing virtual server is available to the TCP client data extension handler as ctxt.output. For a virtual server, extension parameters can be set by using the -params option with a name and a value pair. The corresponding parameter value is available to the extension handlers as ctxt.vserver.params.<paramName>.

    Example:

    add user vs v_mqtt MQTT 10.217.24.28 80 -defaultlb mysv

  • CLI command:

    rm user vserver <name>

  • Description:

    Removes a user virtual server previously added to to the Citrix ADC appliance.

    Example:

    rm user vserver v_mqtt

  • CLI command:

    set user vserver <name> [-IPAddress <ip_addr|ipv6_addr|*>] [-defaultLB <string>] [-params <string>] [-comment <string>]

  • Description:

    Changes settings for a user virtual server previously added to to the Citrix ADC appliance. When an extension parameter is assigned a new value by the -params option, the old value is overwritten.

    Example:

    set user vs v_mqtt MQTT 10.217.24.28 -defaultlb mysv -comment “MQTT protocol implementation”

  • CLI command:

    unset user vserver <name> [-params] [-comment]

  • Description:

    Removes the settings for a user virtual server previously added to to the Citrix ADC appliance. If you use the –params option to unset an extension parameter, the corresponding parameter value available to extension handlers is changed to nil.

    Example:

    unset user vs v_mqtt MQTT 10.217.24.28 -defaultlb mysv -comment “MQTT protocol implementation”

  • CLI command:

    show user protocol [<name>]

  • Description:

    Displays information about a user protocol, such as extension and callbacks.

    Example:

    show user protocol mqtt

  • CLI command:

    show user vserver [<name>]

  • Description:

    Displays information about a user virtual server.

    Example:

    show user vserver vs_mqtt

  • CLI command:

    stat user vserver [<name>]

  • Description:

    Displays statistics about a user virtual server.

    Example:

    stat user vserver vs_mqtt

  • CLI command:

    show lb persistentSessions [<vserv-name>]

  • Description:

    Displays information about persistent sessions. This is an existing CLI. For user protocols, the persistence type is shown as USERSESSION.

  • CLI command:

    rm lb vserver <name>

  • Description:

    Removes a user LB vserver previously added to the Citrix ADC appliance.

    Example:

    rm lb vserver mysv

  • CLI command:

    add service <name> <IPAddr> (USER_TCP | USER_SSL_TCP) <Port>

  • Description:

    Adds a backend service to be used for a user protocol. This is an existing CLI command with new service types USER_TCP and USER_SSL_TCP.

    Example:

    add service mqtt_svr1 10.217.24.48 USER_TCP 1501

    Note: The existing “set service and unset service” commands can be used to remove or change the settings of a previously added service for a user protocol.

  • CLI command:

    bind lb vserver <name> <serviceName>

  • Description:

    Binds a service to a user LB vserver. The service type should be USER_TCP/USER_SSL_TCP for binding to an LB vserver with type of USER_TCP/USER_SSL_TCP.

    Example:

    bind lb vserver mysv mqtt_svr1

  • CLI command:

    unbind lb vserver <name> <serviceName>

  • Description:

    Unbinds a previously bound service to a user LB vserver.

    Example:

    unbind lb vserver mysv mqtt_svr1

  • CLI command:

    rm service <name>

  • Description:

    Removes a service that is previously added for a user protocol.

    Example:

    rm service mqtt_svr1

Protocol extensions command reference