project-eve / zenbuild

Linuxkit based IoT Edge Operating System (Zenix)
https://www.zededa.com
Apache License 2.0
14 stars 7 forks source link

Adding local lisp package #91

Closed rvs closed 5 years ago

rvs commented 5 years ago

This is a companion patch to moving lisp go dataplane into go-provision. With this change we can now get rid of external lisp package and just do a very shallow repackaging of open source lispers.net code.

An extra benefit is that we're now cutting 150MB out of the root filesystem usage (still Python eats up a LOT compared to everything else -- but hey 150MB is not nothing! :-))

/cc @deitch

deitch commented 5 years ago

So this makes lisp a local pkg/lisp, in line with everything else, and includes it in pkg/zedctr, which:

Is that it? Looks quite nice actually; if we could get rid of Python too, it would be lovely. One day...

Only one comment, will do inline.

deitch commented 5 years ago

To be clear, this is the control plane, which is a companion to this PR?

Still trying to wrap my head around how the components play together. What is the rationale for putting the dataplane in go-provision package (which is then included in zedctr), but the controlplane in its own pkg/lisp in this repo (which is then included in zedctr)?

gkodali-zededa commented 5 years ago

I've run Lisp V4 smoke test on Roman's build "0.0.0-lisp-5b0a8568-2019-04-10.05.27-amd64". I see the tests passing.

rvs commented 5 years ago

To be clear, this is the control plane, which is a companion to this PR?

Still trying to wrap my head around how the components play together. What is the rationale for putting the dataplane in go-provision package (which is then included in zedctr), but the controlplane in its own pkg/lisp in this repo (which is then included in zedctr)?

@deitch here's the deal: the new lisp package here is the complete implementation of LISP protocol (control and dataplane -- the whole 9 yars) that is taken from https://github.com/farinacci/lispers.net

Because of its Python implementation (and a few other reasons) we're [slowly] replacing that code with Go. @gkodali-zededa dataplance (the one that now sits in go-provision) is the first component that we implemented.

However, since we don't have replacement for everything -- we still have to ship lispers.net code even though it will be running side-by-side with more and more of our Go components.

Eventually we will stop shipping lispers.net code and a complete LISP implementation will emerge from go-provision (at which point we may as well decide to put it into a separate repo/package).

Makes sense?

deitch commented 5 years ago

Makes sense?

Mostly, yup. Is there a particular reason why it is split between github.com/zededa/zenbuild/pkg/zedctr and github.com/zededa/go-provision, and not all in one place?

rvs commented 5 years ago

Thanks @gkodali-zededa for testing this. Now that we branched for 2.2.0 release I plan to commit this tomorrow unless I hear otherwise from @kalyan-nidumolu or @eriknordmark