TC 動作 - 環境規則

對於任何新的 tc 動作的作者,環境規則如下:

  1. 如果你竊取或借用任何資料包,你將偏離正道,你應該克隆它。

    例如,如果您的動作將資料包排隊以便稍後處理,或者透過重定向資料包有意分支,那麼您需要克隆該資料包。

  2. 如果您修改任何資料包,則在其他人引用 skb 的情況下,您應該呼叫 pskb_expand_head。之後,您就“擁有”了 skb。

  3. 丟棄你不擁有的資料包是不可接受的。您只需將 TC_ACT_SHOT 返回給呼叫者,他們將丟棄它。

對於動作的呼叫者(qdiscs 等),環境規則如下:

  1. 您有責任釋放任何作為 TC_ACT_SHOT/STOLEN/QUEUED 返回的內容。 如果沒有返回 TC_ACT_SHOT/STOLEN/QUEUED,那麼一切都很好,您不需要做任何事情。

如果有任何不清楚的地方,請在 netdev 上發帖。