-
Notifications
You must be signed in to change notification settings - Fork 8
/
TODO
193 lines (146 loc) · 5.88 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
General:
--------
- Check what headers/parts should be included by user-mode programs
(#ifdef KERNEL)
- Check all input data in ioctls/setsockopt for security bugs
- Document code with Doxygen standard
- Create a libvisdn for channel manipulation functions?
- Define in which contexts all the various functions may be called. For example
ppp needs ppp_input() to not be called in hard-irq context and we either must
force all vISDN xmit functions callers to not be in hard-irq context or queue
frames in visdn-ppp.ko and use a tasklet to pass them to ppp
- What should we do when a frame is bigger than the FIFO size on hardware?
Build system:
-------------
- Avoid libtool to install chan_visdn.a, chan_visdn.la, run ldconfig and
complain about non-standard directory location
- Conditionally build kfifo!
kstreamer:
----------
- All netlink transactions are atomic, if the reader does not empty his
receive buffer the tables remain locked forever! Implement some timeout
policy
- Re-implement non-persistent pipelines, bound to pid or open file, so that the
holding process will drop the pipeline on exit without closing (crash/kill/
etc).
- Find a better way to allocate ids instead of using a list (?)
chan_visdn:
-----------
- Echo canceller produces some strange noise
- When the module fails initialization, forbid calls and report an error
- Record call failures and failure type in order to put an interface offline
if not working.
- Make call parking feature enabling configurable
- Fix/complete Progress indicators to notify interworking with non-ISDN
- Asterisk's design makes difficult to implement some sort of parameter
negotiation so it is impossible to know what bearer capabilities are
accepted by a destination, if it supports overlap dialing and so on...
- User-mode call bumbing
- Complete sequence if the user is sending partial CLI
- When lapd module is removed the poll routine goes in infinite loop with
DL-RELEASE-CONFIRM return codes
- When the remote party responds RELEASE COMPLETE with "User Busy" cause
we respond to * "CHANUNAVAIL"
- Rewrite netlink code to use proper macros
- When path-enabling ioctl fails the call is not hung up
- When unloading module or rebooting the machine, send TEI_REMOVE to every
interface for every TEI
libq931:
--------
- ECT (explicit call transfer) (ETS 300 369-1) (367, 368, 369)
- Call bumbing
- Implement Called/Calling party subaddress IE
- Implement Congestion level IE
- Implement Keypad facility IE
- Implement More Data IE (?)
- Implement Network-specific facilities IE
- Implement Repeat Indicator IE
- Implement Segmented Message IE (?)
- Implement Signal IE
- Implement Transit Network Selection IE
- Implement User-User Information IE
- Implement ETS 300 125 Appendix III (Optional basic access deactivation
procedures)
- Complete decoding of BC, HLC, LLC
- Make libq931 a daemon to which clients can connect.
Invent a protocol (CAPI-ng :)) to use for such connection.
- When we receive a SETUP_ACK after having sent DISCONNECT what should we do?
Send STATUS? Ignore it?
timer:
------
- Add open/release functions to disable the timer when no users are using it
visdn_core:
-----------
- Use correct _IOR/_IOC/_IOW macros!!!
- Channel bundling
- Allocate a single major number for control devices?
lapd:
-----
- When the socket on a TE port is bound, do a TEI Verify?
- When the socket on a TE port is closed send a TEI Verify?
- When allmulti flag is changed while the interface is UP, Tei Mgmt entities
are not released/allocated correctly. The interface needs to be put down and
than up to make it work
- Implement SOCK_RAW sockets (?)
- Implement listen backlog maximum size
- Implement frame acknowledging throught outgoing i-frames instead of specific
RR
- Add lapd_ptr to struct net_device. Currently we're using atalk_ptr and it is
safe, since ISDN interfaces will never run AppleTalk, however it is an ugly
hack and should be fixed.
- Add AF_LAPD to linux/include/linux/socket.h
- Add PF_LAPD to linux/include/linux/socket.h
- Add SOL_LAPD to linux/inclode/linx/socket.h ????
- Add ARPHRD_LAPD to linux/include/linux/if_arp.h
- Add ETH_P_LAPD to linux/include/linux/if_ether.h
- See ioctl-number.txt and mail <[email protected]> and register an IOCTL numbers
- The interface role (in the ISDN network) is determined by the IFF_ALLMULTI
flag, a specific flag would be better.
- Implement ETS 300 125 Appendix III (Optional basic access deactivation
procedures)
visdn-ec:
---------
- Add LEC disabler tone detection
visdn-netdev:
-------------
- Backlog frames dropped by netif_rx
- Reallocate channel ID from the beginning instead of incrementing every time
visdn-ppp:
----------
- Reallocate channel ID from the beginning instead of incrementing every time
- There is a race condition between interface creation and SuSE scripts bringing
the interface up and down
visdn-streamport:
-----------------
- Reallocate channel ID from the beginning instead of incrementing every time
- Fix fifo jitter buffer
hfc-4s:
-------
- Finish PCM bus support (and remove workaround for too big kmalloc)
- Use memcpy_toio
- Reintegrate BERT support
- There may be some race condition between unload an state_change_work
hfc-pci:
-------
- FIX FIFO free calculation and queue handling
- Finish PCM bus support
- Reintegrate E-channel sniffing
- There may be some race condition between unload an state_change_work
hfc-e1:
-------
hfc-usb:
--------
- First received frame is dropped
- Finish implementing T1 and T3 timers
vgsm:
-----
- Handle hung micros by timing out writes/reads and resetting the board
- Implement CODEC write queueing and CODEC read waiting
vgsm2:
------
chan_vgsm:
----------
- Implement removal of modules during reload if they are removed in vgsm.conf
- Implement removal of huntgroups during reload if they are removed in vgsm.conf
- Implement network listing command
- Implement reconfiguration of operator selection on reload