Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trying to mount 14.2 JunOS MX80 into ODL #1

Open
ezobn opened this issue Jan 28, 2017 · 2 comments
Open

Trying to mount 14.2 JunOS MX80 into ODL #1

ezobn opened this issue Jan 28, 2017 · 2 comments

Comments

@ezobn
Copy link

ezobn commented Jan 28, 2017

I am trying to mount SUBJ running JunOS 14.2R5.7 via netconf to the ODL. The mount process and compilation of configuration.yang module works fine. But when I try to run get-config rpc have the following issue:
java.lang.IllegalStateException: Unknown child(ren) node(s) detected, identified by: (http://xml.juniper.net/xnm/1.1/xnm)apply-flags, in: container policy-options

Was using the 14.2/configuration.yang.

So wonder with what version you have tried it ?

@ezobn
Copy link
Author

ezobn commented Jan 31, 2017

Trying to debug this further ... Found that we have from mx80 the following:

</protocols>
  <policy-options>
        <apply-flags>
            <omit/>
        </apply-flags>
        <prefix-list>
            <name>XXX</name>
            <prefix-list-item>
                <name>8.8.8.8/32</name>
           </prefix-list-item>
        </prefix-list>

but in the published yang module there is not such construct in the policy-options:

  leaf-list apply-groups {
    description "Groups from which to inherit configuration data";
    type string;
  }
  leaf-list apply-groups-except {
    description "Don't inherit configuration data from these groups";
    type string;
  }
  container satellite-policies {
    description "Satellite Policy configuration";
    uses satellite-policy-options;
  }
  list prefix-list {
    key name;
    ordered-by user;
    description "Define a named set of address prefixes";
    leaf name {
      description "Prefix list name";
      type string;
    }
    leaf-list apply-groups {
      description "Groups from which to inherit configuration data";
      type string;
    }
    leaf-list apply-groups-except {
      description "Don't inherit configuration data from these groups";
      type string;
    }
    list prefix-list-item {
      key name;
      description "(null)";
      uses prefix_list_items;
    }
    leaf apply-path {
      description "Apply IP prefixes from a configuration statement";
      type string;
    }
  }

Can you help with missed apply-flags structure ?

@ezobn
Copy link
Author

ezobn commented Feb 4, 2017

Continuing to tshoot this... have added the construct to apply-flags:

     container apply-flags {
       leaf omit {
         type empty;
       }
     }

It solves this sync error.

But found that, when in the we have the following config, i.e. using "*" as the unit name:

        <interfaces>
            <interface>
                <name>ge-1/0/0</name>
                <scheduler-map>XXX-scheduler</scheduler-map>
                <unit>
                    <name>*</name>
                    <classifiers>
                        <dscp>
                            <name>DSCP</name>
                        </dscp>
                        <exp>
                            <classifier-name>EXP</classifier-name>
                        </exp>
                    </classifiers>
                    <rewrite-rules>
                        <dscp>
                            <name>DSCP-REMARKER</name>
                        </dscp>
                        <exp>
                            <name>EXP-REMARKER</name>
                        </exp>
                    </rewrite-rules>
                </unit>
            </interface>

We still have an issue to sync. Because in the published yang module we have:

     list unit {
       key name;
       description "Logical interface unit (or wildcard)";
       leaf name {
         description "Logical unit number";
         type uint32 {
           range "0 .. 1073741823";
         }
       }

So, I have bin changed type for name leaf to string, as following:

     list unit {
       key name;
       description "Logical interface unit (or wildcard)";
       leaf name {
         description "Logical unit number";
         type string {
           length "0 .. 64";
         }
       }

It solves, all my issues for mounting and configuration data tree syncing with ODL, as for now...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant