[P4] modify_field

Dániel Horpácsi daniel-h at elte.hu
Thu Sep 24 17:59:05 CEST 2015


Valoszinuleg nekunk is okositani kell a core compilert, hogy oldja fel a 
hivatkozasokat, a konstansokat pedig alakitsa ilyen bajtsorozatta.

On 2015-09-24 16:55, Leskó Dániel wrote:
> Hát igen, de ez a smart.py megközelítés nehezen fog menni a dpdk 
> libben sajnos.
>
> 2015.09.24. 17:46 keltezéssel, Dániel Horpácsi írta:
>> action.c:
>>
>> //::    elif arg[0]=="immediate":
>> //::        arg_str = "(uint8_t[]) {"
>> //::        for byte in arg[1]:
>> //::            arg_str += hex(byte) + ", "
>> //::        #endfor
>> //::        arg_str = arg_str[0:-2] + "}"
>> //::        return arg_str
>>
>> smart.py:
>>
>> if type(arg) is int or type(arg) is long:
>>     # assert(width > 0)
>>     tmp = arg
>>     nbytes = 0
>>     while tmp > 0:
>>         nbytes += 1
>>         tmp /= 256
>>     width = max(4, nbytes)
>>     type_ = "immediate"
>>     value = int_to_byte_array(arg, width)
>>
>> def int_to_byte_array(val, num_bytes):
>>     res = []
>>     for i in xrange(num_bytes):
>>         res.append(int(val % 256))
>>         val /= 256
>>     res.reverse()
>>     return res
>>
>> On 2015-09-24 16:37, Dániel Horpácsi wrote:
>>> Szia!
>>>
>>> Valoszinuleg erdemes ranezni az eredeti behav. modelben az 
>>> actions.c, primitives.h es primitives_arith.h template fajlokra, 
>>> vagyis a 'referenciaimplementaciora'. Nyilvan ezek nem feltetlenul 
>>> lesznek a legjobbak a Spider implementaciohoz, de a DPDK eseteben 
>>> akar elvi valtoztatas nelkul is atvehetoek, persze nemi 
>>> refaktoralassal.
>>>
>>> Dani
>>>
>>> On 2015-09-24 16:06, Leskó Dániel wrote:
>>>> Sziasztok!
>>>>
>>>>  Meetingen szóba került, hogy a modify_field-ből kellene egy 
>>>> konstansos változat is, de tudjuk a típusát annak a konstansak amit 
>>>> be akarunk másolni? (gondolom nem akarunk az összes típus szerinti 
>>>> függvényszignatúrát legyártani)
>>>>
>>>>  A specifikáció szerint egyébként a value lehet egy konstans, egy 
>>>> table action paramétere (itt ilyenkor csak a paraméter neve 
>>>> szerepel), egy referencia másik fieldre, egy referencia regiszterre.
>>>>
>>>>  Ezen túl van egy opcionális mask, ami állítja, hogy melyik bitek 
>>>> íródjanak felül és melyikek ne (ez szerencsére pszeudokóddal is le 
>>>> van írva)
>>>>
>>>>  Megengedett az is, hogy a módosítandó field és az új érték mérete 
>>>> különbözzön. Ilyenkor levágni vagy nyújtani kell az új értéket.
>>>>
>>>> Hát papíron ennyi mindent kellene tudnia a modify_fieldnek, de 
>>>> jelenleg csak egy memcpy a megvalósítása és nem is nagyon látom, 
>>>> hogy a fentiek mindegyikét hogyan lehetne belepréselni. Akinek van 
>>>> ötlete ne tartsa vissza.
>>>>
>>>> Dani
>>>> _______________________________________________
>>>> P4 mailing list
>>>> P4 at plc.inf.elte.hu
>>>> https://plc.inf.elte.hu/mailman/listinfo/p4
>>>
>>> _______________________________________________
>>> P4 mailing list
>>> P4 at plc.inf.elte.hu
>>> https://plc.inf.elte.hu/mailman/listinfo/p4
>>
>> _______________________________________________
>> P4 mailing list
>> P4 at plc.inf.elte.hu
>> https://plc.inf.elte.hu/mailman/listinfo/p4
>
> _______________________________________________
> P4 mailing list
> P4 at plc.inf.elte.hu
> https://plc.inf.elte.hu/mailman/listinfo/p4



More information about the P4 mailing list