diff options
author | ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp> | 2016-01-08 13:12:31 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2016-01-09 05:17:57 -0800 |
commit | a0b87f1ddf849cc44a39645fb296bfe2d3a5b287 (patch) | |
tree | cc620dc8e685ba914a4f489a4f5ceb34c3992982 | |
parent | b0fbcc6b1b18d2c9fe67437fe6432914b67c5508 (diff) |
config: catch up with the latest openconfig
using commit 20b9cc544012201069e9d6a159ebab17f4172dfb
from github.com/openconfig/public
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
-rw-r--r-- | config/bgp_configs.go | 14 | ||||
-rw-r--r-- | tools/pyang_plugins/README.rst | 23 | ||||
-rw-r--r-- | tools/pyang_plugins/bgpyang2golang.py | 9 | ||||
-rw-r--r-- | tools/pyang_plugins/gobgp.yang | 8 |
4 files changed, 32 insertions, 22 deletions
diff --git a/config/bgp_configs.go b/config/bgp_configs.go index 41d32d52..42c3e750 100644 --- a/config/bgp_configs.go +++ b/config/bgp_configs.go @@ -17,6 +17,12 @@ package config import "fmt" +// typedef for typedef openconfig-types:std-regexp +type StdRegexp string + +// typedef for typedef openconfig-types:percentage +type Percentage uint8 + // typedef for typedef bgp-types:rr-cluster-id-type type RrClusterIdType string @@ -45,7 +51,7 @@ func (v RemovePrivateAsOption) Validate() error { } // typedef for typedef bgp-types:bgp-community-regexp-type -type BgpCommunityRegexpType string +type BgpCommunityRegexpType StdRegexp // typedef for typedef bgp-types:community-type type CommunityType string @@ -103,9 +109,6 @@ func (v PeerTypeDef) Validate() error { return nil } -// typedef for typedef bgp-types:percentage -type Percentage uint8 - // typedef for typedef bgp-types:bgp-session-direction type BgpSessionDirection string @@ -1742,6 +1745,9 @@ type BgpConditions struct { // original -> bgp-pol:next-hop-in //original type is list of inet:ip-address NextHopIn []string + // original -> bgp-pol:afi-safi-in + //original type is list of identityref + AfiSafiIn []string // original -> bgp-pol:local-pref-eq LocalPrefEq uint32 // original -> bgp-pol:community-count diff --git a/tools/pyang_plugins/README.rst b/tools/pyang_plugins/README.rst index 10b44d71..b7dcf7ab 100644 --- a/tools/pyang_plugins/README.rst +++ b/tools/pyang_plugins/README.rst @@ -1,26 +1,23 @@ What's this ? ============= This is a pyang plugin to generate config/bgp_configs.go from -openconfig yang files. - -Currently, we made some modifications to the yang files: - - https://github.com/osrg/yang/tree/gobgp - +openconfig yang files (see [https://github.com/openconfig/public](https://github.com/openconfig/public)) How to use ========== :: - $ git clone -b gobgp https://github.com/osrg/yang - $ YANG_DIR=`pwd`/yang + $ git clone https://github.com/openconfig/public + $ git clone https://github.com/YangModels/yang + $ YANG_DIR=`pwd` $ cd $PYANG_INSTALL_DIR $ source ./env.sh $ PYTHONPATH=. ./bin/pyang --plugindir $GOBGP_PATH/tools/pyang_plugins \ - -p $YANG_DIR/standard/ietf/RFC \ - -p $YANG_DIR/experimental/openconfig/bgp \ - -p $YANG_DIR/experimental/openconfig/policy \ - -f golang $YANG_DIR/experimental/openconfig/bgp/bgp.yang \ - $YANG_DIR/bgp/bgp.yang $YANG_DIR/bgp/bgp-policy.yang \ + -p $YANG_DIR/yang/standard/ietf/RFC \ + -p $YANG_DIR/public/release/models \ + -p $YANG_DIR/public/release/models/bgp \ + -p $YANG_DIR/public/release/models/policy \ + -f golang $YANG_DIR/public/release/models/bgp/openconfig-bgp.yang \ + $YANG_DIR/public/release/modesl/policy/openconfig-routing-policy.yang \ $GOBGP_PATH/tools/pyang_plugins/gobgp.yang \ | gofmt > $GOBGP_PATH/config/bgp_configs.go diff --git a/tools/pyang_plugins/bgpyang2golang.py b/tools/pyang_plugins/bgpyang2golang.py index ce64fce0..8acbfa02 100644 --- a/tools/pyang_plugins/bgpyang2golang.py +++ b/tools/pyang_plugins/bgpyang2golang.py @@ -448,7 +448,14 @@ def emit_typedef(ctx, module): else: print >> o, '// typedef for typedef %s:%s'\ % (prefix, type_name_org) - print >> o, 'type %s %s' % (type_name, t.arg) + + if not is_builtin_type(t): + m = ctx.golang_typedef_map + for k in t.arg.split(':'): + m = m[k] + print >> o, 'type %s %s' % (type_name, m.golang_name) + else: + print >> o, 'type %s %s' % (type_name, t.arg) print o.getvalue() diff --git a/tools/pyang_plugins/gobgp.yang b/tools/pyang_plugins/gobgp.yang index 73f886ad..701e408a 100644 --- a/tools/pyang_plugins/gobgp.yang +++ b/tools/pyang_plugins/gobgp.yang @@ -8,10 +8,10 @@ module gobgp { prefix "gobgp"; // import some basic types - import bgp { prefix bgp; } - import routing-policy {prefix rpol; } - import policy-types {prefix ptypes; } - import bgp-policy {prefix bgp-pol; } + import openconfig-bgp { prefix bgp; } + import openconfig-routing-policy {prefix rpol; } + import openconfig-policy-types {prefix ptypes; } + import openconfig-bgp-policy {prefix bgp-pol; } import ietf-inet-types { prefix inet; } import ietf-yang-types { prefix yang; } |