1 of 7

l3-agent and service

discussion memo

Nachi Ueno

2 of 7

[Problem] lack of injecting functions for l3-agent

L3-agent

Iptables based

FW service

StrongSwan based

VPN Service

LBaaS ??

Multiple service is going to inject new function for Logical Router,

However we are lacking framework for injecting functions for l3-agent

3 of 7

How to implement it?

Option1 Implement function directory in the l3-agent

L3-agent

FW service code

VPN service code

LBaaS service code

Pros

Easy to implement

Simple

Cons

Hard coded so less maintainability

Hard to extend

No good seperation between parts of code dealing with seperate functionality. Service config code, RPC related code etc.

4 of 7

How to implement it?

Option2-1 Inject function using hook

L3-agent

FW Agent code

VPN Agent code

LBaaS Agent code

Register hooks

Register hooks

Register hooks

Pros

Simple

Extensible

Cons

Need to implement hooks framework for l3-agent

5 of 7

How to implement it?

Option2-2 Create service-agent and Inject function using hook

service-agent (new)

FW Agent Driver

VPN Agent Driver

LBaaS Agent Driver

Register hooks

Register hooks

Register hooks

L3 Agent Driver

Register hooks

Router name space

Pros

Simple

Extensible

Clean

Cons

Need to implement hooks framework for service-agent

L3-agent code should be driver

Service defs

6 of 7

How to implement it?

Option3 agent per service

L3-agent

FW-agent

VPN-agent

LBaaS-agent

Router name space

Pros

Simple

Extensible

Cons

Possible conflict of configuration in agent

Burden for operaters ( should manage many agents..)

Current LBaaS and VPN approach

7 of 7

Related topics

For scalability, we need scheduling.

How to manage it?

1. Extend quantum scheduler

2. Advanded scheduler

https://wiki.openstack.org/wiki/Quantum/LBaaS/Architecture/Scheduler