Uploaded image for project: 'OpenFlowPlugin'
  1. OpenFlowPlugin
  2. OPNFLWPLUG-303

IllegalArgumentException in MatchConvertorImpl.fromOFMatchV10ToSALMatch().

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • None
    • None
    • General
    • None
    • Operating System: All
      Platform: All

    • 2127

    Description

      I observed that IllegalArgumentException was logged periodically when I installed
      an OF10 flow entry which matched IPv4 packets with DSCP value 63.

      2014-10-01 11:14:45.861 GMT+09:00 [OFmsgProcessor-0] ERROR o.o.o.o.m.q.TicketProcessorFactoryImpl - translation problem: Invalid range: 252, expected: [[0‥63]].
      2014-10-01 11:14:45.865 GMT+09:00 [OFmsgFinisher-0] WARN o.o.o.o.md.queue.TicketFinisherImpl - processing (translate, publish) of ticket failed
      java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Invalid range: 252, expected: [[0‥63]].
      at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:306) ~[na:na]
      at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:293) ~[na:na]
      at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116) ~[na:na]
      at org.opendaylight.openflowplugin.openflow.md.queue.TicketFinisherImpl.run(TicketFinisherImpl.java:49) ~[na:na]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_65]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_65]
      at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65]
      Caused by: java.lang.IllegalArgumentException: Invalid range: 252, expected: [[0‥63]].
      at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Dscp.<init>(Dscp.java:39) ~[na:na]
      at org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchConvertorImpl.fromOFMatchV10ToSALMatch(MatchConvertorImpl.java:582) ~[na:na]
      at org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.FlowStatsResponseConvertor.toSALFlowStats(FlowStatsResponseConvertor.java:78) ~[na:na]
      at org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.FlowStatsResponseConvertor.toSALFlowStatsList(FlowStatsResponseConvertor.java:49) ~[na:na]
      at org.opendaylight.openflowplugin.openflow.md.core.translator.MultipartReplyTranslator.translate(MultipartReplyTranslator.java:134) ~[na:na]
      at org.opendaylight.openflowplugin.openflow.md.core.translator.MultipartReplyTranslator.translate(MultipartReplyTranslator.java:106) ~[na:na]
      at org.opendaylight.openflowplugin.openflow.md.queue.TicketProcessorFactoryImpl.translate(TicketProcessorFactoryImpl.java:166) ~[na:na]
      at org.opendaylight.openflowplugin.openflow.md.queue.TicketProcessorFactoryImpl$1.run(TicketProcessorFactoryImpl.java:78) ~[na:na]
      ... 3 common frames omitted

      MatchConvertorImpl.fromOFMatchV10ToSALMatch() passes a TOS value in NW_TOS match
      field to the constructor of Dscp class. IP DSCP field value needs to be passed
      to Dscp class, not TOS value.

      In addition, MatchConvertorImpl.fromOFMatchV10ToSALMatch() does not configure
      MD-SAL DSCP match field if NW_TOS field value in OF10 match is 0.
      I think this is incorrect behavior. It should configure MD-SAL DSCP match field
      unless NW_TOS wildcard bit is set in OF10 match, otherwise application can not
      retrieve statistics information of a flow entry which matches IPv4 packets with
      DSCP value 0.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Unassigned Unassigned
            yasuda Shigeru Yasuda
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: