[ovs-discuss] [controller-dev] Add a flow with action "go to table" from OpenDayLight controller to Open vSwitch ?

Anhn Nguyen nna4888 at gmail.com
Thu Jul 24 11:10:53 UTC 2014


Thank you all for your reply. Hope that I can find something :)
@Christopher: I think TABLE in this page mentions to a logical port, not
the table in "table group".


On 23 July 2014 19:07, Rob Adams <readams at readams.net> wrote:

> Here's some code from my project that does it.  Unfortunately it's quite
> complicated.
>
> some helper methods:
>     protected FlowBuilder base() {
>         return new FlowBuilder()
>             .setTableId(getTableId())
>             .setBarrier(false)
>             .setHardTimeout(0)
>             .setIdleTimeout(0);
>     }
>
>
>     public static Instructions gotoTableInstructions(short tableId) {
>         return new InstructionsBuilder()
>         .setInstruction(ImmutableList.of(new InstructionBuilder()
>             .setOrder(Integer.valueOf(0))
>             .setInstruction(gotoTableIns(tableId))
>             .build()))
>         .build();
>     }
>     public static final InstanceIdentifier<Node>
>         createNodePath(final NodeId nodeId) {
>         return InstanceIdentifier.builder(Nodes.class)
>                 .child(Node.class, new NodeKey(nodeId))
>                 .build();
>     }
>
>     /**
>      * Creates a table path from a node ID and table ID
>      *
>      * @param nodePath
>      * @param tableKey
>      * @return
>      */
>     public static final InstanceIdentifier<Table>
>         createTablePath(final NodeId nodeId,
>                         final short tableId) {
>         return createNodePath(nodeId).builder()
>                 .augmentation(FlowCapableNode.class)
>                 .child(Table.class, new TableKey(tableId))
>                 .build();
>     }
>
>     /**
>      * Creates a path for particular flow, by appending flow-specific
> information
>      * to table path.
>      *
>      * @param table
>      * @param flowKey
>      * @return
>      */
>     public static InstanceIdentifier<Flow>
>             createFlowPath(final InstanceIdentifier<Table> table,
>                            final FlowKey flowKey) {
>         return table.child(Flow.class, flowKey);
>     }
>
>     /**
>      * Creates a path for particular flow, by appending flow-specific
> information
>      * to table path.
>      *
>      * @param table
>      * @param flowId
>      * @return
>      */
>     public static InstanceIdentifier<Flow>
>             createFlowPath(final InstanceIdentifier<Table> table,
>                            final FlowId flowId) {
>         return createFlowPath(table, new FlowKey(flowId));
>     }
>
> The actual code cobbled together from a few other helpers:
>
> ReadWriteTransaction t = ctx.dataBroker.newReadWriteTransaction();
>         InstanceIdentifier<Table> tiid =
>                 FlowUtils.createTablePath(nodeId, getTableId());
>         Optional<Table> r =
>                 t.read(LogicalDatastoreType.CONFIGURATION, tiid).get();
>
> FlowBuilder flowb = base()
>                 .setId(flowid)
>                 .setPriority(Integer.valueOf(200))
>                 .setMatch(new MatchBuilder()
>                     .setInPort(port)
>                     .build())
>
> .setInstructions(FlowUtils.gotoTableInstructions((short)(getTableId()+1)));
>             writeFlow(t, tiid, flowb.build());
> t.put(LogicalDatastoreType.CONFIGURATION,
>               FlowUtils.createFlowPath(tiid, flow.getId()),
>               flow);
>
>
>
>
> On Wed, Jul 23, 2014 at 9:56 AM, Anhn Nguyen <nna4888 at gmail.com> wrote:
>
>>     Dear all,
>>
>>     Can anyone tell me how to add a flow with action "go to table" from
>> OpenDayLight controller to Open vSwitch, instead of doing this command from
>> mininet:
>>  *sudo ovs-ofctl -O OpenFlow13 add-flow s1
>> table=0,in_port=2,actions=goto_table:1*
>>
>>   I followed this instruction
>> https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin:End_to_End_Flows#Push_your_flow but
>> there is no action as I want.
>>
>>    Thank you so much.
>>
>>     Best regards,
>>     Anhn Nguyen.
>>
>> _______________________________________________
>> controller-dev mailing list
>> controller-dev at lists.opendaylight.org
>> https://lists.opendaylight.org/mailman/listinfo/controller-dev
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20140724/ae695641/attachment-0002.html>


More information about the discuss mailing list