uni-tue-kn / p4-macsec

P4-MACsec
Apache License 2.0
27 stars 5 forks source link

Unbekanntes Verhalten von extern Funktionen #3

Open nabilabonasser opened 4 years ago

nabilabonasser commented 4 years ago

Hallo, Ich habe die Simple_switch.cpp bearbeitet, um andere Hash Operationen auf das Payload anzuwenden. Obwohl das kompilierte Programm einwandfrei funktioniert, bekomme ich nicht das gewünschte Verhalten. Die durchgeführten Schritte:

Die frage ist, habt ihr etwas am P4c auch geändert, damit das Extern Modul funktionieren kann?

Vielen Dank Nabil

marcohae commented 4 years ago

Hi Nabil, we did not do any changes to p4c. We are using the version of p4c that is referenced in the file p4/vm/user-bootstrap.sh. The steps that you describe look fine to me. However, it is important that you use the same version of bmv2 as we do (also referenced in p4/vm/user-bootstrap.sh). If you use a different version, the simple_switch.cpp from this repo might be incompatible.

Best Marco

nabilabonasser commented 4 years ago

Hallo Marco, danke dir für die Antwort. Ich benutze auch die Repo von p4lang/tutorials auch. Das Problem läge vielleicht an den Zeilen, wo man die Funktionen registriert. BM_REGISTER_EXTERN_METHOD BM_REGISTER_EXTERN_W_NAME_METHOD

Jedes mal habe ich nur Fehlermeldung bekommen, wo steht, die Funktion hat n Parameters aber m Parameters sind übergeben.

Ich versuche, Hashing statt Encryption zu implementieren. Und ich bekam nur komische Ergebnisse. Deswegen habe ich mich an euch gewandt.

LG aus BTU Cottbus, Nabil

On Thu, Jun 18, 2020 at 3:36 PM Marco Häberle notifications@github.com wrote:

Hi Nabil, we did not do any changes to p4c. We are using the version of p4c that is referenced in the file p4/vm/user-bootstrap.sh. The steps that you describe look fine to me. However, it is important that you use the same version of bmv2 as we do (also referenced in p4/vm/user-bootstrap.sh). If you use a different version, the simple_switch.cpp from this repo might be incompatible.

Best Marco

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/uni-tue-kn/p4-macsec/issues/3#issuecomment-646021753, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMBJO4ZSQ6M76DLS36ER2SDRXIJ65ANCNFSM4N5NXQDQ .

marcohae commented 4 years ago

Die Parameter von BM_REGISTER_EXTERN_METHOD sind der Name der Klassen, der Name der externen Funktion (muss mit dem Namen der Funktion in simple_switch.cpp übereinstimmen) und danach die Parameter der externen Funktion. Die Anzahl an Parametern beim Aufruf von BM_REGISTER_EXTERN_METHOD ist also die Anzahl an Parametern der externen Funktion + 2. Bei BM_REGISTER_EXTERN_W_NAME_METHOD ist es das selbe, nur dass noch zusätzlich ein Name als erster Parameter mit übergeben wird. Wichtig ist auch noch der Typ der Parameter. Ein "in" Parameter im P4 Programm entspricht hier const Data &, ein "out" Parameter einem Data &.