Motr  M0
FDMI Source Dock internals
Collaboration diagram for FDMI Source Dock internals:

Data Structures

struct  m0_fdmi_flt_id_arr
 
struct  m0_fop_fdmi_record
 
struct  m0_fop_fdmi_record_reply
 
struct  m0_fop_fdmi_rec_release
 
struct  m0_fop_fdmi_rec_release_reply
 
struct  m0_fdmi_src_ctx
 
struct  fdmi_sd_fom
 
struct  fdmi_rr_fom
 
struct  fdmi_sd_timer_fom
 
struct  m0_fdmi_src_dock
 
struct  m0_fdmi_sd_filter_type_handler
 

Typedefs

typedef uint32_t m0_fdmi_rec_type_id_t
 

Functions

struct m0_fdmi_flt_id_arr M0_XCA_DOMAIN (rpc)
 
M0_INTERNAL int m0_fdms_fop_init (void)
 
M0_INTERNAL void m0_fdms_fop_fini (void)
 
 M0_TL_DESCR_DECLARE (fdmi_record_list, M0_EXTERN)
 
 M0_TL_DECLARE (fdmi_record_list, M0_EXTERN, struct m0_fdmi_src_rec)
 
 M0_TL_DESCR_DECLARE (fdmi_matched_filter_list, M0_EXTERN)
 
 M0_TL_DECLARE (fdmi_matched_filter_list, M0_EXTERN, struct m0_conf_fdmi_filter)
 
M0_INTERNAL void m0_fdmi__enqueue (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__enqueue_locked (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__record_post (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__rec_id_gen (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__src_dock_fom_init (void)
 
M0_INTERNAL int m0_fdmi__src_dock_fom_start (struct m0_fdmi_src_dock *src_dock, const struct m0_filterc_ops *filterc_ops, struct m0_reqh *reqh)
 
M0_INTERNAL void m0_fdmi__src_dock_fom_stop (struct m0_fdmi_src_dock *src_dock)
 
M0_INTERNAL struct m0_fdmi_src_ctxm0_fdmi__src_ctx_get (enum m0_fdmi_rec_type_id src_type_id)
 
M0_INTERNAL void m0_fdmi__fs_get (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__fs_put (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__fs_begin (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__fs_end (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__record_init (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL void m0_fdmi__record_deinit (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL enum m0_fdmi_rec_type_id m0_fdmi__sd_rec_type_id_get (struct m0_fdmi_src_rec *src_rec)
 
M0_INTERNAL int m0_fdmi__handle_release (struct m0_uint128 *fdmi_rec_id)
 
M0_INTERNAL void m0_fdmi__src_dock_fom_wakeup (struct fdmi_sd_fom *sd_fom)
 

Detailed Description

See also
FDMI Functional Specification

Typedef Documentation

◆ m0_fdmi_rec_type_id_t

typedef uint32_t m0_fdmi_rec_type_id_t

FDMI record type (XCODE specific adaptation of m0_fdmi_rec_type_id)

Intention is to eliminate situations with unknown data size at transcoding

See also
enum m0_fdmi_rec_type_id

Definition at line 52 of file fops.h.

Function Documentation

◆ m0_fdmi__enqueue()

M0_INTERNAL void m0_fdmi__enqueue ( struct m0_fdmi_src_rec src_rec)

Definition at line 250 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__enqueue_locked()

M0_INTERNAL void m0_fdmi__enqueue_locked ( struct m0_fdmi_src_rec src_rec)

Definition at line 236 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__fs_begin()

M0_INTERNAL void m0_fdmi__fs_begin ( struct m0_fdmi_src_rec src_rec)

Helper function, call "processing start" for the source

Definition at line 415 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__fs_end()

M0_INTERNAL void m0_fdmi__fs_end ( struct m0_fdmi_src_rec src_rec)

Helper function, call "processing complete" for the source

Definition at line 427 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__fs_get()

M0_INTERNAL void m0_fdmi__fs_get ( struct m0_fdmi_src_rec src_rec)

Helper function, call "increment reference counter" function for the record

Definition at line 388 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__fs_put()

M0_INTERNAL void m0_fdmi__fs_put ( struct m0_fdmi_src_rec src_rec)

Helper function, call "decrement reference counter" function for the source

Definition at line 402 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__handle_release()

M0_INTERNAL int m0_fdmi__handle_release ( struct m0_uint128 fdmi_rec_id)

Release FDMI record handle by record id

Definition at line 445 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__rec_id_gen()

M0_INTERNAL void m0_fdmi__rec_id_gen ( struct m0_fdmi_src_rec src_rec)

Function generates new fdmi record ID unque across the cluster.

Todo:
Phase 2: m0_fdmi__rec_id_gen() should return unique ID within whole Motr system. Some generic function should be used. For this moment, to provide unique values within several running Motr instances, lets populate hi value part with rand value, low part will be incremented. As a bare minimum, for phase 2 we need to make sure fsdc_instance_id is globally unique, and that re-start generates a new one, again globally unique. (Note this is required, if we leave the same ID over restart, new instance will try to process replies aimed at previous one.
Todo:
Phase 2: WARNING! When modifying this function, make sure to rework m0_fdmi__handle_release, as it is VERY tightly coupled with this one.

Definition at line 186 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__record_deinit()

M0_INTERNAL void m0_fdmi__record_deinit ( struct m0_fdmi_src_rec src_rec)

Deinitialize and release FDMI record context

Definition at line 174 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__record_init()

M0_INTERNAL void m0_fdmi__record_init ( struct m0_fdmi_src_rec src_rec)

Initialize FDMI source record

Definition at line 155 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__record_post()

M0_INTERNAL void m0_fdmi__record_post ( struct m0_fdmi_src_rec src_rec)

Function posts new fdmi data for analysis by FDMI source dock.

Definition at line 261 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__sd_rec_type_id_get()

M0_INTERNAL enum m0_fdmi_rec_type_id m0_fdmi__sd_rec_type_id_get ( struct m0_fdmi_src_rec src_rec)

Helper function, returns FDMI record type enumeration

Definition at line 439 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__src_ctx_get()

M0_INTERNAL struct m0_fdmi_src_ctx* m0_fdmi__src_ctx_get ( enum m0_fdmi_rec_type_id  src_type_id)

Returns registered source context

Definition at line 374 of file source_dock.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__src_dock_fom_init()

M0_INTERNAL void m0_fdmi__src_dock_fom_init ( void  )

Initialise source dock fom

Definition at line 243 of file source_dock_fom.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__src_dock_fom_start()

M0_INTERNAL int m0_fdmi__src_dock_fom_start ( struct m0_fdmi_src_dock src_dock,
const struct m0_filterc_ops filterc_ops,
struct m0_reqh reqh 
)

Starts source dock fom to handle posted FDMI records

Todo:
FDMI service can't work without filterc. inform ADDB on critical error.

Definition at line 257 of file source_dock_fom.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__src_dock_fom_stop()

M0_INTERNAL void m0_fdmi__src_dock_fom_stop ( struct m0_fdmi_src_dock src_dock)

Stop source dock fom to handle posted FDMI records

Definition at line 388 of file source_dock_fom.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdmi__src_dock_fom_wakeup()

M0_INTERNAL void m0_fdmi__src_dock_fom_wakeup ( struct fdmi_sd_fom sd_fom)

Wakeup FDMI source dock fom

FOM can be uninitialized here, because posting is allowed even if FDMI service is not started

Todo:
Small possibility of races exist (Phase 2).

Definition at line 338 of file source_dock_fom.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdms_fop_fini()

M0_INTERNAL void m0_fdms_fop_fini ( void  )

Definition at line 120 of file fops.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_fdms_fop_init()

M0_INTERNAL int m0_fdms_fop_init ( void  )

Definition at line 108 of file fops.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ M0_TL_DECLARE() [1/2]

M0_TL_DECLARE ( fdmi_record_list  ,
M0_EXTERN  ,
struct m0_fdmi_src_rec   
)

◆ M0_TL_DECLARE() [2/2]

M0_TL_DECLARE ( fdmi_matched_filter_list  ,
M0_EXTERN  ,
struct m0_conf_fdmi_filter   
)

◆ M0_TL_DESCR_DECLARE() [1/2]

M0_TL_DESCR_DECLARE ( fdmi_record_list  ,
M0_EXTERN   
)

◆ M0_TL_DESCR_DECLARE() [2/2]

M0_TL_DESCR_DECLARE ( fdmi_matched_filter_list  ,
M0_EXTERN   
)

◆ M0_XCA_DOMAIN()

struct m0_fdmi_flt_id_arr M0_XCA_DOMAIN ( rpc  )