You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Introduction:

The current createNetworkACL API supports the protocol parameter with values TCP,UDP and ICMP string.

Using this feature we can pass either protocol string or integer to the proto parameter.

API (createNetworkACL):

The current network acl API is taking mandatory protocol field string to configure the network acl.

With this new requirement the protocol parameter accepts both protocol strings and protocol numbers. The values can be protocol names like   TCP/UDP/ICMP strings or any valid protocol number.

Validation:

Cloudstack validates the passed protocol numbers with the list of supported protocol numbers. If invalid protocol number is passed then cloudstack throws error saying 'invalid protocol is passed'

Cloudstack API/Service layer should maintain mapping of protocol string and protocol number information and vise versa . Along with this cloudstack API/Service layer maintains can  protocol takes ports.

UI changes:

Currently in UI protocol field is drop down box.

With new requirement the protocol field will be text box, it takes the either protocol name or number as string argument.

While displaying the network acls UI should display protocol and protocol number as example below.

TCP(6), UDP(17)

It is better if UI validates the protocol name and protocol numbers in the UI also.

Supported Protocols:

The below list of protocols are supported.

  • AH (51) Authentication Header over IP or IPSec
  • ESP (50) Encapsulating Security Payload over IP or IPSec
  • GRE (47) Generic Routing Encapsulation for tunneling
  • IL (40) Originally developed as transport layer for 9P
  • SCTP (132)  Stream Control Transmission Protocol
  • TCP (6) Transmission Control Protocol
  • UDP (17) User Datagram Protocol
  • DCCP (33) Datagram Congestion Control Protocol

        ICMP (1) Internet Control Message Protocol

Backend chagnes:

The existing back end scripts should work with the protocol name or protocol number if we pass protocol as string.

There is no back end script changes are required for this requirement

Upgrade: 

There are no upgrade changes.

Reference:

http://en.wikipedia.org/wiki/List_of_network_protocols_%28OSI_model%29#Layer_3.2B4_protocol_suites

http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml

  • No labels