<html>
<head>
<meta name="generator" content="Windows Mail 17.5.9600.20856">
<style data-externalstyle="true"><!--
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
}
p.MsoNormal, li.MsoNormal, div.MsoNormal {
margin:0in;
margin-bottom:.0001pt;
}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst, 
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle, 
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast {
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
line-height:115%;
}
--></style></head>
<body dir="ltr">
<div data-externalstyle="false" dir="ltr" style="font-family: 'Calibri', 'Segoe UI', 'Meiryo', 'Microsoft YaHei UI', 'Microsoft JhengHei UI', 'Malgun Gothic', 'sans-serif';font-size:12pt;">








<div>Hi P4 community,</div><div><br></div><div>First off, thanks for the work on the P4 project, even though it’s still in the early days, reading the specifications and playing with the compiler is a interesting experience.</div><div><br></div><div>I started prototyping with P4 for about a week now, and I've ran into some limitations, most that are probably due to my limited knowledge of the language. I’ve listed below some of the questions I have, hoping to get a better understanding of the language:</div><div><br></div><ul style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 0px; list-style-type: disc;"><li style='color: rgb(0, 0, 0); font-family: "Color Emoji", "Calibri", "Segoe UI", "Meiryo", "Microsoft YaHei UI", "Microsoft JhengHei UI", "Malgun Gothic", "sans-serif"; font-size: 16px;'><div>The specification document and the p4-bm have some differences (mostly in the actions definition), at this early stage which one of the two should be considered as the reference? For instance in the specification to execute a meter <strong>meter()</strong> should be used while in the bm <strong>execute_meter()</strong> is used. (similar difference with <strong>modify_field_with_hash_based_offset</strong>)</div></li><li style='color: rgb(0, 0, 0); font-family: "Color Emoji", "Calibri", "Segoe UI", "Meiryo", "Microsoft YaHei UI", "Microsoft JhengHei UI", "Malgun Gothic", "sans-serif"; font-size: 16px;'><div>The default set of actions does not provide any mechanism to add entries to a table, in the description of <strong>generate_digest()</strong> (page 41) it is described that this “might be used to represent a self-update operation”. In the current behavioral model is this possible? or is it a design decision not to have actions capable of add entries and this logic should be left to the controller? (in such case self-learning is impossible)</div></li><li style='color: rgb(0, 0, 0); font-family: "Color Emoji", "Calibri", "Segoe UI", "Meiryo", "Microsoft YaHei UI", "Microsoft JhengHei UI", "Malgun Gothic", "sans-serif"; font-size: 16px;'><div>For the use case I was playing with, I had to keep track of the byte count of some flows in a self-learning way, for this and with respect to the specs I would assume a meter is the most suitable. However at this point I had a problem with the index being either a immediate value or a table entry parameter and not a field preventing to use for instance a hash of some fields as the index. As a consequence I moved to using registers instead of meters and managed to get something working, however I’m not sure this approach is correct. Should registers be used to store ~large amount of data for instance 10000 entries or be kept small only for state information ? Should the registers internal to the dataplane are be queryable by the controller similarly to counters and meters ?</div></li></ul><div style='color: rgb(0, 0, 0); font-family: "Color Emoji", "Calibri", "Segoe UI", "Meiryo", "Microsoft YaHei UI", "Microsoft JhengHei UI", "Malgun Gothic", "sans-serif"; font-size: 16px;'><br></div><div style='color: rgb(0, 0, 0); font-family: "Color Emoji", "Calibri", "Segoe UI", "Meiryo", "Microsoft YaHei UI", "Microsoft JhengHei UI", "Malgun Gothic", "sans-serif"; font-size: 16px;'>Thanks, I hope this is not completely out of context and that the discuss mailing list is the right point of contact for such questions. I would be happy to provide more details if required.</div><div><br></div><div>Best regards,</div><div>Simon<br></div><div data-signatureblock="true"><br></div>


























</div>
</body>
</html>