<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">As I understand it, P4 does not well suit variable length header processing, such as those present in HTTP.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Andy Fingerhut talks about some of the challenges in P4 with variable length headers here:
<a href="https://github.com/jafingerhut/p4-guide/tree/master/variable-length-header">
https://github.com/jafingerhut/p4-guide/tree/master/variable-length-header</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Ben<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">P4-dev <p4-dev-bounces@lists.p4.org> on behalf of Sahil Gupta <sg5414@rit.edu><br>
<b>Reply to: </b>"sg5414@rit.edu" <sg5414@rit.edu><br>
<b>Date: </b>Tuesday, 5 May 2020 at 21:45<br>
<b>To: </b>p4-dev <p4-dev@lists.p4.org><br>
<b>Subject: </b>[External] [P4-dev] Any code for http header processing<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p><strong><span style="font-family:"Calibri",sans-serif;color:#A4343A">This email originated outside the University. Check before clicking links or attachments.</span></strong><o:p></o:p></p>
<div>
<div>
<p class="MsoNormal">Hi all,<br>
1. Is there any p4 code available in which HTTP header is parsed and some comparison is done on its field. 
<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">2. Also, looking for projects where some sort of FSM is implemented in match-action stages?<br>
Any help is appreciated.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Sahil Gupta<br>
<br>
<o:p></o:p></p>
<div id="mt-signature">
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="padding:6.0pt 6.0pt 6.0pt 6.0pt">
<p class="MsoNormal"><a href="https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmailtrack.io%2F%3Futm_source%3Dgmail%26utm_medium%3Dsignature%26utm_campaign%3Dsignaturevirality5%26&data=02%7C01%7Cb.lewis%40lancaster.ac.uk%7Cd8b0a0f77689459b589408d7f13540de%7C9c9bcd11977a4e9ca9a0bc734090164a%7C0%7C1%7C637243083345552527&sdata=yieqclBPVPgHkW035dLw6mrBEJVu5zSbinjC1xJ6Vnk%3D&reserved=0"><span style="color:windowtext;text-decoration:none"><span style="color:blue;border:solid windowtext 1.0pt;padding:0cm"><img border="0" width="32" height="32" style="width:.3333in;height:.3333in" id="_x0000_i1026" src="cid:~WRD0000.jpg" alt="Image removed by sender. Mailtrack"></span></span></a><o:p></o:p></p>
</td>
<td style="padding:6.0pt 6.0pt 6.0pt 6.0pt">
<p class="MsoNormal"><span style="color:#777777">Sender notified by</span> <br>
<a href="https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmailtrack.io%2F%3Futm_source%3Dgmail%26utm_medium%3Dsignature%26utm_campaign%3Dsignaturevirality5%26&data=02%7C01%7Cb.lewis%40lancaster.ac.uk%7Cd8b0a0f77689459b589408d7f13540de%7C9c9bcd11977a4e9ca9a0bc734090164a%7C0%7C1%7C637243083345562514&sdata=Ugn9qvlVumb6kHW%2B3l6wIPs6oLp6IZcO%2BdJTmqM3YIg%3D&reserved=0"><span style="color:#4374F7">Mailtrack</span></a>
<span style="font-size:1.0pt">05/05/20, 04:37:28 PM</span> <o:p></o:p></p>
</td>
<td style="padding:6.0pt 6.0pt 6.0pt 6.0pt"></td>
</tr>
</tbody>
</table>
</div>
</div>
<p class="MsoNormal"><span style="border:solid windowtext 1.0pt;padding:0cm"><img border="0" width="32" height="32" style="width:.3333in;height:.3333in" id="_x0000_i1025" src="cid:~WRD0000.jpg" alt="Image removed by sender."></span><o:p></o:p></p>
</div>
</div>
</div>
</body>
</html>