2017-04-12 3 views
1

マイデバイス -NETCONF対応デバイスの設定を更新するには?ヤンは以下の通りです

module router { 
    yang-version 1; 
    namespace "urn:sdnhub:odl:tutorial:router"; 
    prefix router; 

    description "Router configuration"; 

    revision "2015-07-28" { 
     description "Initial version."; 
    } 

    list interfaces { 
     key id; 
     leaf id { 
      type string; 
     } 
     leaf ip-address { 
      type string; 
     } 
    } 

    container router { 
     list ospf { 
      key process-id; 
      leaf process-id { 
       type uint32; 
      } 
      list networks { 
       key subnet-ip; 
       leaf subnet-ip { 
        type string; 
       } 
       leaf area-id { 
        type uint32; 
       } 
      } 
     } 

     list bgp { 
      key as-number; 
      leaf as-number { 
       type uint32; 
      } 
      leaf router-id { 
       type string; 
      } 
      list neighbors { 
       key as-number; 
       leaf as-number { 
        type uint32; 
       } 
       leaf peer-ip { 
        type string; 
       } 
      } 
     } 
    } 
} 

私は(私は、シミュレータを使用しています)私のNETCONFデバイスを設定するには、SDNHub NETCONFクライアントを使用しています。設定を追加することはできますが、デバイスの設定を変更することはできません。

私のデバイス上の初期設定は、私は、次のペイロードで PUT http://localhost:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/testtool/yang-ext:mount/router:router/ospf/21

とOSPFのリストを変更しようとしている

{ 

    "router": { 

    "ospf": [ 
     { 
     "process-id": 21, 
     "networks": [ 
      { 
      "subnet-ip": "12.1.1.1", 
      "area-id": 12 
      } 
     ] 
     } 
    ],"bgp": [ 
    { 
     "as-number": "31", 
     "router-id": "123", 
     "neighbors": [ 
     { 
      "as-number": "31", 
      "peer-ip": "1.1.1.1" 
     } 
     ] 
    }, 
    { 
     "as-number": "32", 
     "router-id": "1234", 
     "neighbors": [ 
     { 
      "as-number": "32", 
      "peer-ip": "2.2.2.2" 
     } 
     ] 
    } 
    ] 
    } 
} 

の下に表示され、

{ 
    "ospf": 
    [ 

    { 

    "process-id" : "21", 
     "networks": [ 
      { 
      "subnet-ip": "12.12.12.12", 
      "area-id": 1212 
      } 
     ] 
    } 
] 
} 

ルートノードの設定が上書きされ、GETに関する次のデータが表示されます

{ 
    "router": 
{ 

    "ospf": [ 
     { 
     "process-id": 21, 
     "networks": [ 
      { 
      "subnet-ip": "12.12.12.12", 
      "area-id": 1212 
      } 
     ] 
     } 
    ] 
    } 
} 

間違ったリクエストを送信している場合や、Netconfデバイスの設定を更新するその他の方法がある場合は、教えてください。

+0

あなたのペイロードは、おそらく間違っています。使用方法については、[https://datatracker.ietf.org/doc/html/rfc8040#section-4.5](https://datatracker.ietf.org/doc/html/rfc8040#section-4.5)をご覧くださいPUT。例があります。たぶん、ペイロードの 'networks'ブランチを維持してください。ところで、これはRESTCONFであり、NETCONFではありません。 – predi

+0

お返事ありがとうございます。 ospfノードを既存の初期構成に追加するためにどのペイロードを使用すべきですか? これは、残りのURL ですhttp:// localhostを:8181/restconf /設定/ネットワーク・トポロジー:ネットワーク・トポロジー/トポロジー/トポロジー-NETCONF /ノード/ testtool17831_2 /陽-EXT:/ルータをマウント:ルータ/ OSPF/{ process-id} このURLは有効ですか? –

+0

わかりません。 'http:// localhost:8181/restconf/config/network-topology:ネットワークトポロジー/トポロジー/トポロジー-netconf /ノード/テストツール/ yang-ext:マウント/ルーター:router/ospf = 21'を試してください。ペイロードは '{" networks ":[{" subnet-ip ":" 12.12.12.12 "、" area-id ":1212}]}'です。 – predi

答えて

0

私はあなたがospfでネットワークを更新したいと仮定。その後、URLは、リソースまで指している必要があり:そのサブツリーprocess-idインデックス(Section 4.5 of RFC 8040を必要とする):ターゲット・リソースがYANGリストインスタンスを表す場合

、次いで キーリーフ値は、メッセージボディ表現でなければなりません要求URIのキーリーフ値と同じ 。 PUTメソッドは、 を使用して、データリソースインスタンスのキーリーフ値を変更してはなりません(MUST NOT)。

PUT http://localhost:8181/restconf/path_until_router/router:router/ospf=21 HTTP/1.1 
Content-Type: application/yang-data+json 

{ 
    "router:process-id": 21, 
    "router:networks": [ 
    { 
     "subnet-ip": "12.1.1.1", 
     "area-id": 12 
    } 
    ] 
} 
関連する問題