Overall the structure looks fine to me except that I could not find definition of some variables, which I am sure you would have taken care. Apart from looking at the logs what JamO mentioned, it would be great if you could attach a Wireshark onto the 6653 port and see if the flow is sent over the wire, and possibly why the ovs(I assume) is rejecting it.
Eg restconf xml : https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin::End_to_End_Inventory <https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin::End_to_End_Inventory> thanks Shuva > On 15-Feb-2018, at 12:53 AM, Jamo Luhrsen <[email protected]> wrote: > > Jacob, > > I wont really be able to help debug this at the java level, but what > do you see on the switch side and in karaf.log? Wondering if the flow > is being sent down to the switch, which is rejecting it for some > reason? Or possibly, the internal work hits some condition which > would throw an Exception in karaf.log. > > just some places to check for more clues. > > Thanks, > JamO > > On 2/14/18 4:27 AM, Jacob Steadman wrote: >> Hi, >> >> >> >> I had code that inserts flow rules in the switches once the feature is >> installed at the controller. It was and still is >> working fine for OF1.0 but I had to upgrade to OF1.3 to make use of multible >> flow tables. >> >> >> >> If I replace the match so that the flow matches everything, the rule is >> inserted fine so I’m assuming the match is what >> creates the issue. >> >> >> >> private Flow blockFlow(Short tableId, int priority) { >> >> FlowBuilder Flow = new FlowBuilder() // /**Flow to hold DNS >> rule*/ // >> >> .setTableId(tableId) // >> >> .setFlowName("DropDNSx"); >> >> >> >> Flow.setId(new FlowId(Long.toString(1333337))); /**Set flow ID*/ >> >> >> >> // Match on port and ip >> >> UdpMatch dnsPort = new UdpMatchBuilder().setUdpSourcePort(new >> PortNumber(portNum)).build(); >> >> >> >> Ipv4MatchArbitraryBitMask SrcIp = new >> Ipv4MatchArbitraryBitMaskBuilder().setIpv4SourceAddressNoMask(SrcIP).build(); >> >> >> >> Match Match = new >> MatchBuilder().setLayer4Match(Port).setLayer3Match(SrcIp).build(); >> >> >> >> List<Action> actions = new ArrayList<>(); >> >> >> >> actions.add(getDropAction()); >> >> >> >> // Create an Apply Action >> >> ApplyActions applyActions = new ApplyActionsBuilder() // >> >> .setAction(ImmutableList.copyOf(actions)) // >> >> .build(); >> >> >> >> // Wrap our Apply Action in an Instruction >> >> Instruction applyActionsInstruction = new InstructionBuilder() // >> >> .setOrder(0) >> >> .setInstruction(new ApplyActionsCaseBuilder()// >> >> .setApplyActions(applyActions) // >> >> .build()) // >> >> .build(); >> >> >> >> // Put our Instruction in a list of Instructions >> >> Flow >> >> .setMatch(Match) // >> >> .setInstructions(new InstructionsBuilder() // >> >> >> .setInstruction(ImmutableList.of(applyActionsInstruction)) // >> >> .build()) // >> >> .setPriority(priority) // >> >> .setBufferId(OFConstants.OFP_NO_BUFFER) // >> >> .setHardTimeout(flowHardTimeout) // >> >> .setIdleTimeout(flowIdleTimeout) // >> >> .setCookie(new >> FlowCookie(BigInteger.valueOf(flowCookieInc.getAndIncrement()))) >> >> .setFlags(new FlowModFlags(false, false, false, false, false)); >> >> >> >> LOG.info("Jacob, flow blocked..."); >> >> >> >> return dnsxFlow.build(); >> >> } >> >> >> _______________________________________________ >> openflowplugin-dev mailing list >> [email protected] >> https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev >> > _______________________________________________ > openflowplugin-dev mailing list > [email protected] > https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
_______________________________________________ openflowplugin-dev mailing list [email protected] https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
