antlab-polimi / flowblaze.p4 Goto Github PK
View Code? Open in Web Editor NEWP4 library for experimenting with FlowBlaze and EFSM based stateful data planes
License: Apache License 2.0
P4 library for experimenting with FlowBlaze and EFSM based stateful data planes
License: Apache License 2.0
uppercase?
pre-pending a special character?
Configure TravisCI to build and push Docker containers when PR/commits are submitted
Rather then not returning the file to download or returning it with partial transitions we should inform back the user.
Regardless the client-side JS checks something might go wrong in Python
For example:
Run use cases in dmoro92/p4mn
docker image with runtime configuration coming from the GUI
e.g. forward(5) and _drop()
the action parser in interpret_EFSM() has to be checked
the JS should already offer these two functions!
Right now, the state ID generated by the parser is the order number in the JSON list of states. This means that state 0 might not be translated to the 0 state by the parser. This is a requirement for flowblaze.p4.
Examples:
Wrong:
{
"x": 473,
"y": 209,
"text": "1", <-- STATE 1 is first in the list and it's translated to STATE 0
"isAcceptState": false
},
{
"x": 679,
"y": 247,
"text": "2",
"isAcceptState": false
},
{
"x": 120,
"y": 175,
"text": "0", <-- STATE 0 is the last in the list and it's translated to STATE 2
"isAcceptState": false
}
Correct:
{
"x": 120,
"y": 175,
"text": "0",
"isAcceptState": false
},
{
"x": 473,
"y": 209,
"text": "1",
"isAcceptState": false
},
{
"x": 679,
"y": 247,
"text": "2",
"isAcceptState": false
}
Parse bmv2.json file to retrieve header fields, actions and META to fill-up the GUI and improve GUI usability
Probably the best would using the P4 syntax (i.e. value&&mask)
number of conditions
number of flow/global registers
number of update operations
number of actions (<=1)
FlowBlaze metadata is local to the FlowBlaze loop. There is no need to define them into the global metadata and can be kept local to the FlowBlaze loop (e.g., by defining a flowblaze_t flowblaze_metadata;
at the beginning of the FlowBlaze loop). This will remove the need for adding the flowblaze_t into the user-defined metadata.
+++ b/gui/www/fsm.js
@@ -295,6 +295,7 @@ function canvasHasFocus() {
function drawText(c, originalText, x, y, angleOrNull, isSelected) {
text = convertLatexShortcuts(originalText);
c.font = '12px "Times New Roman", serif';
+ //c.fillStyle = "red";
We should add the possibility of generating the switch config directly starting from the FSM JSON file without opening the GUI.
-POSSIBLE_PACKET_ACTION in gui/config.py should be set by p4_json_parser.py
-shall the user explicitly use NoAction()?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.