Enabling advanced service insertion in routed mode

Registered by Kaiwei Fan

Scope: Provide routed service insertion so tenant has the ability to plug their service to an L3 router in their networks.

Use cases: Routed service insertion is critical to some advanced services, Firewall as an example, because we need to explicitly specify where a firewall rule should be applied, such as deny telnet service from any source to any destination. Routed insertion is also a preferred service insertion mode for multi-service appliances because multiple services, which are NOT independent of each other, need to be running on the same appliance.

Implementation overview: Extend L3 router and advanced service resources to support routed service insertion. The L3 resource will be extended to support "service_type_id" attribute for a service type, which defines a list of advanced services, to be inserted to an L3 router. The advanced service, LBaaS specifically as it's the only advanced service extension available today, will be extended to support "router_id" attribute, which is the id of an L3 router to which the service will be plug into.

Data model changes: Add RouterSvcType to bind a router and a service type id, and add RoutedSvcInsertion to bind Vip, Pool, and HealthMonitor with a router id.

APIs: Add optional "service_type_id" to create L3 router API. Add optional "router_id" to create Vip, Pool, and HealthMonitor APIs.

Dependencies: Depends on service-type and lbaas extensions

Test Cases: 1. create L3 router without and without service_type_id. 2. update L3 router with and without service_type_id. 3. delete L3 router. 4. create Vip/Pool/HealthMonitor with and without router_id. 5. Update Vip/Pool/HealthMonitor with and without router_id. 6. delete Vip/Pool/HealthMonitor.

Blueprint information

Status:
Complete
Approver:
Salvatore Orlando
Priority:
Medium
Drafter:
Kaiwei Fan
Direction:
Needs approval
Assignee:
Kaiwei Fan
Definition:
Drafting
Series goal:
Accepted for grizzly
Implementation:
Implemented
Milestone target:
milestone icon 2013.1
Started by
Kaiwei Fan
Completed by
dan wendlandt

Related branches

Sprints

Whiteboard

Feb 4, 2013: Code is ready for review. Review will be submitted by end of today.

Gerrit topic: https://review.openstack.org/#q,topic:bp/routed-service-insertion,n,z

Addressed by: https://review.openstack.org/21208
    Add routed-service-insertion

Addressed by: https://review.openstack.org/21265
    Add support for extended attributes for extension resources

Gerrit topic: https://review.openstack.org/#q,topic:bp/quantum-l3-routes,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bug/1116664,n,z

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.