summaryrefslogtreecommitdiff
path: root/eth-multiplexer/ChangeLog
blob: 37371185631bfce1806ba361537d7aa7c24f7f05 (plain)
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
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
2009-04-18  Zheng Da  <zhengda1936@gmail.com>

	* device_impl.c (ds_device_open): Create a virtual device if it
					  doesn't exist.

	* netfs_impl.c (new_node): Test if the lnode structure exists
				   before setting its field.
	(lookup): Copy the device name and don't create the virtual device.
	(netfs_validate_stat): Set the status with the one of the underlying
			       node if the node has no lnode structure.
	(netfs_attempt_chmod): chmod isn't supported if the node has no lnode
			       structure.
	(netfs_node_norefs): Free the name in netnode.

	* netfs_impl.h (net_node): Add a new field 'name'.

2009-04-18  Zheng Da  <zhengda1936@gmail.com>

	* device_impl.c (ds_device_open): Check the mode for opening the file.

	* multiplexer.c
	(underlying_node_stat): New variable.
	(main): Get the mapped time from Mach and set the time of the underlying
		node of the translator.

	* netfs_impl.c (lookup): Set the new created node with the same permission
				 as the underlying node of the translator and its time.
	(netfs_check_open_permissions): Check the open permission of a node
					in the same way.
	(netfs_attempt_unlink): Change the return value.
	(netfs_attempt_rename): Likewise.
	(netfs_attempt_mkdir): Likewise.
	(netfs_attempt_rmdir): Likewise.
	(netfs_attempt_chown): Likewise.
	(netfs_attempt_chauthor): Likewise.
	(netfs_attempt_mksymlink): Likewise.
	(netfs_attempt_mkdev): Likewise.
	(netfs_set_translator): Likewise.
	(netfs_attempt_chflags): Likewise.
	(netfs_attempt_set_size): Likewise.
	(netfs_attempt_link): Likewise.
	(netfs_attempt_mkfile): Likewise.
	(netfs_attempt_write): Likewise.
	(netfs_attempt_chmod): Write the code to support the change of the mode.

	* netfs_impl.h (multiplexer_maptime): Add the declaration.

2009-01-03  Zheng Da  <zhengda1936@gmail.com>

	* device_impl.c (ds_device_write): Deallocate the out-of-line data.

2008-12-12  Zheng Da  <zhengda1936@gmail.com>

	* multiplexer.c (main): Initialize the file status of the root node.
	
	* netfs_impl.c (netfs_validate_stat): Set the file status of the node
					      with the one in the light node.

	* vdev.h (dev_act_func): Define a new type.
	(foreach_dev_do): Declare the function.

2008-11-18  Zheng Da  <zhengda1936@gmail.com>

	* netfs_impl.c (netfs_get_dirents): Use foreach_dev_do.

	* vdev.c (dev_head, dev_num): Hide in the file.
	(dev_list_lock): New variable.
	(get_dev_num): New function.
	(lookup_dev_by_name): Use lock.
	(foreach_dev_do): New function.
	(remove_dead_port_from_dev): Use lock.
	(broadcast_pack, broadcast_msg): Use foreach_dev_do.

	* vdev.h (dev_num): Remove declaration. 
	(get_dev_num): Add declaration.

2008-11-13  Zheng Da  <zhengda1936@gmail.com>

	* device_impl.c (ds_device_open): Use dev_port, dereference pi.

	* util.h (print_backtrace): New macro.

	* vdev.c (add_vdev): Set dev_port.

	* vdev.h (vether_device): Add dev_port.

2008-11-12  Zheng Da  <zhengda1936@gmail.com>

	* Makefile (SRCS): Updated.

	* demuxer.c: New file.

	* device_impl.c (ds_device_open): Use netfs_port_bucket.

	* make-protid.c: Deleted.

