Freescale FWaaS Plugin

Launchpad blueprint:

https://blueprints.launchpad.net/neutron/+spec/freescale-fwaas-plugin

Note: This Blueprint is proposed for Neutron-FWaaS repository.

CRD (Cloud Resource Discovery) Service is designed to support Freescale silicon in data center environment. Like Neutron, it uses keystone authentication for all ReSTful calls.

Problem Description

Neutron-FWaaS Firewall information (like rules, policies and firewall) is requried by CRD service to manage Firewall deployment in virtual network appliances and openflow controller apps.

In order to send this information to CRD from neutron, a new FWaaS plugin is required.

Freescale FWaaS Plugin proxies ReSTful calls (formatted for CRD Service) from Neutron to CRD Service.

It supports the Cloud Resource Discovery (CRD) service by updating the Firewall related data (rules, policies and firewall) into the CRD database.

CRD service manages creation of firewall on network nodes, virtual network appliances and openflow controller network applications.

Proposed Change

The basic work flow is as shown below.

+-------------------------------+
|                               |
|       Neutron Service         |
|                               |
|    +--------------------------+
|    |  Neutron-FWaaS with      |
|    |  Freescale Firewall      |
|    |  Service Plugin          |
|    |                          |
+----+-----------+--------------+
                 |
                 |  ReST API
                 |
                 |
       +---------v-----------+
       |                     |
       |   CRD Service       |
       |                     |
       +---------------------+

Freescale Firewall Service plugin sends the Firewall related data to CRD server.

The plug-in implements the CRUD operation on the following entities:
  • Firewall Rules
  • Firewall Policies
  • Firewall

The plug-in uses the exisitng firewall database to store the firewall data.

The creation of firewall in network node or Virtual Network appliance or Openflow controller app is decided by CRD service.

Sequence flow of events for create_firewall is as follows:

create_firewall
{
  neutron       ->  fsl_fw_plugin
  fsl_fw_plugin ->  crd_service
  fsl_fw_plugin <-- crd_service
  neutron       <-- fsl_fw_plugin
}

Alternatives

None

Data Model Impact

Existing models are used. No new models are created.

REST API Impact

None.

IPv6 Impact

None.

Security Impact

None.

Notifications Impact

None.

Other End User Impact

None.

Performance Impact

Negligible or None

Other Deployer Impact

This change only affects deployments where neutron ‘service_plugins’ is configured with ‘fsl_firewall’, ‘core_plugin’ is ‘ml2’ and ‘ml2’ plugin is configured with ‘fslsdn’ mechanism driver.

‘fslsdn’ mechanism driver configuration is used by this service plugin to contact CRD service.

Update [DEFAULT] section of /etc/neutron/neutron.conf as,

[DEFAULT]
service_plugins = fsl_firewall
core_plugin = ml2

The following configuration changes are made to enable Freescale SDN mechanism driver.

In [ml2] section of /etc/neutron/plugins/ml2/ml2_conf.ini, modify ‘mechanism_drivers’ attributes as,

mechanism_drivers = fslsdn

Update /etc/neutron/plugins/ml2/ml2_conf_fslsdn.ini, as below.

[ml2_fslsdn]
crd_auth_strategy = keystone
crd_url = http://127.0.0.1:9797
crd_auth_url = http://127.0.0.1:5000/v2.0/
crd_tenant_name = service
crd_password = <-service-password->
crd_user_name = <-service-username->

Developer Impact

None.

Community Impact

None.

Implementation

Assignee(s)

Primary assignee:
trinath-somanchi
Other contributors:
None

Work Items

  • Freescale FWaaS Service Plugin

Dependencies

None

Testing

Tempest Tests

  • Complete unit test coverage of the code is included.
  • For tempest test coverage, third party testing is provided.
  • The Freescale CI reports on all changes affecting this Plugin.
  • The testing is run in a setup with an OpenStack deployment (devstack) connected to an active CRD server.

Functional Tests

Complete unit test coverage of the code is included.

API Tests

None.

Documentation Impact

User Documentation

Since the usage of this plugin requires ‘ml2’ as core_plugin and ‘fslsdn’ as mechanism_driver, the above detailed deployer impact will be documented.

Developer Documentation

None needed beyond documentation changes listed above.

References

None