- if (t->aux->tx_pkt_orig)
- t->tx_pkt = t->aux->tx_pkt_orig;
- t->aux->tx_pkt_orig = t->tx_pkt;
- t->tx_pkt = tx_pkt_trace;
+ if (t->tx_pkt == tx_pkt_l3) {
+ if (t->aux->tx_pkt_orig)
+ t->aux->tx_pkt_l2 = t->aux->tx_pkt_orig;
+ t->aux->tx_pkt_orig = t->aux->tx_pkt_l2;
+ t->aux->tx_pkt_l2 = tx_pkt_trace;
+ } else {
+ if (t->aux->tx_pkt_orig)
+ t->tx_pkt = t->aux->tx_pkt_orig;
+ t->aux->tx_pkt_orig = t->tx_pkt;
+ t->tx_pkt = tx_pkt_trace;
+ }