Ask Your Question
0

cant add mpls flow entry

asked 2014-10-01 06:26:48 -0700

ahiya gravatar image

hi im using opendaylght plugin1.3 (postman interface) and im trying to install a flow entery with the follw match fileds ethertype=0x8847 and nwSrc=10.142.10.4 the controller shows that the rull is installd ============================log================================ 2014-10-01 14:41:59.030 EET [md-sal-binding-notification-18485] INFO o.o.o.t.FlowEventListenerLoggingImpl - flow to be added..........................FlowAdded [cookie=FlowCookie [value=0], flowRef=FlowRef [value=KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node[key=NodeKey [id=Uri [value=openflow:356454673448129]]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table[key=TableKey [id=0]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow[key=FlowKey [id=Uri [value=65998009-9b67-4b13-8cfd-0827b6842291]]]]}], _hardTimeout=0, _idleTimeout=0, _instructions=Instructions{getInstruction=[Instruction{getInstruction=ApplyActionsCase{getApplyActions=ApplyActions{getAction=[Action{getAction=OutputActionCase{getOutputAction=OutputAction{getOutputNodeConnector=Uri [value=openflow:356454673448129:4], augmentations={}}, augmentations={}}, getOrder=0, augmentations={}}], augmentations={}}, augmentations={}}, getOrder=0, augmentations={}}], augmentations={}}, match=Match{getEthernetMatch=EthernetMatch{getEthernetType=EthernetType{getType=EtherType [value=34887], augmentations={}}, augmentations={}}, getInPort=Uri [value=openflow:356454673448129:2], getLayer3Match=Ipv4Match{getIpv4Destination=Ipv4Prefix [value=10.142.10.4], augmentations={}}, augmentations={}}, priority=5008, _tableId=0, _transactionId=TransactionId [value=121840], augmentation=[]]

=======================================================================================================

but i cant see it in the flow table on the switch rulls with ethertype=0x800 and ip , are installs and i can see them in the switch ===============================================log=========================== 2014-10-01 14:41:53.370 EET [md-sal-binding-notification-18496] INFO o.o.o.t.FlowEventListenerLoggingImpl - flow to be added..........................FlowAdded [cookie=FlowCookie [value=0], flowRef=FlowRef [value=KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node[key=NodeKey [id=Uri [value=openflow:356454673448129]]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table[key=TableKey [id=0]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow[key=FlowKey [id=Uri [value=49d90d08-37b7-4150-b752-339f51c834c8]]]]}], _hardTimeout=0, _idleTimeout=0, _instructions=Instructions{getInstruction=[Instruction{getInstruction=ApplyActionsCase{getApplyActions=ApplyActions{getAction=[Action{getAction=OutputActionCase{getOutputAction=OutputAction{getOutputNodeConnector=Uri [value=openflow:356454673448129:4], augmentations={}}, augmentations={}}, getOrder=0, augmentations={}}], augmentations={}}, augmentations={}}, getOrder=0, augmentations={}}], augmentations={}}, match=Match{getEthernetMatch=EthernetMatch{getEthernetType=EthernetType{getType=EtherType [value=2048], augmentations={}}, augmentations={}}, getInPort=Uri [value=openflow:356454673448129:2], getLayer3Match=Ipv4Match{getIpv4Destination=Ipv4Prefix [value=10.142.10.4], augmentations={}}, augmentations={}}, priority=5008, _tableId=0, _transactionId=TransactionId [value=121811], augmentation=[]]

any ideas?

thanks ahiya

edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted
0

answered 2014-10-01 08:15:34 -0700

Moderators

updated 2014-10-01 08:21:45 -0700

Firstly this is an invalid flow by the OpenFlow 1.3.1 spec. A.2.3.6 Flow Match Field Prerequisite
For OXM_OF_IPV4_DST you're required to also match on ETH TYPE=0x0800

?OpenDaylight will still allow you to send these flows to the switch, you can see this in a flowmod if you collect a packet trace between ODL and Switch, but then you see a flowmod_failed being send back by the switch state the flow is invalid.

Check your switch log to see if there any message related to the flow being rejected. for Openvswitch this is /var/log/openvswitch/ovs-vswitchd.log

Some sample of MPLS flows that have been checked and working that follow the spec can be found on the OpenFlowPlugin wiki page

edit flag offensive delete publish link more
0

answered 2014-10-05 04:55:06 -0700

ahiya gravatar image

thanks for your answer

in the openflowplugin wiki page i saw aflow entry example with mpls ther type and src/dst ip address match filde

==============================

<flow xmlns="urn:opendaylight:flow:inventory"> <strict>false</strict> <instructions> <instruction> <order>0</order> <apply-actions> <action> <order>0</order> <dec-mpls-ttl> </dec-mpls-ttl></action> </apply-actions> </instruction> </instructions> <table_id>2</table_id> <id>128</id> <cookie_mask>255</cookie_mask> <match> <ethernet-match> <ethernet-type> <type>34887</type> </ethernet-type> <ethernet-destination> </ethernet-destination></ethernet-match></match></flow>

ff:ff:ff:ff:ff:ff
<ethernet-source>
00:00:00:00:23:ae
</ethernet-source> <ipv4-source>10.1.2.3/24</ipv4-source> <ipv4-destination>20.4.5.6/16</ipv4-destination> <in-port>0</in-port> <hard-timeout>12</hard-timeout> <cookie>5</cookie> <idle-timeout>34</idle-timeout> <flow-name>FooXf5</flow-name> <priority>2</priority> <barrier>false</barrier>

do you know with interface they use to edit/send this flow entry? i use postman and it dont have all of this options and the syntax is differnt

thanks ahiya

edit flag offensive delete publish link more

Comments

Ahiya, I highly recommend you look at your Switch log to see if there a message saying they been reject. or look at a packet trace between ODL and the switch. Cause i know that OVS follow the spec, where other switch like CPqD does't enforce these requirements.

Chris O'Shea ( 2014-10-05 09:45:19 -0700 )edit
Login/Signup to Answer

Question Tools

Follow
1 follower

Stats

Asked: 2014-10-01 06:26:48 -0700

Seen: 474 times

Last updated: Oct 05 '14