| | 117 | switch(datalink) { |
| | 118 | case DLT_ARCNET: |
| | 119 | offset = 6; |
| | 120 | break; |
| | 121 | case DLT_EN10MB: |
| | 122 | offset = 14; |
| | 123 | break; |
| | 124 | case DLT_SLIP: |
| | 125 | offset = 16; |
| | 126 | break; |
| | 127 | case DLT_SLIP_BSDOS: |
| | 128 | offset = 24; |
| | 129 | break; |
| | 130 | case DLT_NULL: |
| | 131 | case DLT_LOOP: |
| | 132 | offset = 4; |
| | 133 | break; |
| | 134 | case DLT_PPP: |
| | 135 | case DLT_C_HDLC: /* BSD/OS Cisco HDLC */ |
| | 136 | case DLT_PPP_SERIAL: /* NetBSD sync/async serial PPP */ |
| | 137 | offset = 4; |
| | 138 | break; |
| | 139 | case DLT_PPP_ETHER: |
| | 140 | offset = 8; |
| | 141 | break; |
| | 142 | case DLT_PPP_BSDOS: |
| | 143 | offset = 24; |
| | 144 | break; |
| | 145 | /* |
| | 146 | [RC, 2002/10/20] Commented out FDDI since there is a strange pad complication |
| | 147 | on NetBSD, DEC OSF/1 aka Digital Unix aka Tru64 Unix and Ultrix. |
| | 148 | If someone yells because she needs FDDI, we'll have a closer look... |
| | 149 | |
| | 150 | case DLT_FDDI: |
| | 151 | * |
| | 152 | * FDDI doesn't really have a link-level type field. |
| | 153 | * We set "off_linktype" to the offset of the LLC header. |
| | 154 | * |
| | 155 | * To check for Ethernet types, we assume that SSAP = SNAP |
| | 156 | * is being used and pick out the encapsulated Ethernet type. |
| | 157 | * XXX - should we generate code to check for SNAP? |
| | 158 | * |
| | 159 | offset = 21; |
| | 160 | |
| | 161 | #ifdef PCAP_FDDIPAD |
| | 162 | offset += pcap_fddipad; |
| | 163 | #endif |
| | 164 | break; |
| | 165 | */ |
| | 166 | case DLT_IEEE802: |
| | 167 | offset = 22; |
| | 168 | break; |
| | 169 | case DLT_IEEE802_11: |
| | 170 | offset = 30; |
| | 171 | break; |
| | 172 | case DLT_PRISM_HEADER: |
| | 173 | offset = 144+30; |
| | 174 | break; |
| | 175 | case DLT_ATM_RFC1483: |
| | 176 | offset = 8; |
| | 177 | break; |
| | 178 | case DLT_RAW: |
| | 179 | offset = 0; |
| | 180 | break; |
| | 181 | case DLT_ATM_CLIP: /* Linux ATM defines this */ |
| | 182 | offset = 8; |
| | 183 | break; |
| | 184 | case DLT_LINUX_SLL: /* fake header for Linux cooked socket */ |
| | 185 | offset = 16; |
| | 186 | break; |
| | 187 | case DLT_LTALK: |
| | 188 | offset = 0; |
| | 189 | break; |
| | 190 | /* |