2016-12-03 1 views
0

CLI를 작성하려고합니다. 나는 그렇게하기 위해 '양'을 사용하기로 선택한다. 나는 그것에 익숙하지 않고 기존 모듈을 어떻게 가져올지를 알 수 없다. 예를 들어 github (https://github.com/YangModels/yang/blob/master/vendor/cisco/xe/1631/ietf-ospf.yang)에 ospf 용 모듈이 있고 내 모듈로 가져오고 싶습니다. 이 작업을 수행 할 수 있습니까? 방법?양 모듈을 가져 오는 방법

EDIT1 :

module mininet { 

/* name space */ 
namespace "http://tail-f.com/ns/example/mininet"; 
prefix mininet; 

import ietf-ospf { 
    prefix ospf; 
    revision-date 2015-03-09 
} 

leaf area-id-type { 
    type yang:area-id-type; 
} 
} 

그래서 내가 그것을 표트르 Babij 도움말을 사용하여이 방법을 수행했습니다. 불행히도 이것은 작동하지 않습니다. 무엇을 바꾸어야합니까? area-id-type은 ietf-ospf의 typedef입니다. 내가 가진 오류는 테 하나를 다음입니다 : 당신은 import 문을 사용하여 자신 만의 모듈에서 다른 모듈을 가져올 수

mininet.yang:12:3: error: trailing garbage after module 
mininet.yang:12:3: error: unterminated statement 
+0

'무엇을 변경해야합니까? ''revision-date' 문에 세미콜론 (';')이 누락되었습니다.사용하고있는 도구의 파서 (parser)가 약간 혼란스러워서 설명이없는 오류 메시지가 나타납니다. 또한 가져온 모듈의 형식 참조에 여전히 잘못된 접두사를 사용하고 있습니다. – predi

답변

3

. YANG 1.0은 RFC 7950이고 YANG 1.0은 RFC 6020입니다. YANG 1.1에서는 동일한 모듈에 대해 두 개의 서로 다른 리비전을 가져올 수 있습니다. 그 외에는 import 문이 두 버전에서 동일하게 작동합니다.

는 실제로 기본 수입은 다음과 같습니다

module acme-system { 
    namespace "http://acme.example.com/system"; 
    prefix "acme"; 

    import ietf-yang-types { 
     prefix "yang"; 
     revision-date 2013-07-15; 
    } 

    leaf acme-ip-address { 
     type yang:dotted-quad; 
    } 
} 

당신이 다음 정의되지 않은 모듈 버전이 가져 옵션 revision-date 문을 생략합니다. 그래서, 일반적으로 그것을 사용하는 것이 실용적입니다.

필수 prefix 문을 사용하면 가져온 모듈의 내용을 참조 할 수 있습니다. 이 예에서 가져온 ietf-yang-types 모듈의 접두어는 yang이며, 덕분에 yang:dotted-quad이 해당 모듈의 유형을 참조하는 것이 확실합니다. 귀하의 경우 접두어를 ospf으로 설정했기 때문에 해당 모듈의 유형 정의를 참조하려면 ospf:area-id-type을 가져야합니다. 여러 모듈을 가져 오는 경우 접두사가 고유해야합니다.

또한 ietf-ospf 모듈의 가장 오래된 개정판을 가져오고 있습니다. 나는 이것이 당신이 정말로하고 싶어하는 것이기를 바랍니다. 당신이 모듈을 가져 오면

어쨌든, 당신이 허용됩니다

  • 가 사용하는 groupingtypedef 가져온 모듈 또는 서브 모듈의 최상위 레벨에서 정의.

  • extension, featureidentity은 가져온 모듈 또는 해당 하위 모듈에 정의되어 있습니다.

  • 사용하는 must, pathwhen 문에서 가져온 모듈의 스키마 트리에서 노드 또는 augmentdeviation 문에서 대상 노드로. 위의 예제에서 ietf-yang-typestypedef dotted-quad에서

acme-system 모듈에서 사용된다.

+0

도움을 주셔서 감사합니다하지만 작동하지 않습니다, 나는 원래 게시물을 edditing. – B3th4

+0

답변을 업데이트했습니다. 가져온 모듈에서 항목을 참조하려면 접두어를 사용해야합니다. –

관련 문제