Uploaded image for project: 'sfc'
  1. sfc
  2. SFC-205

SFC SCF classifier attempts to remove flows from the wrong table

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • Oxygen
    • None
    • General
    • None

      Originally reported by ebrjohn

      The classifier is being created in table=0 as expected, but when the classifier is deleted, it tries to delete from table=86. Here are the LOGs:

      Classifier flow creation:

      2017-10-30 12:06:03,763 | INFO  | pool-67-thread-1 | FlowSetWriterTask                | 348 - org.opendaylight.sfc.openflow-utils - 0.7.0.SNAPSHOT | FlowSetWriterTask SFF [openflow:156930464280132] NodeKey [NodeKey [_id=Uri [_value=openflow:156930464280132]]] TableKey [TableKey [_id=0]] FlowKey [FlowKey [_id=Uri [_value=MatchAny]]]
      2017-10-30 12:06:03,764 | INFO  | pool-67-thread-1 | FlowSetWriterTask                | 348 - org.opendaylight.sfc.openflow-utils - 0.7.0.SNAPSHOT | FlowSetWriterTask SFF [openflow:156930464280132] NodeKey [NodeKey [_id=Uri [_value=openflow:156930464280132]]] TableKey [TableKey [_id=0]] FlowKey [FlowKey [_id=Uri [_value=sff1ACL1ACE1.in]]]
      2017-10-30 12:06:03,778 | INFO  | pool-67-thread-1 | FlowSetWriterTask                | 348 - org.opendaylight.sfc.openflow-utils - 0.7.0.SNAPSHOT | FlowSetWriterTask SFF [openflow:156930464280132] NodeKey [NodeKey [_id=Uri [_value=openflow:156930464280132]]] TableKey [TableKey [_id=0]] FlowKey [FlowKey [_id=Uri [_value=sff1ACL1ACE1.out]]]
      

      Classifier flow deletion:

      2017-10-30 12:07:26,820 | INFO  | pool-67-thread-1 | FlowSetRemoverTask               | 348 - org.opendaylight.sfc.openflow-utils - 0.7.0.SNAPSHOT | FlowSetRemoverTask SFF [openflow:156930464280132] NodeKey [NodeKey [_id=Uri [_value=openflow:156930464280132]]] TableKey [TableKey [_id=82]] FlowKey [FlowKey [_id=Uri [_value=sff1ACL1ACE1.in]]]
      2017-10-30 12:07:26,820 | INFO  | pool-67-thread-1 | FlowSetRemoverTask               | 348 - org.opendaylight.sfc.openflow-utils - 0.7.0.SNAPSHOT | FlowSetRemoverTask SFF [openflow:156930464280132] NodeKey [NodeKey [_id=Uri [_value=openflow:156930464280132]]] TableKey [TableKey [_id=82]] FlowKey [FlowKey [_id=Uri [_value=sff1ACL1ACE1.out]]]
      

      The TableKey is different when creating and deleting. Narrowed it down to where in the code this happens, but Im not sure what's going on there:

      /home/bjohnson/projects/odl/sfc/sfc-classifiers/sfc-scf-openflow/src/main/java/org/opendaylight/sfc/scfofrenderer/processors/NshProcessor.java 
      

      Starting at Line 100

              // add a classifier
              if (addClassifier) {
                  // write the flows into the classifier
                  LOG.info("processAce - About to create flows");
                  theFlows.add(classifierInterface.initClassifierTable(nodeName));
                  theFlows.add(classifierInterface.createClassifierOutFlow(flowKey, match, nsh.get(), nodeName));
                  theFlows.addAll(classifierInterface.createDpdkFlows(nodeName, nsh.get().getNshNsp()));
              } else {
                  LOG.info("processAce - About to delete the *out* flows");
                  theFlows.add(classifierHandler.deleteFlowFromTable(nodeName,
                          flowKey, ClassifierGeniusIntegration.getClassifierTable()));    <== This thing always returns NwConstants.SFC_TRANSPORT_CLASSIFIER_TABLE = 86
              }
      

            jaicaa Jaime Caamaño Ruiz
            jaicaa Jaime Caamaño Ruiz
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: