diff options
author | Guo Ruijing <ruijing.guo@intel.com> | 2017-11-23 12:58:05 -0500 |
---|---|---|
committer | Guo Ruijing <ruijing.guo@intel.com> | 2017-11-23 16:33:53 -0500 |
commit | a8388222d5d1f11be506e9e79f5e2476c447177e (patch) | |
tree | 59aebeb523399bd3c3132391ad85c3153b779448 /src/cni/ovsdpdk/ovsdpdk.patch | |
parent | ec94abf0ea9154af2f0dbce13e12df775b72bbac (diff) |
build ovsdpdk cni during deployment
Change-Id: I1c3d4b44bab0d75fae93f7fabce7bcfdcc3b9f35
Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
Diffstat (limited to 'src/cni/ovsdpdk/ovsdpdk.patch')
-rw-r--r-- | src/cni/ovsdpdk/ovsdpdk.patch | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/src/cni/ovsdpdk/ovsdpdk.patch b/src/cni/ovsdpdk/ovsdpdk.patch deleted file mode 100644 index 67b3703..0000000 --- a/src/cni/ovsdpdk/ovsdpdk.patch +++ /dev/null @@ -1,136 +0,0 @@ -diff --git a/build.sh b/build.sh -index cd21ba8..bc60d91 100755 ---- a/build.sh -+++ b/build.sh -@@ -19,7 +19,7 @@ export GOPATH=${PWD}/gopath - mkdir -p "${PWD}/bin" - - echo "Building plugins" --PLUGINS="plugins/meta/* plugins/main/* plugins/ipam/* plugins/sample" -+PLUGINS="plugins/main/ovsdpdk plugins/main/bridge plugins/ipam/host-local" - for d in $PLUGINS; do - if [ -d "$d" ]; then - plugin="$(basename "$d")" -diff --git a/plugins/main/ovsdpdk/ovsdpdk.go b/plugins/main/ovsdpdk/ovsdpdk.go -new file mode 100644 -index 0000000..1b931d4 ---- /dev/null -+++ b/plugins/main/ovsdpdk/ovsdpdk.go -@@ -0,0 +1,117 @@ -+// Copyright 2014 CNI authors -+// -+// Licensed under the Apache License, Version 2.0 (the "License"); -+// you may not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, software -+// distributed under the License is distributed on an "AS IS" BASIS, -+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+// See the License for the specific language governing permissions and -+// limitations under the License. -+ -+package main -+ -+import ( -+ "encoding/json" -+ "errors" -+ "fmt" -+ //"net" -+ "runtime" -+ //"syscall" -+ "os/exec" -+ //"io/ioutil" -+ -+ "github.com/containernetworking/cni/pkg/skel" -+ "github.com/containernetworking/cni/pkg/types" -+ "github.com/containernetworking/cni/pkg/types/current" -+ "github.com/containernetworking/cni/pkg/version" -+ //"github.com/containernetworking/plugins/pkg/ip" -+ "github.com/containernetworking/plugins/pkg/ipam" -+ //"github.com/containernetworking/plugins/pkg/ns" -+ //"github.com/containernetworking/plugins/pkg/utils" -+ //"github.com/vishvananda/netlink" -+) -+ -+const defaultBrName = "cni0" -+ -+type NetConf struct { -+ types.NetConf -+ BrName string `json:"bridge"` -+} -+ -+func init() { -+ // this ensures that main runs only on main thread (thread group leader). -+ // since namespace ops (unshare, setns) are done for a single thread, we -+ // must ensure that the goroutine does not jump from OS thread to thread -+ runtime.LockOSThread() -+} -+ -+func loadNetConf(bytes []byte) (*NetConf, string, error) { -+ n := &NetConf{ -+ BrName: defaultBrName, -+ } -+ if err := json.Unmarshal(bytes, n); err != nil { -+ return nil, "", fmt.Errorf("failed to load netconf: %v", err) -+ } -+ return n, n.CNIVersion, nil -+} -+ -+func setupVhostUser(args *skel.CmdArgs, types string) error { -+ exec.Command("/bin/bash", "/opt/cni/bin/setup_ovsdpdk.sh", args.Netns, args.ContainerID, types).Output() -+ return nil -+} -+ -+ -+func cmdAdd(args *skel.CmdArgs) error { -+ n, cniVersion, err := loadNetConf(args.StdinData) -+ if err != nil { -+ return err -+ } -+ -+ // run the IPAM plugin and get back the config to apply -+ r, err := ipam.ExecAdd(n.IPAM.Type, args.StdinData) -+ if err != nil { -+ return err -+ } -+ -+ // Convert whatever the IPAM result was into the current Result type -+ result, err := current.NewResultFromResult(r) -+ if err != nil { -+ return err -+ } -+ -+ if len(result.IPs) == 0 { -+ return errors.New("IPAM plugin returned missing IP config") -+ } -+ -+ setupVhostUser(args, result.String()) -+ -+ return types.PrintResult(result, cniVersion) -+} -+ -+func tearDownVhostUser(args *skel.CmdArgs) error { -+ exec.Command("/bin/bash", "/opt/cni/bin/teardown_ovsdpdk.sh", args.Netns, args.ContainerID).Output() -+ return nil -+} -+ -+func cmdDel(args *skel.CmdArgs) error { -+ n, _, err := loadNetConf(args.StdinData) -+ if err != nil { -+ return err -+ } -+ -+ if err := ipam.ExecDel(n.IPAM.Type, args.StdinData); err != nil { -+ return err -+ } -+ -+ tearDownVhostUser(args) -+ return err -+ -+} -+ -+func main() { -+ skel.PluginMain(cmdAdd, cmdDel, version.All) -+} |