sk_buff copy & sk_buff-Klon
ich m schreiben eines Moduls für den linux-kernel & es zu versuchen, zu stehlen das packet & seine verwandten sk_buff. zu tun, so dass ich verwenden möchten struct sk_buff *skb_copy(const struct sk_buff *skb, gfp_t gfp_mask)
& dann der Rückgabetyp der kernel als Paket.
so, wenn der kernel bekommt die info über das Paket legen Sie es versuchen zu befreien, die sk_buff. hier meine Frage kommt wird es auf meine neu kopiert skb & sein Spitzname Daten des Pakets? oder jetzt kann ich spielen mit meine neue sk_buff?
oder ist es möglich, skb_clone() & verwenden Sie den Paket-Daten-Teil, ohne das löschen der referenzierten Daten, die von alten sk_buff, weil es reduse kopieren Kosten für das Paket.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit
skb_copy
wird, kopieren Sie sowohl diesk_buff
und das Paket an neuen Speicher. Also wenn der kernel gibt das andere, die Kopie wird nicht betroffen sein.skb_clone
in der anderen hand kopiert diesk_buff
Struktur, um neuen Speicher, aber nicht das Paket. Also wenn der alte freigegeben wird, Ihre Kopie haben das Paket auch befreit.Hier sind einige links:
http://docs.blackfin.uclinux.org/kernel/generated/networking/re68.html (skb_clone)
http://oss.org.cn/ossdocs/gnu_linux/kernel-api/r8086.html (skb_copy)