blob: e44fdd16f9b76cd4140c09ac37fb36745a0f6dbd [file] [log] [blame]
Holger Hans Peter Freyther7d3b3d02010-06-07 19:08:57 +08001-- This script verifies that the N(U) is increasing...
2--
3do
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 Freytherbc105932010-06-07 19:17:30 +080028 local bssgp_tlli = tostring(bssgp_tlli)
Holger Hans Peter Freyther7d3b3d02010-06-07 19:08:57 +080029 local llc_nu = tostring(llc_nu)
30 local llc_sapi = tostring(llc_sapi)
31
Holger Hans Peter Freytherbc105932010-06-07 19:17:30 +080032 local src_key = ip_src .. "-" .. bssgp_tlli .. "-" .. llc_sapi
Holger Hans Peter Freyther7d3b3d02010-06-07 19:08:57 +080033 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 Freytherf4881212010-06-07 19:16:31 +080040 local function tohex(number)
41 return string.format("0x%x", tonumber(number))
42 end
43
Holger Hans Peter Freyther7d3b3d02010-06-07 19:08:57 +080044 nu_state_src[src_key] = llc_nu
45 if tonumber(last_nu) + 1 ~= tonumber(llc_nu) then
Holger Hans Peter Freyther7f573d52010-06-07 21:37:43 +080046 print("JUMP in N(U) on TLLI " .. tohex(bssgp_tlli) .. " and SAPI: " .. llc_sapi .. " src: " .. ip_src)
Holger Hans Peter Freyther7d3b3d02010-06-07 19:08:57 +080047 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()
58end
59