|
108 | 108 | On receive: |
109 | 109 | ----------- |
110 | 110 |
|
111 | | -Incoming, dev->hard_header!=NULL |
| 111 | +Incoming, dev->header_ops != NULL |
112 | 112 | mac_header -> ll header |
113 | 113 | data -> data |
114 | 114 |
|
115 | | -Outgoing, dev->hard_header!=NULL |
| 115 | +Outgoing, dev->header_ops != NULL |
116 | 116 | mac_header -> ll header |
117 | 117 | data -> ll header |
118 | 118 |
|
119 | | -Incoming, dev->hard_header==NULL |
120 | | - mac_header -> UNKNOWN position. It is very likely, that it points to ll |
121 | | - header. PPP makes it, that is wrong, because introduce |
122 | | - assymetry between rx and tx paths. |
| 119 | +Incoming, dev->header_ops == NULL |
| 120 | + mac_header -> data |
| 121 | + However drivers often make it point to the ll header. |
| 122 | + This is incorrect because the ll header should be invisible to us. |
123 | 123 | data -> data |
124 | 124 |
|
125 | | -Outgoing, dev->hard_header==NULL |
126 | | - mac_header -> data. ll header is still not built! |
| 125 | +Outgoing, dev->header_ops == NULL |
| 126 | + mac_header -> data. ll header is invisible to us. |
127 | 127 | data -> data |
128 | 128 |
|
129 | 129 | Resume |
130 | | - If dev->hard_header==NULL we are unlikely to restore sensible ll header. |
| 130 | + If dev->header_ops == NULL we are unable to restore the ll header, |
| 131 | + because it is invisible to us. |
131 | 132 |
|
132 | 133 |
|
133 | 134 | On transmit: |
134 | 135 | ------------ |
135 | 136 |
|
136 | | -dev->hard_header != NULL |
| 137 | +dev->header_ops != NULL |
137 | 138 | mac_header -> ll header |
138 | 139 | data -> ll header |
139 | 140 |
|
140 | | -dev->hard_header == NULL (ll header is added by device, we cannot control it) |
| 141 | +dev->header_ops == NULL (ll header is invisible to us) |
141 | 142 | mac_header -> data |
142 | 143 | data -> data |
143 | 144 |
|
|
0 commit comments