Holger Hans Peter Freyther | 96ba017 | 2010-06-07 19:08:57 +0800 | [diff] [blame] | 1 | -- This script verifies that the N(U) is increasing... |
| 2 | -- |
| 3 | do |
| 4 | local nu_state_src = {} |
| 5 | |
| 6 | local function init_listener() |
| 7 | -- handle the port as NS over IP |
| 8 | local udp_port_table = DissectorTable.get("udp.port") |
| 9 | local gprs_ns_dis = Dissector.get("gprs_ns") |
| 10 | udp_port_table:add(23000,gprs_ns_dis) |
| 11 | |
| 12 | -- we want to look here... |
| 13 | local llc_sapi_get = Field.new("llcgprs.sapib") |
| 14 | local llc_nu_get = Field.new("llcgprs.nu") |
| 15 | local bssgp_tlli_get = Field.new("bssgp.tlli") |
| 16 | |
| 17 | local tap = Listener.new("ip", "udp.port == 23000") |
| 18 | function tap.packet(pinfo,tvb,ip) |
| 19 | local llc_sapi = llc_sapi_get() |
| 20 | local llc_nu = llc_nu_get() |
| 21 | local bssgp_tlli = bssgp_tlli_get() |
| 22 | |
| 23 | if not llc_sapi or not llc_nu or not bssgp_tlli then |
| 24 | return |
| 25 | end |
| 26 | |
| 27 | local ip_src = tostring(ip.ip_src) |
Holger Hans Peter Freyther | 128ba98 | 2010-06-07 19:17:30 +0800 | [diff] [blame] | 28 | local bssgp_tlli = tostring(bssgp_tlli) |
Holger Hans Peter Freyther | 96ba017 | 2010-06-07 19:08:57 +0800 | [diff] [blame] | 29 | local llc_nu = tostring(llc_nu) |
| 30 | local llc_sapi = tostring(llc_sapi) |
| 31 | |
Holger Hans Peter Freyther | 128ba98 | 2010-06-07 19:17:30 +0800 | [diff] [blame] | 32 | local src_key = ip_src .. "-" .. bssgp_tlli .. "-" .. llc_sapi |
Holger Hans Peter Freyther | 96ba017 | 2010-06-07 19:08:57 +0800 | [diff] [blame] | 33 | local last_nu = nu_state_src[src_key] |
| 34 | if not last_nu then |
| 35 | -- print("Establishing mapping for " .. src_key) |
| 36 | nu_state_src[src_key] = llc_nu |
| 37 | return |
| 38 | end |
| 39 | |
Holger Hans Peter Freyther | 6516ed3 | 2010-06-07 19:16:31 +0800 | [diff] [blame] | 40 | local function tohex(number) |
| 41 | return string.format("0x%x", tonumber(number)) |
| 42 | end |
| 43 | |
Holger Hans Peter Freyther | 96ba017 | 2010-06-07 19:08:57 +0800 | [diff] [blame] | 44 | nu_state_src[src_key] = llc_nu |
| 45 | if tonumber(last_nu) + 1 ~= tonumber(llc_nu) then |
Holger Hans Peter Freyther | 1a130e2 | 2010-06-07 21:37:43 +0800 | [diff] [blame] | 46 | print("JUMP in N(U) on TLLI " .. tohex(bssgp_tlli) .. " and SAPI: " .. llc_sapi .. " src: " .. ip_src) |
Holger Hans Peter Freyther | 96ba017 | 2010-06-07 19:08:57 +0800 | [diff] [blame] | 47 | print("\t last: " .. last_nu .. " now: " .. llc_nu) |
| 48 | end |
| 49 | end |
| 50 | |
| 51 | function tap.draw() |
| 52 | end |
| 53 | |
| 54 | function tap.reset() |
| 55 | end |
| 56 | end |
| 57 | init_listener() |
| 58 | end |
| 59 | |