2008-11-02  Zheng Da  <zhengda1936@gmail.com>

	* Makefile (CFLAGS): Add a macro.
	(SRCS): Add new C files.
	(LCLHDRS): Add new H files.
	(HURDLIBS): Change libraries.
	
	* demuxer.c: New file.

	* device_impl.c: New file.

	* make-protid.c: New file.

	* netfs_impl.c: New file.

	* netfs_impl.h: New file.

	* notify_impl.c: New file.

	* multiplexer.c: Remove the trivfs variables. Move the implementation of
	notify interface. Move the implementation of device interface.
	(multiplexer_thread): New functions.
	(main): Run the libnetfs translator.

	* util.h (debug): Update.

	* vdev.c (lookup_dev_by_name): Use strncmp.
	(add_vdev): Change its interface.

2008-10-27  Zheng Da  <zhengda1936@gmail.com>

	* README: Update.

	* bpf_impl.c (destroy_filters): New function.
	
	* multiplexer.c (nb_dev): Deleted.
	(options): Remove the option '-v'.
	(do_mach_notify_no_senders): Remove all port_info in the same way.
	(ds_device_open): Create new devices if they don't exist, and decrease
			  their reference counts.
	(ds_device_set_filter): Fix a bug.
	(trivfs_goaway): Use has_vdev() to test.
	(parse_opt): Remove the code of handling '-v'.
	(main): Remove the code of creating virtual devices.

	* util.h (ETH_P_IP): New macro.
	
	* vdev.c (all_dev_close): Deleted.
	(add_vdev): Link virtual device.
	(destroy_vdev): New function.

	* vdev.h (vether_device): Changed.
	

2008-10-03  Zheng Da  <zhengda1936@gmail.com>

	* Makefile (CFLAGS): Remove the include paths from pfinet.

	* util.h: Remove the line of including linux/if_ether.h.
	(ETH_ALEN): New macro.
	(ethhdr): New structure.

	* vdev.c (ETH_HLEN): New macro.

	* vdev.h: Remove the line of including linux/etherdevice.h and include util.h

2008-10-03  Zheng Da  <zhengda1936@gmail.com>

	* multiplexer.c (parse_opt): Don't create the virtual devices in case 'v'.
	(main): Create the virtual devices.

	* README: Update.

2008-10-03  Zheng Da  <zhengda1936@gmail.com>

	* multiplexer.c (ds_device_write): Don't call device_write when ether_port is NULL.
	(ds_device_get_status): Call dev_getstat when ether_port is NULL.
	(main): If device_file isn't specified, don't open the underlying device.

2008-09-26  Zheng Da  <zhengda1936@gmail.com>

	* vdev.c (deliver_msg): Use non-block send.

2008-09-21  Zheng Da  <zhengda1936@gmail.com>

	* README: Update.

2008-09-02  Zheng Da  <zhengda1936@gmail.com>

	* ethernet.c (ether_filter): Use the original NPF filter.

2008-9-01  Zheng Da  <zhengda1936@gmail.com>

	* multiplexer.c (ds_device_write): Reverse the calling of functions.
	(ds_device_get_status): Call device_get_status.

	* vdev.c (broadcast_pack): Change its function prototype. Broadcast to
	all other interface.
	(deliver_pack): Don't set the message header.
	(broadcast_msg): Save the original message header and restore it.
	(deliver_msg): Deallocate the port if mach_msg fails.

	* vdev.h (broadcast_pack): Change its function prototype.

2008-8-29  Zheng Da <zhengda1936@gmail.com>

	* ethernet.c (ethernet_open): Use error instead of assert_perror.

	* multiplexer.c (ds_device_set_filter): Return the error.

2008-8-28 Zheng Da <zhengda1936@gmail.com>

	* ethernet.c (NET_FLAGS): New macro.

