netplugin icon indicating copy to clipboard operation
netplugin copied to clipboard

Proposal: support openflow 1.5 for stateful flow tracking

Open rhim opened this issue 8 years ago • 1 comments

Description

Use openflow 1.5 version that allows stateful flows

rhim avatar Jul 25 '17 19:07 rhim

Initial analysis

  • Using conn_track

    • Set conntrack action_(ct_next)_ to forward packet to Netfilter's conneciton tracker which maintains the hash of the state of the connection.
    • The packet will then be resubmitted to the OVS flow table which can then be hashed to service instances based on new metadata from conntrack (conn_state bits exist to track new/established connections)
  • Using GROUP table and SELECT buckets

    • Add all service instances to SELECT bucket (only one copy is sent to the entire bucket and the weight parameter in the bucket can be utilized to determine packet distribution)
    • Set type=select,selection_method=hash,fields() for a group. This will select the same instance based on the hash of the fields tuple.
    • NOTE: This uses the Netronome extension to OpenFlow 1.5+ that allows control over the OpenFlow select groups selection method

dvavili avatar Jul 27 '17 00:07 dvavili