2008-8-22 Zheng Da <zhengda1936@gmail.com>

	* README: Update.

	* Makefile: Remove list.h.

	* multiplexer.c (do_mach_notify_no_senders): Get vether_device object
	with ports_lookup_port().
	(ds_xxx_device_set_status): Likewise.
	(ds_xxx_device_get_status): Likewise.
	(ds_xxx_device_set_filter): Likewise.
	(ds_device_write): Likewise.
	(ds_device_write_inband): Likewise.
	(ds_device_read): Likewise.
	(ds_device_read_inband): Likewise.
	(ds_device_map): Likewise.
	(ds_device_set_status): Likewise.
	(ds_device_get_status): Likewise.
	(ds_device_set_filter): Likewise.
	(do_mach_notify_dead_name): Deallocate the port.
	(ds_device_open): Get the name directly from the vether_device object.
	(ds_device_close): Return 0 immediately.

	* vdev.c (dev_head): Point to the head of the device list.
	(print_eth_addr): Removed.
	(lookup_dev_by_devport): Likewise.
	(lookup_dev_by_name): Use the for loop to replace list_for_each_entry.
	(remove_dead_port_from_dev): Likewise.
	(all_dev_close): Likewise.
	(broadcast_pack): Likewise.
	(broadcast_msg): Likewise.
	(add_vdev): Create the vether_device object with ports_create_port.
	(has_vdev): Test if the device list is empty.

	* vdev.h: Don't include list.h.
	(vether_device): Include the port_info object instead of its pointer.
	(next): Replace dev_list.

	* list.h: Removed.

2008-8-20 Zheng Da <zhengda1936@gmail.com>

	* README: Update.

	* multiplexer.c (options): Update.

2008-8-20 Zheng Da <zhengda1936@gmail.com>

	* multiplexer.c (main): Test device_file before using it.

2008-8-20 Zheng Da <zhengda1936@gmail.com>

	* multiplexer.c (device_file): Rename a variable.
	(main): Use device_file directly.

2008-8-19 Zheng Da <zhengda1936@gmail.com>

	* multiplexer.c (main): Generate the device file name, and use it
	to open the device.

2008-8-18 Zheng Da <zhengda1936@gmail.com>

	* README: New file.

	* multiplexer.c (options): Change the meaning of '-v' option.
	(parse_opt): Change the way of handling '-v' option.
	
	* vdev.c (has_vdev): New function.

	* vdev.h (has_vdev): New declaration. 

2008-8-17 Zheng Da <zhengda1936@gmail.com>

	* ethernet.c (ethernet_open): Use a hard coded string for the device name.

	* multiplexer.c: Remove the option '-M'.
	(parse_opt): Remove the code of handling '-M' option.
	(main): Get the master device port from the device file.

2008-8-14 Zheng Da <zhengda1936@gmail.com>

	* ChangeLog: New file.

	* multiplexer.c (vdev_portclass, other_portclass):
	New variables.
	(do_mach_notify_no_senders): Mark the device unused when there are no
	senders for the device.
	(do_mach_notify_dead_name): Return 0.
	(ds_device_open): Mark the device used.
	(ds_device_close): Remove the code of decreasing the count of the device.
	(trivfs_goaway): Only test if all devices aren't used, and delete the code
	of closing the device.
	(parse_opt): Use vdev_portclass to create the virtual device.
	(main): Create vdev_portclass and other_portclass, open the ethernet
	device with other_portclass and create notify_pi with other_portclass.

	* vdev.c (all_dev_close): Change the way of testing if all devices are
	closed.
	
	* vdev.h (vether_device): Replace count field with used.

2008-8-13 Zheng Da <zhengda1936@gmail.com>

	* bpf_impl.c: New file.

	* bpf_impl.h: New file.

	* dev_stat.c: New file.

	* ethernet.c: New file.

	* ethernet.h: New file.

	* list.h: New file.

	* Makefile: New file.

	* multiplexer.c: New file.

	* queue.c: New file.

	* queue.h: New file.

	* test.c: New file.

	* util.h: New file.

	* vdev.c: New file.

	* vdev.h: New file.