---
Fuzzer filename: '/src/openvswitch/tests/oss-fuzz/json_parser_target.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    json_destroy
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          38
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - json_destroy__
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/json.h:202,9'
          Dst:             json_destroy__
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/openvswitch/tests/oss-fuzz/json_parser_target.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          102
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - json_destroy
        - json_from_string
        - json_to_string
        - jsonrpc_msg_from_json
        - jsonrpc_msg_to_json
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'tests/oss-fuzz/json_parser_target.c:17,23'
          Dst:             json_from_string
        - Src:             'tests/oss-fuzz/json_parser_target.c:19,9'
          Dst:             json_destroy
        - Src:             'tests/oss-fuzz/json_parser_target.c:23,10'
          Dst:             json_to_string
        - Src:             'tests/oss-fuzz/json_parser_target.c:26,19'
          Dst:             jsonrpc_msg_from_json
        - Src:             'tests/oss-fuzz/json_parser_target.c:32,23'
          Dst:             jsonrpc_msg_to_json
        - Src:             'tests/oss-fuzz/json_parser_target.c:34,9'
          Dst:             json_destroy
        - Src:             'tests/oss-fuzz/json_parser_target.c:38,10'
          Dst:             json_to_string
        - Src:             'tests/oss-fuzz/json_parser_target.c:39,5'
          Dst:             json_destroy
    - functionName:    json_serialize_object_member
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1837
      functionLinenumberEnd: 1851
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_char
        - indent_line
        - json_serialize
        - json_serialize_string
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1841,9'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1842,9'
          Dst:             indent_line
        - Src:             'lib/json.c:1845,5'
          Dst:             json_serialize_string
        - Src:             'lib/json.c:1846,5'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1848,9'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1850,5'
          Dst:             json_serialize
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    indent_line
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1827
      functionLinenumberEnd: 1832
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char
        - ds_put_char_multiple
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1829,9'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1830,9'
          Dst:             ds_put_char_multiple
    - functionName:    json_serialize_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1957
      functionLinenumberEnd: 1986
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          132
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - ds_put_buffer
        - ds_put_char
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1964,5'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1972,17'
          Dst:             ds_put_buffer
        - Src:             'lib/json.c:1978,17'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1983,9'
          Dst:             ds_put_buffer
        - Src:             'lib/json.c:1985,5'
          Dst:             ds_put_char
    - functionName:    json_serialize
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1779
      functionLinenumberEnd: 1823
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       30
      CyclomaticComplexity: 16
      functionsReached:
        - abort
        - ds_put_cstr
        - ds_put_format
        - json_serialize_array
        - json_serialize_object
        - json_serialize_string
        - json_serialized_object
        - json_string
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/json.c:1782,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/json.c:1784,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1788,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1792,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1796,9'
          Dst:             json_serialize_object
        - Src:             'lib/json.c:1800,9'
          Dst:             json_serialize_array
        - Src:             'lib/json.c:1804,9'
          Dst:             ds_put_format
        - Src:             'lib/json.c:1808,9'
          Dst:             ds_put_format
        - Src:             'lib/json.c:1812,31'
          Dst:             json_string
        - Src:             'lib/json.c:1812,9'
          Dst:             json_serialize_string
        - Src:             'lib/json.c:1816,25'
          Dst:             json_serialized_object
        - Src:             'lib/json.c:1816,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1821,9'
          Dst:             abort
    - functionName:    json_serialize_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1855
      functionLinenumberEnd: 1889
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          144
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - cooperative_multitasking_yield_at
        - ds_put_char
        - hmap_first
        - hmap_next
        - indent_line
        - json_serialize_object_member
        - shash_count
        - shash_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1858,5'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1861,5'
          Dst:             indent_line
        - Src:             'lib/json.c:1864,9'
          Dst:             cooperative_multitasking_yield_at
        - Src:             'lib/json.c:1871,17'
          Dst:             shash_sort
        - Src:             'lib/json.c:1872,13'
          Dst:             shash_count
        - Src:             'lib/json.c:1874,13'
          Dst:             json_serialize_object_member
        - Src:             'lib/json.c:1882,9'
          Dst:             hmap_first
        - Src:             'lib/json.c:1883,13'
          Dst:             json_serialize_object_member
        - Src:             'lib/json.c:1882,9'
          Dst:             hmap_next
        - Src:             'lib/json.c:1887,5'
          Dst:             ds_put_char
    - functionName:    json_serialize_array
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1893
      functionLinenumberEnd: 1918
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          105
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - cooperative_multitasking_yield_at
        - ds_put_char
        - indent_line
        - json_array_at
        - json_array_size
        - json_serialize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1894,19'
          Dst:             json_array_size
        - Src:             'lib/json.c:1897,5'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1901,9'
          Dst:             cooperative_multitasking_yield_at
        - Src:             'lib/json.c:1905,9'
          Dst:             indent_line
        - Src:             'lib/json.c:1909,17'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1910,17'
          Dst:             indent_line
        - Src:             'lib/json.c:1912,28'
          Dst:             json_array_at
        - Src:             'lib/json.c:1912,13'
          Dst:             json_serialize
        - Src:             'lib/json.c:1917,5'
          Dst:             ds_put_char
    - functionName:    json_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_ignore
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:461,5'
          Dst:             ovs_ignore
    - functionName:    json_serialized_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:469,5'
          Dst:             ovs_ignore
    - functionName:    abort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    39
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_array_size
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_ignore
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:476,5'
          Dst:             ovs_ignore
    - functionName:    json_array_at
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - ovs_ignore
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:486,5'
          Dst:             ovs_ignore
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_top
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1475
      functionLinenumberEnd: 1476
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_put_value
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1481
      functionLinenumberEnd: 1491
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - abort
        - json_array_add
        - json_object_put_nocopy
        - json_parser_top
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1482,37'
          Dst:             json_parser_top
        - Src:             'lib/json.c:1484,9'
          Dst:             json_object_put_nocopy
        - Src:             'lib/json.c:1487,9'
          Dst:             json_array_add
        - Src:             'lib/json.c:1489,9'
          Dst:             abort
    - functionName:    json_object_put_nocopy
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_destroy
        - shash_replace_nocopy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:432,18'
          Dst:             shash_replace_nocopy
        - Src:             'lib/json.c:432,5'
          Dst:             json_destroy
    - functionName:    json_array_add
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          157
      EdgeCount:       20
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - x2nrealloc
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:239,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/json.c:255,34'
          Dst:             xmalloc
        - Src:             'lib/json.c:269,9'
          Dst:             abort
        - Src:             'lib/json.c:274,27'
          Dst:             x2nrealloc
    - functionName:    json_destroy
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          38
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - json_destroy__
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/json.h:202,9'
          Dst:             json_destroy__
    - functionName:    json_destroy__
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          99
      EdgeCount:       37
      CyclomaticComplexity: 20
      functionsReached:
        - abort
        - json_destroy_array
        - json_destroy_object
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/json.c:536,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/json.c:538,9'
          Dst:             json_destroy_object
        - Src:             'lib/json.c:542,9'
          Dst:             json_destroy_array
        - Src:             'lib/json.c:563,9'
          Dst:             abort
    - functionName:    json_destroy_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          98
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - cooperative_multitasking_yield_at
        - hmap_first
        - hmap_next
        - json_destroy
        - json_destroy_with_yield
        - shash_delete
        - shash_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:574,9'
          Dst:             cooperative_multitasking_yield_at
        - Src:             'lib/json.c:577,5'
          Dst:             hmap_first
        - Src:             'lib/json.c:577,5'
          Dst:             hmap_next
        - Src:             'lib/json.c:581,13'
          Dst:             json_destroy_with_yield
        - Src:             'lib/json.c:583,13'
          Dst:             json_destroy
        - Src:             'lib/json.c:585,9'
          Dst:             shash_delete
        - Src:             'lib/json.c:587,5'
          Dst:             shash_destroy
    - functionName:    json_destroy_array
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          86
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - cooperative_multitasking_yield_at
        - json_array_at
        - json_array_size
        - json_destroy
        - json_destroy_with_yield
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:594,19'
          Dst:             json_array_size
        - Src:             'lib/json.c:597,9'
          Dst:             cooperative_multitasking_yield_at
        - Src:             'lib/json.c:603,17'
          Dst:             json_array_at
        - Src:             'lib/json.c:602,13'
          Dst:             json_destroy_with_yield
        - Src:             'lib/json.c:605,26'
          Dst:             json_array_at
        - Src:             'lib/json.c:605,13'
          Dst:             json_destroy
    - functionName:    json_destroy_with_yield
      functionSourceFile: '/src/openvswitch/lib/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          38
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - json_destroy__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.h:26,9'
          Dst:             json_destroy__
    - functionName:    json_parser_push
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1496
      functionLinenumberEnd: 1517
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          94
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - json_destroy
        - json_error
        - json_parser_put_value
        - x2nrealloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1501,24'
          Dst:             x2nrealloc
        - Src:             'lib/json.c:1506,13'
          Dst:             json_parser_put_value
        - Src:             'lib/json.c:1513,9'
          Dst:             json_destroy
        - Src:             'lib/json.c:1514,9'
          Dst:             json_error
    - functionName:    json_error
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1708
      functionLinenumberEnd: 1724
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_init
        - ds_put_format
        - ds_put_format_valist
        - ds_steal_cstr
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1713,9'
          Dst:             ds_init
        - Src:             'lib/json.c:1714,9'
          Dst:             ds_put_format
        - Src:             'lib/json.c:1717,9'
          Dst:             ds_put_format_valist
        - Src:             'lib/json.c:1720,20'
          Dst:             ds_steal_cstr
    - functionName:    json_parse_value
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1534
      functionLinenumberEnd: 1582
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          117
      EdgeCount:       41
      CyclomaticComplexity: 22
      functionsReached:
        - json_boolean_create
        - json_error
        - json_integer_create
        - json_null_create
        - json_parser_push_array
        - json_parser_push_object
        - json_parser_put_value
        - json_real_create
        - json_string_create
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/json.c:1537,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/json.c:1539,17'
          Dst:             json_boolean_create
        - Src:             'lib/json.c:1543,17'
          Dst:             json_null_create
        - Src:             'lib/json.c:1547,17'
          Dst:             json_boolean_create
        - Src:             'lib/json.c:1551,9'
          Dst:             json_parser_push_object
        - Src:             'lib/json.c:1555,9'
          Dst:             json_parser_push_array
        - Src:             'lib/json.c:1559,17'
          Dst:             json_integer_create
        - Src:             'lib/json.c:1563,17'
          Dst:             json_real_create
        - Src:             'lib/json.c:1567,17'
          Dst:             json_string_create
        - Src:             'lib/json.c:1576,9'
          Dst:             json_error
        - Src:             'lib/json.c:1580,5'
          Dst:             json_parser_put_value
    - functionName:    json_boolean_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:175,12'
          Dst:             json_create
    - functionName:    json_null_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:169,12'
          Dst:             json_create
    - functionName:    json_parser_push_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1521
      functionLinenumberEnd: 1523
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_create
        - json_parser_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1522,25'
          Dst:             json_object_create
        - Src:             'lib/json.c:1522,5'
          Dst:             json_parser_push
    - functionName:    json_parser_push_array
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1527
      functionLinenumberEnd: 1529
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_array_create_empty
        - json_parser_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1528,25'
          Dst:             json_array_create_empty
        - Src:             'lib/json.c:1528,5'
          Dst:             json_parser_push
    - functionName:    json_integer_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:410,25'
          Dst:             json_create
    - functionName:    json_real_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:418,25'
          Dst:             json_create
    - functionName:    json_string_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_create
        - strlen
        - xmemdup0
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:190,25'
          Dst:             json_create
        - Src:             'lib/json.c:191,21'
          Dst:             strlen
        - Src:             'lib/json.c:199,25'
          Dst:             xmemdup0
    - functionName:    json_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1699
      functionLinenumberEnd: 1703
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xmalloc
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1700,25'
          Dst:             xmalloc
    - functionName:    strlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    41
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_array_create_empty
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:228,25'
          Dst:             json_create
    - functionName:    json_object_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
        - shash_init
        - xmalloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:394,25'
          Dst:             json_create
        - Src:             'lib/json.c:395,20'
          Dst:             xmalloc
        - Src:             'lib/json.c:396,5'
          Dst:             shash_init
    - functionName:    json_parser_pop
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1586
      functionLinenumberEnd: 1612
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          110
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - abort
        - json_array_trim
        - json_parser_top
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1590,12'
          Dst:             json_parser_top
        - Src:             'lib/json.c:1592,9'
          Dst:             json_array_trim
        - Src:             'lib/json.c:1603,16'
          Dst:             json_parser_top
        - Src:             'lib/json.c:1609,13'
          Dst:             abort
    - functionName:    json_array_trim
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - xrealloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:324,27'
          Dst:             xrealloc
    - functionName:    json_parser_input_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1164
      functionLinenumberEnd: 1170
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_input
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1169,5'
          Dst:             json_parser_input
    - functionName:    json_parser_input
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1616
      functionLinenumberEnd: 1695
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          234
      EdgeCount:       53
      CyclomaticComplexity: 10
      functionsReached:
        - abort
        - ds_clear
        - json_error
        - json_parse_value
        - json_parser_pop
        - json_parser_push_array
        - json_parser_push_object
        - xstrdup
      functionUses:    6
      BranchProfiles:
        - Branch String:   'lib/json.c:1617,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/json.c:1620,13'
          Dst:             json_parser_push_object
        - Src:             'lib/json.c:1622,13'
          Dst:             json_parser_push_array
        - Src:             'lib/json.c:1624,13'
          Dst:             json_error
        - Src:             'lib/json.c:1629,9'
          Dst:             json_error
        - Src:             'lib/json.c:1634,13'
          Dst:             json_parser_pop
        - Src:             'lib/json.c:1640,30'
          Dst:             xstrdup
        - Src:             'lib/json.c:1643,13'
          Dst:             json_error
        - Src:             'lib/json.c:1651,13'
          Dst:             json_error
        - Src:             'lib/json.c:1656,9'
          Dst:             json_parse_value
        - Src:             'lib/json.c:1663,13'
          Dst:             json_parser_pop
        - Src:             'lib/json.c:1665,13'
          Dst:             json_error
        - Src:             'lib/json.c:1671,13'
          Dst:             json_parser_pop
        - Src:             'lib/json.c:1676,9'
          Dst:             json_parse_value
        - Src:             'lib/json.c:1683,13'
          Dst:             json_parser_pop
        - Src:             'lib/json.c:1685,13'
          Dst:             json_error
        - Src:             'lib/json.c:1690,9'
          Dst:             abort
        - Src:             'lib/json.c:1694,5'
          Dst:             ds_clear
    - functionName:    uc_is_trailing_surrogate
      functionSourceFile: '/src/openvswitch/lib/unicode.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uc_is_leading_surrogate
      functionSourceFile: '/src/openvswitch/lib/unicode.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_lex_4hex
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1015
      functionLinenumberEnd: 1032
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - hexits_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1023,13'
          Dst:             hexits_value
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_2words
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:154,33'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,24'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,12'
          Dst:             hash_finish
    - functionName:    json_parser_abort
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1460
      functionLinenumberEnd: 1471
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ds_destroy
        - json_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1462,9'
          Dst:             ds_destroy
        - Src:             'lib/json.c:1464,13'
          Dst:             json_destroy
    - functionName:    json_parser_is_done
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1414
      functionLinenumberEnd: 1415
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_lex_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1174
      functionLinenumberEnd: 1189
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ds_cstr
        - json_error
        - json_parser_input_string
        - json_string_unescape
        - strchr
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1175,23'
          Dst:             ds_cstr
        - Src:             'lib/json.c:1176,10'
          Dst:             strchr
        - Src:             'lib/json.c:1177,9'
          Dst:             json_parser_input_string
        - Src:             'lib/json.c:1181,39'
          Dst:             strlen
        - Src:             'lib/json.c:1181,13'
          Dst:             json_string_unescape
        - Src:             'lib/json.c:1182,13'
          Dst:             json_parser_input_string
        - Src:             'lib/json.c:1184,13'
          Dst:             json_error
    - functionName:    strchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_string_unescape
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1078
      functionLinenumberEnd: 1148
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          158
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - ds_clear
        - ds_cstr
        - ds_init
        - ds_put_char
        - ds_put_cstr
        - ds_put_format
        - ds_reserve
        - json_lex_unicode
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:1106,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/json.c:1083,5'
          Dst:             ds_init
        - Src:             'lib/json.c:1084,5'
          Dst:             ds_reserve
        - Src:             'lib/json.c:1087,13'
          Dst:             ds_clear
        - Src:             'lib/json.c:1088,13'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1092,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1102,13'
          Dst:             ds_clear
        - Src:             'lib/json.c:1103,13'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1108,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1112,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1116,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1120,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1124,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1128,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1132,18'
          Dst:             json_lex_unicode
        - Src:             'lib/json.c:1139,13'
          Dst:             ds_clear
        - Src:             'lib/json.c:1140,13'
          Dst:             ds_put_format
        - Src:             'lib/json.c:1147,13'
          Dst:             ds_cstr
    - functionName:    json_lex_unicode
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1036
      functionLinenumberEnd: 1074
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          136
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - ds_clear
        - ds_put_cstr
        - ds_put_utf8
        - json_lex_4hex
        - uc_is_leading_surrogate
        - uc_is_trailing_surrogate
        - utf16_decode_surrogate_pair
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1040,13'
          Dst:             json_lex_4hex
        - Src:             'lib/json.c:1042,9'
          Dst:             ds_clear
        - Src:             'lib/json.c:1043,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1047,10'
          Dst:             uc_is_leading_surrogate
        - Src:             'lib/json.c:1048,9'
          Dst:             ds_put_utf8
        - Src:             'lib/json.c:1053,9'
          Dst:             ds_clear
        - Src:             'lib/json.c:1054,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1058,13'
          Dst:             json_lex_4hex
        - Src:             'lib/json.c:1060,9'
          Dst:             ds_clear
        - Src:             'lib/json.c:1061,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1065,10'
          Dst:             uc_is_trailing_surrogate
        - Src:             'lib/json.c:1066,9'
          Dst:             ds_clear
        - Src:             'lib/json.c:1067,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1072,22'
          Dst:             utf16_decode_surrogate_pair
        - Src:             'lib/json.c:1072,5'
          Dst:             ds_put_utf8
    - functionName:    json_lex_number
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 864
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         100
      ICount:          578
      EdgeCount:       134
      CyclomaticComplexity: 36
      functionsReached:
        - __ctype_b_loc
        - ds_cstr
        - json_error
        - json_parser_input
        - str_to_double
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:865,22'
          Dst:             ds_cstr
        - Src:             'lib/json.c:883,13'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:884,13'
          Dst:             json_error
        - Src:             'lib/json.c:887,16'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:898,18'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:900,9'
          Dst:             json_error
        - Src:             'lib/json.c:907,14'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:908,13'
          Dst:             json_error
        - Src:             'lib/json.c:919,18'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:935,14'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:936,13'
          Dst:             json_error
        - Src:             'lib/json.c:947,18'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:963,9'
          Dst:             json_error
        - Src:             'lib/json.c:973,9'
          Dst:             json_parser_input
        - Src:             'lib/json.c:992,13'
          Dst:             json_parser_input
        - Src:             'lib/json.c:998,24'
          Dst:             ds_cstr
        - Src:             'lib/json.c:998,10'
          Dst:             str_to_double
        - Src:             'lib/json.c:999,9'
          Dst:             json_error
        - Src:             'lib/json.c:1006,5'
          Dst:             json_parser_input
        - Src:             'lib/json.c:1010,5'
          Dst:             json_error
    - functionName:    __ctype_b_loc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    19
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_lex_keyword
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 844
      functionLinenumberEnd: 860
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          64
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ds_cstr
        - json_error
        - json_parser_input
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:848,9'
          Dst:             ds_cstr
        - Src:             'lib/json.c:849,10'
          Dst:             strcmp
        - Src:             'lib/json.c:851,17'
          Dst:             strcmp
        - Src:             'lib/json.c:853,17'
          Dst:             strcmp
        - Src:             'lib/json.c:856,9'
          Dst:             json_error
        - Src:             'lib/json.c:859,5'
          Dst:             json_parser_input
    - functionName:    strcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    36
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_from_stream
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1259
      functionLinenumberEnd: 1281
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          97
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - feof
        - ferror
        - fread
        - json_destroy
        - json_parser_create
        - json_parser_feed
        - json_parser_finish
        - json_string_create_nocopy
        - ovs_strerror
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1263,9'
          Dst:             json_parser_create
        - Src:             'lib/json.c:1264,14'
          Dst:             feof
        - Src:             'lib/json.c:1264,30'
          Dst:             ferror
        - Src:             'lib/json.c:1268,13'
          Dst:             fread
        - Src:             'lib/json.c:1269,19'
          Dst:             json_parser_feed
        - Src:             'lib/json.c:1273,12'
          Dst:             json_parser_finish
        - Src:             'lib/json.c:1275,9'
          Dst:             ferror
        - Src:             'lib/json.c:1276,9'
          Dst:             json_destroy
        - Src:             'lib/json.c:1278,69'
          Dst:             __errno_location
        - Src:             'lib/json.c:1278,56'
          Dst:             ovs_strerror
        - Src:             'lib/json.c:1278,13'
          Dst:             xasprintf
        - Src:             'lib/json.c:1277,16'
          Dst:             json_string_create_nocopy
    - functionName:    json_parser_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1286
      functionLinenumberEnd: 1289
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xzalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1287,29'
          Dst:             xzalloc
    - functionName:    feof
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ferror
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fread
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_feed
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1306
      functionLinenumberEnd: 1409
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         95
      ICount:          510
      EdgeCount:       103
      CyclomaticComplexity: 10
      functionsReached:
        - __ctype_b_loc
        - ds_put_buffer
        - json_error
        - json_lex_keyword
        - json_lex_number
        - json_lex_string
        - json_parser_input
        - ovs_abort
        - strchr
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/json.c:1317,9'
          Branch Sides:    []
        - Branch String:   'lib/json.c:1319,13'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/json.c:1337,17'
          Dst:             json_parser_input
        - Src:             'lib/json.c:1354,21'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:1355,21'
          Dst:             json_error
        - Src:             'lib/json.c:1357,21'
          Dst:             json_error
        - Src:             'lib/json.c:1364,18'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:1365,17'
          Dst:             ds_put_buffer
        - Src:             'lib/json.c:1366,17'
          Dst:             json_lex_keyword
        - Src:             'lib/json.c:1373,18'
          Dst:             strchr
        - Src:             'lib/json.c:1374,17'
          Dst:             ds_put_buffer
        - Src:             'lib/json.c:1375,17'
          Dst:             json_lex_number
        - Src:             'lib/json.c:1385,17'
          Dst:             ds_put_buffer
        - Src:             'lib/json.c:1386,17'
          Dst:             json_lex_string
        - Src:             'lib/json.c:1388,17'
          Dst:             json_error
        - Src:             'lib/json.c:1397,13'
          Dst:             ovs_abort
        - Src:             'lib/json.c:1407,9'
          Dst:             ds_put_buffer
    - functionName:    json_parser_finish
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1420
      functionLinenumberEnd: 1455
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          129
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - json_error
        - json_parser_abort
        - json_parser_feed
        - json_string_create_nocopy
        - ovs_ignore
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/json.c:1423,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/json.c:1429,9'
          Dst:             json_error
        - Src:             'lib/json.c:1434,9'
          Dst:             json_parser_feed
        - Src:             'lib/json.c:1439,9'
          Dst:             json_error
        - Src:             'lib/json.c:1441,9'
          Dst:             json_error
        - Src:             'lib/json.c:1445,9'
          Dst:             ovs_ignore
        - Src:             'lib/json.c:1446,9'
          Dst:             ovs_ignore
        - Src:             'lib/json.c:1449,16'
          Dst:             json_string_create_nocopy
        - Src:             'lib/json.c:1453,5'
          Dst:             json_parser_abort
    - functionName:    __errno_location
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    150
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_string_create_nocopy
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:181,25'
          Dst:             json_create
    - functionName:    json_from_file
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1233
      functionLinenumberEnd: 1247
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - fclose
        - fopen
        - json_from_stream
        - json_string_create_nocopy
        - ovs_strerror
        - xasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1237,14'
          Dst:             fopen
        - Src:             'lib/json.c:1241,36'
          Dst:             __errno_location
        - Src:             'lib/json.c:1241,23'
          Dst:             ovs_strerror
        - Src:             'lib/json.c:1240,13'
          Dst:             xasprintf
        - Src:             'lib/json.c:1239,16'
          Dst:             json_string_create_nocopy
        - Src:             'lib/json.c:1243,12'
          Dst:             json_from_stream
        - Src:             'lib/json.c:1244,5'
          Dst:             fclose
    - functionName:    fopen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fclose
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_from_serialized_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1219
      functionLinenumberEnd: 1220
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_from_string
        - json_serialized_object
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1220,29'
          Dst:             json_serialized_object
        - Src:             'lib/json.c:1220,12'
          Dst:             json_from_string
    - functionName:    json_from_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_create
        - json_parser_feed
        - json_parser_finish
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1211,29'
          Dst:             json_parser_create
        - Src:             'lib/json.c:1212,33'
          Dst:             strlen
        - Src:             'lib/json.c:1212,5'
          Dst:             json_parser_feed
        - Src:             'lib/json.c:1213,12'
          Dst:             json_parser_finish
    - functionName:    json_to_ds
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1768
      functionLinenumberEnd: 1775
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_serialize
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1774,5'
          Dst:             json_serialize
    - functionName:    json_string_escape
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1153
      functionLinenumberEnd: 1160
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_to_ds
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1159,5'
          Dst:             json_to_ds
    - functionName:    json_equal_array
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 783
      functionLinenumberEnd: 797
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - json_array_at
        - json_array_size
        - json_equal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:784,19'
          Dst:             json_array_size
        - Src:             'lib/json.c:786,14'
          Dst:             json_array_size
        - Src:             'lib/json.c:791,25'
          Dst:             json_array_at
        - Src:             'lib/json.c:791,46'
          Dst:             json_array_at
        - Src:             'lib/json.c:791,14'
          Dst:             json_equal
    - functionName:    json_equal
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 838
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          159
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - abort
        - json_equal_array
        - json_equal_object
        - json_serialized_object
        - json_string
        - strcmp
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/json.c:810,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/json.c:812,16'
          Dst:             json_equal_object
        - Src:             'lib/json.c:815,16'
          Dst:             json_equal_array
        - Src:             'lib/json.c:818,24'
          Dst:             json_string
        - Src:             'lib/json.c:818,40'
          Dst:             json_string
        - Src:             'lib/json.c:818,17'
          Dst:             strcmp
        - Src:             'lib/json.c:821,24'
          Dst:             json_serialized_object
        - Src:             'lib/json.c:821,51'
          Dst:             json_serialized_object
        - Src:             'lib/json.c:821,17'
          Dst:             strcmp
        - Src:             'lib/json.c:836,9'
          Dst:             abort
    - functionName:    json_equal_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 764
      functionLinenumberEnd: 779
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          98
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - hmap_first
        - hmap_next
        - json_equal
        - shash_count
        - shash_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:767,9'
          Dst:             shash_count
        - Src:             'lib/json.c:767,27'
          Dst:             shash_count
        - Src:             'lib/json.c:771,5'
          Dst:             hmap_first
        - Src:             'lib/json.c:772,37'
          Dst:             shash_find
        - Src:             'lib/json.c:773,25'
          Dst:             json_equal
        - Src:             'lib/json.c:771,5'
          Dst:             hmap_next
    - functionName:    hash_int
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_2words
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:409,12'
          Dst:             hash_2words
    - functionName:    hash_string
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_bytes
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:404,26'
          Dst:             strlen
        - Src:             'lib/hash.h:404,12'
          Dst:             hash_bytes
    - functionName:    json_hash_array
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 719
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          52
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hash_int
        - json_array_at
        - json_array_size
        - json_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:720,19'
          Dst:             json_array_size
        - Src:             'lib/json.c:722,13'
          Dst:             hash_int
        - Src:             'lib/json.c:724,27'
          Dst:             json_array_at
        - Src:             'lib/json.c:724,17'
          Dst:             json_hash
    - functionName:    json_hash
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 760
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          120
      EdgeCount:       32
      CyclomaticComplexity: 17
      functionsReached:
        - abort
        - hash_double
        - hash_int
        - hash_string
        - json_hash_array
        - json_hash_object
        - json_serialized_object
        - json_string
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/json.c:732,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/json.c:734,16'
          Dst:             json_hash_object
        - Src:             'lib/json.c:737,16'
          Dst:             json_hash_array
        - Src:             'lib/json.c:740,28'
          Dst:             json_string
        - Src:             'lib/json.c:740,16'
          Dst:             hash_string
        - Src:             'lib/json.c:743,28'
          Dst:             json_serialized_object
        - Src:             'lib/json.c:743,16'
          Dst:             hash_string
        - Src:             'lib/json.c:748,16'
          Dst:             hash_int
        - Src:             'lib/json.c:751,16'
          Dst:             hash_int
        - Src:             'lib/json.c:754,16'
          Dst:             hash_double
        - Src:             'lib/json.c:758,9'
          Dst:             abort
    - functionName:    json_hash_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 714
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          65
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hash_string
        - json_hash
        - shash_count
        - shash_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:706,13'
          Dst:             shash_sort
        - Src:             'lib/json.c:707,9'
          Dst:             shash_count
        - Src:             'lib/json.c:710,17'
          Dst:             hash_string
        - Src:             'lib/json.c:711,17'
          Dst:             json_hash
    - functionName:    json_clone
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_nullable_clone
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 652
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_clone
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:653,19'
          Dst:             json_clone
    - functionName:    json_deep_clone_array
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 672
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - json_array_at
        - json_array_create
        - json_array_create_1
        - json_array_create_2
        - json_array_create_3
        - json_array_create_empty
        - json_array_size
        - json_deep_clone
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:677,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/json.c:676,9'
          Dst:             json_array_size
        - Src:             'lib/json.c:679,16'
          Dst:             json_array_create_empty
        - Src:             'lib/json.c:681,52'
          Dst:             json_array_at
        - Src:             'lib/json.c:681,36'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:681,16'
          Dst:             json_array_create_1
        - Src:             'lib/json.c:683,52'
          Dst:             json_array_at
        - Src:             'lib/json.c:683,36'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:684,52'
          Dst:             json_array_at
        - Src:             'lib/json.c:684,36'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:683,16'
          Dst:             json_array_create_2
        - Src:             'lib/json.c:686,52'
          Dst:             json_array_at
        - Src:             'lib/json.c:686,36'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:687,52'
          Dst:             json_array_at
        - Src:             'lib/json.c:687,36'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:688,52'
          Dst:             json_array_at
        - Src:             'lib/json.c:688,36'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:686,16'
          Dst:             json_array_create_3
        - Src:             'lib/json.c:693,16'
          Dst:             xmalloc
        - Src:             'lib/json.c:695,39'
          Dst:             json_array_at
        - Src:             'lib/json.c:695,23'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:697,12'
          Dst:             json_array_create
    - functionName:    json_deep_clone
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 648
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          98
      EdgeCount:       32
      CyclomaticComplexity: 17
      functionsReached:
        - abort
        - json_create
        - json_deep_clone_array
        - json_deep_clone_object
        - json_integer_create
        - json_real_create
        - json_serialized_object_create
        - json_string
        - json_string_create
      functionUses:    8
      BranchProfiles:
        - Branch String:   'lib/json.c:620,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/json.c:622,16'
          Dst:             json_deep_clone_object
        - Src:             'lib/json.c:625,16'
          Dst:             json_deep_clone_array
        - Src:             'lib/json.c:628,35'
          Dst:             json_string
        - Src:             'lib/json.c:628,16'
          Dst:             json_string_create
        - Src:             'lib/json.c:631,16'
          Dst:             json_serialized_object_create
        - Src:             'lib/json.c:636,16'
          Dst:             json_create
        - Src:             'lib/json.c:639,16'
          Dst:             json_integer_create
        - Src:             'lib/json.c:642,16'
          Dst:             json_real_create
        - Src:             'lib/json.c:646,9'
          Dst:             abort
    - functionName:    json_array_create_1
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:343,25'
          Dst:             json_create
    - functionName:    json_array_create_2
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:354,25'
          Dst:             json_create
    - functionName:    json_array_create_3
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:366,25'
          Dst:             json_create
    - functionName:    json_array_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:332,25'
          Dst:             json_create
    - functionName:    json_deep_clone_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 658
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          68
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - json_deep_clone
        - json_object_create
        - json_object_put
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:662,12'
          Dst:             json_object_create
        - Src:             'lib/json.c:663,5'
          Dst:             hmap_first
        - Src:             'lib/json.c:665,43'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:665,9'
          Dst:             json_object_put
        - Src:             'lib/json.c:663,5'
          Dst:             hmap_next
    - functionName:    json_serialized_object_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
        - json_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:212,25'
          Dst:             json_create
        - Src:             'lib/json.c:213,21'
          Dst:             json_to_string
    - functionName:    json_to_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1757
      functionLinenumberEnd: 1762
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_init
        - ds_steal_cstr
        - json_to_ds
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1760,5'
          Dst:             ds_init
        - Src:             'lib/json.c:1761,5'
          Dst:             json_to_ds
        - Src:             'lib/json.c:1762,12'
          Dst:             ds_steal_cstr
    - functionName:    json_object_put
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_destroy
        - shash_replace
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:426,18'
          Dst:             shash_replace
        - Src:             'lib/json.c:426,5'
          Dst:             json_destroy
    - functionName:    json_integer
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:525,5'
          Dst:             ovs_ignore
    - functionName:    json_real
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:518,5'
          Dst:             ovs_ignore
    - functionName:    json_boolean
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:511,5'
          Dst:             ovs_ignore
    - functionName:    json_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:504,5'
          Dst:             ovs_ignore
    - functionName:    json_object_put_uuid
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_put
        - json_string_create_uuid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:455,33'
          Dst:             json_string_create_uuid
        - Src:             'lib/json.c:455,5'
          Dst:             json_object_put
    - functionName:    json_string_create_uuid
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_string_create_nocopy
        - uuid_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:206,38'
          Dst:             uuid_to_string
        - Src:             'lib/json.c:206,12'
          Dst:             json_string_create_nocopy
    - functionName:    uuid_to_string
      functionSourceFile: '/src/openvswitch/lib/uuid.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - snprintf
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/uuid.h:85,18'
          Dst:             xmalloc
        - Src:             'lib/uuid.h:87,5'
          Dst:             snprintf
    - functionName:    snprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_object_put_format
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_put
        - json_string_create_nocopy
        - xvasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:448,47'
          Dst:             xvasprintf
        - Src:             'lib/json.c:448,21'
          Dst:             json_string_create_nocopy
        - Src:             'lib/json.c:447,5'
          Dst:             json_object_put
    - functionName:    json_object_put_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_put
        - json_string_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:438,33'
          Dst:             json_string_create
        - Src:             'lib/json.c:438,5'
          Dst:             json_object_put
    - functionName:    json_object_is_empty
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          39
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - shash_is_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:404,15'
          Dst:             shash_is_empty
    - functionName:    json_array_contains_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - json_array_at
        - json_array_size
        - json_string
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:379,16'
          Dst:             json_array_size
        - Src:             'lib/json.c:382,35'
          Dst:             json_array_at
        - Src:             'lib/json.c:384,50'
          Dst:             json_string
        - Src:             'lib/json.c:384,43'
          Dst:             strcmp
    - functionName:    json_array_pop
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          97
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - json_array_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:294,10'
          Dst:             json_array_size
    - functionName:    json_array_set
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_array_size
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:283,16'
          Dst:             json_array_size
        - Src:             'lib/json.c:283,5'
          Dst:             ovs_ignore
    - functionName:    json_serialized_object_create_with_yield
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
        - json_to_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:220,25'
          Dst:             json_create
        - Src:             'lib/json.c:221,21'
          Dst:             json_to_string
    - functionName:    json_type_to_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          67
      EdgeCount:       30
      CyclomaticComplexity: 16
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/json.c:134,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    init_this_module_jsonrpc
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:39,1'
          Dst:             vlog_insert_module
    - functionName:    jsonrpc_recv_incomplete_init_coverage
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:41,1'
          Dst:             coverage_counter_register
    - functionName:    jsonrpc_recv_incomplete_count
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_jsonrpc_recv_incomplete_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:41,1'
          Dst:             counter_jsonrpc_recv_incomplete_get
    - functionName:    counter_jsonrpc_recv_incomplete_get
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_jsonrpc_recv_incomplete_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:41,1'
          Dst:             counter_jsonrpc_recv_incomplete_get_unsafe
    - functionName:    counter_jsonrpc_recv_incomplete_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atomic_count_inc
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_set_options
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1352
      functionLinenumberEnd: 1356
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - jsonrpc_session_set_dscp
        - jsonrpc_session_set_max_backoff
        - jsonrpc_session_set_probe_interval
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1353,5'
          Dst:             jsonrpc_session_set_max_backoff
        - Src:             'lib/jsonrpc.c:1354,5'
          Dst:             jsonrpc_session_set_probe_interval
        - Src:             'lib/jsonrpc.c:1355,5'
          Dst:             jsonrpc_session_set_dscp
    - functionName:    jsonrpc_session_set_max_backoff
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1314
      functionLinenumberEnd: 1316
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_set_backoff
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1315,5'
          Dst:             reconnect_set_backoff
    - functionName:    jsonrpc_session_set_probe_interval
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1327
      functionLinenumberEnd: 1332
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_replay_is_active
        - reconnect_set_probe_interval
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1328,9'
          Dst:             ovs_replay_is_active
        - Src:             'lib/jsonrpc.c:1331,5'
          Dst:             reconnect_set_probe_interval
    - functionName:    jsonrpc_session_set_dscp
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1339
      functionLinenumberEnd: 1347
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_session_force_reconnect
        - pstream_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1341,9'
          Dst:             pstream_close
        - Src:             'lib/jsonrpc.c:1345,9'
          Dst:             jsonrpc_session_force_reconnect
    - functionName:    jsonrpc_session_force_reconnect
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1288
      functionLinenumberEnd: 1290
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_force_reconnect
        - time_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1289,45'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1289,5'
          Dst:             reconnect_force_reconnect
    - functionName:    ovs_replay_is_active
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.h'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_replay_get_state
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-replay.h:67,12'
          Dst:             ovs_replay_get_state
    - functionName:    jsonrpc_session_reset_backoff
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1298
      functionLinenumberEnd: 1308
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_session_is_connected
        - reconnect_set_backoff_free_tries
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1301,9'
          Dst:             jsonrpc_session_is_connected
        - Src:             'lib/jsonrpc.c:1307,5'
          Dst:             reconnect_set_backoff_free_tries
    - functionName:    jsonrpc_session_is_connected
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1236
      functionLinenumberEnd: 1237
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_enable_reconnect
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1279
      functionLinenumberEnd: 1283
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_set_backoff
        - reconnect_set_max_tries
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1280,5'
          Dst:             reconnect_set_max_tries
        - Src:             'lib/jsonrpc.c:1281,5'
          Dst:             reconnect_set_backoff
    - functionName:    jsonrpc_session_get_reconnect_stats
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1272
      functionLinenumberEnd: 1274
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_get_stats
        - time_msec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1273,39'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1273,5'
          Dst:             reconnect_get_stats
    - functionName:    jsonrpc_session_get_last_error
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1265
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_get_status
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1255
      functionLinenumberEnd: 1256
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - jsonrpc_get_status
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1256,26'
          Dst:             jsonrpc_get_status
    - functionName:    jsonrpc_get_status
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_get_seqno
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1246
      functionLinenumberEnd: 1247
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_is_alive
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1230
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - reconnect_get_max_tries
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1230,35'
          Dst:             reconnect_get_max_tries
    - functionName:    jsonrpc_session_recv_wait
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1220
      functionLinenumberEnd: 1224
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_recv_wait
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1222,9'
          Dst:             jsonrpc_recv_wait
    - functionName:    jsonrpc_recv_wait
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - byteq_is_empty
        - poll_immediate_wake_at
        - stream_recv_wait
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:404,25'
          Dst:             byteq_is_empty
        - Src:             'lib/jsonrpc.c:405,9'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/jsonrpc.c:407,9'
          Dst:             stream_recv_wait
    - functionName:    jsonrpc_session_recv
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1179
      functionLinenumberEnd: 1216
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          166
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - json_clone
        - json_string
        - jsonrpc_create_reply
        - jsonrpc_get_received_bytes
        - jsonrpc_msg_destroy
        - jsonrpc_recv
        - jsonrpc_session_send
        - reconnect_activity
        - reconnect_receive_attempted
        - strcmp
        - time_msec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1184,26'
          Dst:             jsonrpc_get_received_bytes
        - Src:             'lib/jsonrpc.c:1185,9'
          Dst:             jsonrpc_recv
        - Src:             'lib/jsonrpc.c:1187,29'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1188,9'
          Dst:             reconnect_receive_attempted
        - Src:             'lib/jsonrpc.c:1189,31'
          Dst:             jsonrpc_get_received_bytes
        - Src:             'lib/jsonrpc.c:1195,13'
          Dst:             reconnect_activity
        - Src:             'lib/jsonrpc.c:1199,50'
          Dst:             strcmp
        - Src:             'lib/jsonrpc.c:1203,46'
          Dst:             json_clone
        - Src:             'lib/jsonrpc.c:1203,25'
          Dst:             jsonrpc_create_reply
        - Src:             'lib/jsonrpc.c:1204,17'
          Dst:             jsonrpc_session_send
        - Src:             'lib/jsonrpc.c:1207,35'
          Dst:             json_string
        - Src:             'lib/jsonrpc.c:1207,28'
          Dst:             strcmp
        - Src:             'lib/jsonrpc.c:1212,13'
          Dst:             jsonrpc_msg_destroy
    - functionName:    jsonrpc_get_received_bytes
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_recv
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          258
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - byteq_advance_head
        - byteq_advance_tail
        - byteq_fast_forward
        - byteq_head
        - byteq_headroom
        - byteq_is_empty
        - byteq_tail
        - byteq_tailroom
        - json_parser_create
        - json_parser_feed
        - json_parser_is_done
        - jsonrpc_error
        - jsonrpc_parse_received_message
        - jsonrpc_recv_incomplete_add
        - ovs_strerror
        - stream_recv
        - stream_report_content
        - vlog_rate_limit
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:342,13'
          Dst:             byteq_is_empty
        - Src:             'lib/jsonrpc.c:346,13'
          Dst:             byteq_fast_forward
        - Src:             'lib/jsonrpc.c:347,21'
          Dst:             byteq_headroom
        - Src:             'lib/jsonrpc.c:348,47'
          Dst:             byteq_head
        - Src:             'lib/jsonrpc.c:348,22'
          Dst:             stream_recv
        - Src:             'lib/jsonrpc.c:353,21'
          Dst:             ovs_strerror
        - Src:             'lib/jsonrpc.c:353,21'
          Dst:             vlog_rate_limit
        - Src:             'lib/jsonrpc.c:355,21'
          Dst:             jsonrpc_error
        - Src:             'lib/jsonrpc.c:359,17'
          Dst:             jsonrpc_error
        - Src:             'lib/jsonrpc.c:362,13'
          Dst:             byteq_advance_head
        - Src:             'lib/jsonrpc.c:367,27'
          Dst:             json_parser_create
        - Src:             'lib/jsonrpc.c:369,13'
          Dst:             byteq_tailroom
        - Src:             'lib/jsonrpc.c:371,42'
          Dst:             byteq_tail
        - Src:             'lib/jsonrpc.c:370,16'
          Dst:             json_parser_feed
        - Src:             'lib/jsonrpc.c:372,9'
          Dst:             byteq_advance_tail
        - Src:             'lib/jsonrpc.c:375,13'
          Dst:             json_parser_is_done
        - Src:             'lib/jsonrpc.c:376,21'
          Dst:             jsonrpc_parse_received_message
        - Src:             'lib/jsonrpc.c:384,21'
          Dst:             stream_report_content
        - Src:             'lib/jsonrpc.c:394,5'
          Dst:             jsonrpc_recv_incomplete_add
    - functionName:    json_clone
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_create_reply
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_clone
        - jsonrpc_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:597,28'
          Dst:             json_clone
        - Src:             'lib/jsonrpc.c:596,12'
          Dst:             jsonrpc_create
    - functionName:    jsonrpc_session_send
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1168
      functionLinenumberEnd: 1175
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_msg_destroy
        - jsonrpc_send
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1170,16'
          Dst:             jsonrpc_send
        - Src:             'lib/jsonrpc.c:1172,9'
          Dst:             jsonrpc_msg_destroy
    - functionName:    jsonrpc_msg_destroy
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_destroy
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:701,9'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:702,9'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:703,9'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:704,9'
          Dst:             json_destroy
    - functionName:    json_destroy
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          38
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - json_destroy__
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/json.h:202,9'
          Dst:             json_destroy__
    - functionName:    jsonrpc_send
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          260
      EdgeCount:       52
      CyclomaticComplexity: 13
      functionsReached:
        - json_destroy
        - json_to_ds
        - jsonrpc_error
        - jsonrpc_log_msg
        - jsonrpc_msg_destroy
        - jsonrpc_msg_to_json
        - jsonrpc_run
        - ofpbuf_use_ds
        - ovs_list_push_back
        - vlog
        - vlog_rate_limit
        - xmalloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:266,9'
          Dst:             jsonrpc_msg_destroy
        - Src:             'lib/jsonrpc.c:270,5'
          Dst:             jsonrpc_log_msg
        - Src:             'lib/jsonrpc.c:272,12'
          Dst:             jsonrpc_msg_to_json
        - Src:             'lib/jsonrpc.c:273,5'
          Dst:             json_to_ds
        - Src:             'lib/jsonrpc.c:275,5'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:277,11'
          Dst:             xmalloc
        - Src:             'lib/jsonrpc.c:278,5'
          Dst:             ofpbuf_use_ds
        - Src:             'lib/jsonrpc.c:279,5'
          Dst:             ovs_list_push_back
        - Src:             'lib/jsonrpc.c:287,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/jsonrpc.c:292,13'
          Dst:             vlog
        - Src:             'lib/jsonrpc.c:297,13'
          Dst:             vlog
        - Src:             'lib/jsonrpc.c:302,13'
          Dst:             jsonrpc_error
        - Src:             'lib/jsonrpc.c:307,9'
          Dst:             jsonrpc_run
    - functionName:    jsonrpc_log_msg
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          147
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - ds_cstr
        - ds_destroy
        - ds_put_cstr
        - ds_put_format
        - json_to_ds
        - jsonrpc_msg_type_to_string
        - vlog
        - vlog_is_enabled
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:221,9'
          Dst:             vlog_is_enabled
        - Src:             'lib/jsonrpc.c:224,13'
          Dst:             ds_put_format
        - Src:             'lib/jsonrpc.c:227,13'
          Dst:             ds_put_cstr
        - Src:             'lib/jsonrpc.c:228,13'
          Dst:             json_to_ds
        - Src:             'lib/jsonrpc.c:231,13'
          Dst:             ds_put_cstr
        - Src:             'lib/jsonrpc.c:232,13'
          Dst:             json_to_ds
        - Src:             'lib/jsonrpc.c:235,13'
          Dst:             ds_put_cstr
        - Src:             'lib/jsonrpc.c:236,13'
          Dst:             json_to_ds
        - Src:             'lib/jsonrpc.c:239,13'
          Dst:             ds_put_cstr
        - Src:             'lib/jsonrpc.c:240,13'
          Dst:             json_to_ds
        - Src:             'lib/jsonrpc.c:242,9'
          Dst:             jsonrpc_msg_type_to_string
        - Src:             'lib/jsonrpc.c:242,9'
          Dst:             ds_cstr
        - Src:             'lib/jsonrpc.c:242,9'
          Dst:             vlog
        - Src:             'lib/jsonrpc.c:244,9'
          Dst:             ds_destroy
    - functionName:    jsonrpc_msg_to_json
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 775
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          152
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - json_null_create
        - json_object_create
        - json_object_put
        - json_string_create_nocopy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:776,25'
          Dst:             json_object_create
        - Src:             'lib/jsonrpc.c:779,41'
          Dst:             json_string_create_nocopy
        - Src:             'lib/jsonrpc.c:779,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:783,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:787,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:789,41'
          Dst:             json_null_create
        - Src:             'lib/jsonrpc.c:789,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:793,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:795,40'
          Dst:             json_null_create
        - Src:             'lib/jsonrpc.c:795,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:799,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:801,37'
          Dst:             json_null_create
        - Src:             'lib/jsonrpc.c:801,9'
          Dst:             json_object_put
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    jsonrpc_error
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_cleanup
        - ovs_ignore
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:530,5'
          Dst:             ovs_ignore
        - Src:             'lib/jsonrpc.c:533,9'
          Dst:             jsonrpc_cleanup
    - functionName:    jsonrpc_run
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          144
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - jsonrpc_error
        - ofpbuf_delete
        - ofpbuf_from_list
        - ofpbuf_pull
        - ovs_list_front
        - ovs_list_is_empty
        - ovs_list_remove
        - ovs_strerror
        - stream_run
        - stream_send
        - vlog_rate_limit
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:124,5'
          Dst:             stream_run
        - Src:             'lib/jsonrpc.c:125,13'
          Dst:             ovs_list_is_empty
        - Src:             'lib/jsonrpc.c:126,33'
          Dst:             ovs_list_front
        - Src:             'lib/jsonrpc.c:127,30'
          Dst:             ofpbuf_from_list
        - Src:             'lib/jsonrpc.c:130,18'
          Dst:             stream_send
        - Src:             'lib/jsonrpc.c:133,13'
          Dst:             ofpbuf_pull
        - Src:             'lib/jsonrpc.c:135,17'
          Dst:             ovs_list_remove
        - Src:             'lib/jsonrpc.c:137,17'
          Dst:             ofpbuf_delete
        - Src:             'lib/jsonrpc.c:141,17'
          Dst:             ovs_strerror
        - Src:             'lib/jsonrpc.c:141,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/jsonrpc.c:143,17'
          Dst:             jsonrpc_error
    - functionName:    ovs_list_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_front
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - ovs_list_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:286,17'
          Dst:             ovs_list_is_empty
        - Src:             './include/openvswitch/list.h:286,5'
          Dst:             ovs_ignore
    - functionName:    ofpbuf_from_list
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_pull
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/ofpbuf.h:259,5'
          Dst:             ovs_ignore
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_delete
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_uninit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/ofpbuf.h:174,9'
          Dst:             ofpbuf_uninit
    - functionName:    jsonrpc_cleanup
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_abort
        - ofpbuf_list_delete
        - stream_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:540,5'
          Dst:             stream_close
        - Src:             'lib/jsonrpc.c:543,5'
          Dst:             json_parser_abort
        - Src:             'lib/jsonrpc.c:546,5'
          Dst:             ofpbuf_list_delete
    - functionName:    jsonrpc_msg_type_to_string
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:620,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    jsonrpc_create
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          52
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nullable_xstrdup
        - xmalloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:556,31'
          Dst:             xmalloc
        - Src:             'lib/jsonrpc.c:558,19'
          Dst:             nullable_xstrdup
    - functionName:    jsonrpc_parse_received_message
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          112
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - json_destroy
        - json_parser_finish
        - json_string
        - jsonrpc_error
        - jsonrpc_log_msg
        - jsonrpc_msg_from_json
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:504,12'
          Dst:             json_parser_finish
        - Src:             'lib/jsonrpc.c:507,9'
          Dst:             json_string
        - Src:             'lib/jsonrpc.c:507,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/jsonrpc.c:509,9'
          Dst:             jsonrpc_error
        - Src:             'lib/jsonrpc.c:510,9'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:514,13'
          Dst:             jsonrpc_msg_from_json
        - Src:             'lib/jsonrpc.c:516,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/jsonrpc.c:519,9'
          Dst:             jsonrpc_error
        - Src:             'lib/jsonrpc.c:523,5'
          Dst:             jsonrpc_log_msg
    - functionName:    jsonrpc_recv_incomplete_add
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_jsonrpc_recv_incomplete_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:41,1'
          Dst:             counter_jsonrpc_recv_incomplete_get
    - functionName:    jsonrpc_msg_from_json
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          189
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - json_destroy
        - json_object
        - json_string
        - jsonrpc_msg_destroy
        - jsonrpc_msg_is_valid
        - null_from_json_null
        - shash_find_and_delete
        - shash_first
        - shash_is_empty
        - xasprintf
        - xstrdup
        - xzalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:728,17'
          Dst:             xstrdup
        - Src:             'lib/jsonrpc.c:731,14'
          Dst:             json_object
        - Src:             'lib/jsonrpc.c:733,14'
          Dst:             shash_find_and_delete
        - Src:             'lib/jsonrpc.c:735,17'
          Dst:             xstrdup
        - Src:             'lib/jsonrpc.c:739,11'
          Dst:             xzalloc
        - Src:             'lib/jsonrpc.c:740,36'
          Dst:             json_string
        - Src:             'lib/jsonrpc.c:740,28'
          Dst:             xstrdup
        - Src:             'lib/jsonrpc.c:741,39'
          Dst:             shash_find_and_delete
        - Src:             'lib/jsonrpc.c:741,19'
          Dst:             null_from_json_null
        - Src:             'lib/jsonrpc.c:742,39'
          Dst:             shash_find_and_delete
        - Src:             'lib/jsonrpc.c:742,19'
          Dst:             null_from_json_null
        - Src:             'lib/jsonrpc.c:743,38'
          Dst:             shash_find_and_delete
        - Src:             'lib/jsonrpc.c:743,18'
          Dst:             null_from_json_null
        - Src:             'lib/jsonrpc.c:744,35'
          Dst:             shash_find_and_delete
        - Src:             'lib/jsonrpc.c:744,15'
          Dst:             null_from_json_null
        - Src:             'lib/jsonrpc.c:749,10'
          Dst:             shash_is_empty
        - Src:             'lib/jsonrpc.c:751,27'
          Dst:             shash_first
        - Src:             'lib/jsonrpc.c:750,17'
          Dst:             xasprintf
        - Src:             'lib/jsonrpc.c:754,13'
          Dst:             jsonrpc_msg_is_valid
        - Src:             'lib/jsonrpc.c:760,5'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:761,5'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:763,9'
          Dst:             jsonrpc_msg_destroy
    - functionName:    null_from_json_null
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - json_destroy
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:713,9'
          Dst:             json_destroy
    - functionName:    jsonrpc_msg_is_valid
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 694
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          219
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - jsonrpc_msg_type_to_string
        - xasprintf
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:646,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/jsonrpc.c:643,16'
          Dst:             xstrdup
        - Src:             'lib/jsonrpc.c:664,16'
          Dst:             xasprintf
        - Src:             'lib/jsonrpc.c:667,17'
          Dst:             jsonrpc_msg_type_to_string
        - Src:             'lib/jsonrpc.c:669,16'
          Dst:             xasprintf
        - Src:             'lib/jsonrpc.c:674,16'
          Dst:             xasprintf
        - Src:             'lib/jsonrpc.c:679,16'
          Dst:             xasprintf
        - Src:             'lib/jsonrpc.c:684,16'
          Dst:             xasprintf
        - Src:             'lib/jsonrpc.c:689,16'
          Dst:             xasprintf
    - functionName:    jsonrpc_session_get_n_remotes
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1161
      functionLinenumberEnd: 1162
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_get_id
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1151
      functionLinenumberEnd: 1157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - stream_get_peer_id
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1153,16'
          Dst:             stream_get_peer_id
    - functionName:    jsonrpc_session_get_name
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1145
      functionLinenumberEnd: 1146
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_get_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1146,12'
          Dst:             reconnect_get_name
    - functionName:    jsonrpc_session_get_backlog
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1137
      functionLinenumberEnd: 1138
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_get_backlog
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1138,21'
          Dst:             jsonrpc_get_backlog
    - functionName:    jsonrpc_get_backlog
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_wait
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1122
      functionLinenumberEnd: 1133
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - jsonrpc_wait
        - pstream_wait
        - reconnect_wait
        - stream_connect_wait
        - stream_run_wait
        - time_msec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1124,9'
          Dst:             jsonrpc_wait
        - Src:             'lib/jsonrpc.c:1126,9'
          Dst:             stream_run_wait
        - Src:             'lib/jsonrpc.c:1127,9'
          Dst:             stream_connect_wait
        - Src:             'lib/jsonrpc.c:1130,9'
          Dst:             pstream_wait
        - Src:             'lib/jsonrpc.c:1132,34'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1132,5'
          Dst:             reconnect_wait
    - functionName:    jsonrpc_wait
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_list_is_empty
        - stream_run_wait
        - stream_send_wait
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:156,9'
          Dst:             stream_run_wait
        - Src:             'lib/jsonrpc.c:157,14'
          Dst:             ovs_list_is_empty
        - Src:             'lib/jsonrpc.c:158,13'
          Dst:             stream_send_wait
    - functionName:    jsonrpc_session_connect
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 997
      functionLinenumberEnd: 1021
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          117
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - jsonrpc_pstream_open
        - jsonrpc_session_disconnect
        - jsonrpc_session_pick_remote
        - jsonrpc_stream_open
        - reconnect_connect_failed
        - reconnect_connecting
        - reconnect_get_name
        - reconnect_is_passive
        - reconnect_listening
        - time_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:998,24'
          Dst:             reconnect_get_name
        - Src:             'lib/jsonrpc.c:1001,5'
          Dst:             jsonrpc_session_disconnect
        - Src:             'lib/jsonrpc.c:1002,10'
          Dst:             reconnect_is_passive
        - Src:             'lib/jsonrpc.c:1003,17'
          Dst:             jsonrpc_stream_open
        - Src:             'lib/jsonrpc.c:1005,48'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1005,13'
          Dst:             reconnect_connecting
        - Src:             'lib/jsonrpc.c:1010,34'
          Dst:             jsonrpc_pstream_open
        - Src:             'lib/jsonrpc.c:1013,47'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1013,13'
          Dst:             reconnect_listening
        - Src:             'lib/jsonrpc.c:1018,48'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1018,9'
          Dst:             reconnect_connect_failed
        - Src:             'lib/jsonrpc.c:1019,9'
          Dst:             jsonrpc_session_pick_remote
    - functionName:    jsonrpc_session_disconnect
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 993
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - jsonrpc_close
        - jsonrpc_error
        - jsonrpc_session_pick_remote
        - stream_close
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:981,9'
          Dst:             jsonrpc_error
        - Src:             'lib/jsonrpc.c:982,9'
          Dst:             jsonrpc_close
        - Src:             'lib/jsonrpc.c:985,9'
          Dst:             stream_close
        - Src:             'lib/jsonrpc.c:992,5'
          Dst:             jsonrpc_session_pick_remote
    - functionName:    jsonrpc_stream_open
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_open_with_default_port
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:75,12'
          Dst:             stream_open_with_default_port
    - functionName:    jsonrpc_pstream_open
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstream_open_with_default_port
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:83,12'
          Dst:             pstream_open_with_default_port
    - functionName:    jsonrpc_session_pick_remote
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 840
      functionLinenumberEnd: 843
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_set_name
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:841,5'
          Dst:             reconnect_set_name
    - functionName:    jsonrpc_close
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_cleanup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:110,9'
          Dst:             jsonrpc_cleanup
    - functionName:    jsonrpc_session_run
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1025
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         49
      ICount:          358
      EdgeCount:       61
      CyclomaticComplexity: 14
      functionsReached:
        - json_array_create_empty
        - json_destroy
        - json_string_create
        - jsonrpc_create_request
        - jsonrpc_get_backlog
        - jsonrpc_get_status
        - jsonrpc_open
        - jsonrpc_run
        - jsonrpc_send
        - jsonrpc_session_connect
        - jsonrpc_session_disconnect
        - jsonrpc_session_pick_remote
        - jsonrpc_set_backlog_threshold
        - pstream_accept
        - pstream_close
        - reconnect_activity
        - reconnect_connect_failed
        - reconnect_connected
        - reconnect_disconnected
        - reconnect_get_name
        - reconnect_listen_error
        - reconnect_run
        - stream_close
        - stream_connect
        - stream_run
        - time_msec
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1095,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/jsonrpc.c:1030,17'
          Dst:             pstream_accept
        - Src:             'lib/jsonrpc.c:1033,17'
          Dst:             reconnect_get_name
        - Src:             'lib/jsonrpc.c:1033,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/jsonrpc.c:1036,17'
          Dst:             jsonrpc_session_disconnect
        - Src:             'lib/jsonrpc.c:1038,47'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1038,13'
          Dst:             reconnect_connected
        - Src:             'lib/jsonrpc.c:1039,22'
          Dst:             jsonrpc_open
        - Src:             'lib/jsonrpc.c:1040,13'
          Dst:             jsonrpc_set_backlog_threshold
        - Src:             'lib/jsonrpc.c:1044,50'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1044,13'
          Dst:             reconnect_listen_error
        - Src:             'lib/jsonrpc.c:1045,13'
          Dst:             pstream_close
        - Src:             'lib/jsonrpc.c:1054,19'
          Dst:             jsonrpc_get_backlog
        - Src:             'lib/jsonrpc.c:1055,9'
          Dst:             jsonrpc_run
        - Src:             'lib/jsonrpc.c:1056,13'
          Dst:             jsonrpc_get_backlog
        - Src:             'lib/jsonrpc.c:1065,46'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1065,13'
          Dst:             reconnect_activity
        - Src:             'lib/jsonrpc.c:1068,17'
          Dst:             jsonrpc_get_status
        - Src:             'lib/jsonrpc.c:1070,50'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1070,13'
          Dst:             reconnect_disconnected
        - Src:             'lib/jsonrpc.c:1071,13'
          Dst:             jsonrpc_session_disconnect
        - Src:             'lib/jsonrpc.c:1077,9'
          Dst:             stream_run
        - Src:             'lib/jsonrpc.c:1078,17'
          Dst:             stream_connect
        - Src:             'lib/jsonrpc.c:1080,47'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1080,13'
          Dst:             reconnect_connected
        - Src:             'lib/jsonrpc.c:1081,22'
          Dst:             jsonrpc_open
        - Src:             'lib/jsonrpc.c:1082,13'
          Dst:             jsonrpc_set_backlog_threshold
        - Src:             'lib/jsonrpc.c:1087,52'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1087,13'
          Dst:             reconnect_connect_failed
        - Src:             'lib/jsonrpc.c:1088,13'
          Dst:             jsonrpc_session_pick_remote
        - Src:             'lib/jsonrpc.c:1089,13'
          Dst:             stream_close
        - Src:             'lib/jsonrpc.c:1095,41'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1095,13'
          Dst:             reconnect_run
        - Src:             'lib/jsonrpc.c:1097,9'
          Dst:             jsonrpc_session_connect
        - Src:             'lib/jsonrpc.c:1101,46'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1101,9'
          Dst:             reconnect_disconnected
        - Src:             'lib/jsonrpc.c:1102,9'
          Dst:             jsonrpc_session_disconnect
        - Src:             'lib/jsonrpc.c:1110,22'
          Dst:             json_array_create_empty
        - Src:             'lib/jsonrpc.c:1111,23'
          Dst:             jsonrpc_create_request
        - Src:             'lib/jsonrpc.c:1112,13'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:1113,27'
          Dst:             json_string_create
        - Src:             'lib/jsonrpc.c:1114,13'
          Dst:             jsonrpc_send
    - functionName:    jsonrpc_open
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_init
        - ovs_ignore
        - ovs_list_init
        - stream_get_name
        - xstrdup
        - xzalloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:93,5'
          Dst:             ovs_ignore
        - Src:             'lib/jsonrpc.c:95,11'
          Dst:             xzalloc
        - Src:             'lib/jsonrpc.c:96,25'
          Dst:             stream_get_name
        - Src:             'lib/jsonrpc.c:96,17'
          Dst:             xstrdup
        - Src:             'lib/jsonrpc.c:98,5'
          Dst:             byteq_init
        - Src:             'lib/jsonrpc.c:99,5'
          Dst:             ovs_list_init
    - functionName:    jsonrpc_set_backlog_threshold
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_create_request
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 584
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_clone
        - jsonrpc_create
        - jsonrpc_create_id
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:580,23'
          Dst:             jsonrpc_create_id
        - Src:             'lib/jsonrpc.c:582,16'
          Dst:             json_clone
        - Src:             'lib/jsonrpc.c:584,12'
          Dst:             jsonrpc_create
    - functionName:    jsonrpc_create_id
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - atomic_count_inc
        - json_integer_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:572,10'
          Dst:             atomic_count_inc
        - Src:             'lib/jsonrpc.c:573,12'
          Dst:             json_integer_create
    - functionName:    ovs_list_init
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_replace
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 966
      functionLinenumberEnd: 975
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - jsonrpc_close
        - jsonrpc_get_name
        - reconnect_connected
        - reconnect_set_name
        - time_msec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:968,9'
          Dst:             jsonrpc_close
        - Src:             'lib/jsonrpc.c:972,42'
          Dst:             jsonrpc_get_name
        - Src:             'lib/jsonrpc.c:972,9'
          Dst:             reconnect_set_name
        - Src:             'lib/jsonrpc.c:973,43'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:973,9'
          Dst:             reconnect_connected
    - functionName:    jsonrpc_get_name
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_steal
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 957
      functionLinenumberEnd: 961
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - jsonrpc_session_close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:960,5'
          Dst:             jsonrpc_session_close
    - functionName:    jsonrpc_session_close
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 944
      functionLinenumberEnd: 953
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_close
        - pstream_close
        - reconnect_destroy
        - stream_close
        - svec_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:946,9'
          Dst:             jsonrpc_close
        - Src:             'lib/jsonrpc.c:947,9'
          Dst:             reconnect_destroy
        - Src:             'lib/jsonrpc.c:948,9'
          Dst:             stream_close
        - Src:             'lib/jsonrpc.c:949,9'
          Dst:             pstream_close
        - Src:             'lib/jsonrpc.c:950,9'
          Dst:             svec_destroy
    - functionName:    jsonrpc_session_open_unreliably
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 939
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          87
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_get_name
        - jsonrpc_session_set_backlog_threshold
        - ovs_replay_is_active
        - reconnect_connected
        - reconnect_create
        - reconnect_set_max_tries
        - reconnect_set_name
        - reconnect_set_probe_interval
        - reconnect_set_quiet
        - svec_add
        - svec_init
        - time_msec
        - xmalloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:918,9'
          Dst:             xmalloc
        - Src:             'lib/jsonrpc.c:919,5'
          Dst:             svec_init
        - Src:             'lib/jsonrpc.c:920,27'
          Dst:             jsonrpc_get_name
        - Src:             'lib/jsonrpc.c:920,5'
          Dst:             svec_add
        - Src:             'lib/jsonrpc.c:922,37'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:922,20'
          Dst:             reconnect_create
        - Src:             'lib/jsonrpc.c:923,5'
          Dst:             reconnect_set_quiet
        - Src:             'lib/jsonrpc.c:924,38'
          Dst:             jsonrpc_get_name
        - Src:             'lib/jsonrpc.c:924,5'
          Dst:             reconnect_set_name
        - Src:             'lib/jsonrpc.c:925,5'
          Dst:             reconnect_set_max_tries
        - Src:             'lib/jsonrpc.c:926,39'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:926,5'
          Dst:             reconnect_connected
        - Src:             'lib/jsonrpc.c:928,9'
          Dst:             ovs_replay_is_active
        - Src:             'lib/jsonrpc.c:929,9'
          Dst:             reconnect_set_probe_interval
        - Src:             'lib/jsonrpc.c:938,5'
          Dst:             jsonrpc_session_set_backlog_threshold
    - functionName:    jsonrpc_session_set_backlog_threshold
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1365
      functionLinenumberEnd: 1371
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_set_backlog_threshold
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1369,9'
          Dst:             jsonrpc_set_backlog_threshold
    - functionName:    jsonrpc_session_open_multiple
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 905
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          153
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - jsonrpc_session_pick_remote
        - jsonrpc_session_set_backlog_threshold
        - ovs_replay_is_active
        - pstream_verify_name
        - reconnect_create
        - reconnect_enable
        - reconnect_get_name
        - reconnect_set_backoff
        - reconnect_set_backoff_free_tries
        - reconnect_set_max_tries
        - reconnect_set_passive
        - reconnect_set_probe_interval
        - stream_or_pstream_needs_probes
        - svec_add
        - svec_clone
        - time_msec
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:871,9'
          Dst:             xmalloc
        - Src:             'lib/jsonrpc.c:874,5'
          Dst:             svec_clone
        - Src:             'lib/jsonrpc.c:876,9'
          Dst:             svec_add
        - Src:             'lib/jsonrpc.c:880,37'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:880,20'
          Dst:             reconnect_create
        - Src:             'lib/jsonrpc.c:881,5'
          Dst:             jsonrpc_session_pick_remote
        - Src:             'lib/jsonrpc.c:882,36'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:882,5'
          Dst:             reconnect_enable
        - Src:             'lib/jsonrpc.c:883,5'
          Dst:             reconnect_set_backoff_free_tries
        - Src:             'lib/jsonrpc.c:891,5'
          Dst:             jsonrpc_session_set_backlog_threshold
        - Src:             'lib/jsonrpc.c:893,24'
          Dst:             reconnect_get_name
        - Src:             'lib/jsonrpc.c:894,10'
          Dst:             pstream_verify_name
        - Src:             'lib/jsonrpc.c:895,51'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:895,9'
          Dst:             reconnect_set_passive
        - Src:             'lib/jsonrpc.c:897,9'
          Dst:             reconnect_set_max_tries
        - Src:             'lib/jsonrpc.c:898,9'
          Dst:             reconnect_set_backoff
        - Src:             'lib/jsonrpc.c:901,10'
          Dst:             stream_or_pstream_needs_probes
        - Src:             'lib/jsonrpc.c:901,50'
          Dst:             ovs_replay_is_active
        - Src:             'lib/jsonrpc.c:902,9'
          Dst:             reconnect_set_probe_interval
    - functionName:    jsonrpc_session_open
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 861
      functionLinenumberEnd: 863
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - jsonrpc_session_open_multiple
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:863,12'
          Dst:             jsonrpc_session_open_multiple
    - functionName:    jsonrpc_msg_to_string
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 816
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_destroy
        - json_to_string
        - jsonrpc_msg_clone
        - jsonrpc_msg_to_json
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:812,32'
          Dst:             jsonrpc_msg_clone
        - Src:             'lib/jsonrpc.c:813,25'
          Dst:             jsonrpc_msg_to_json
        - Src:             'lib/jsonrpc.c:814,15'
          Dst:             json_to_string
        - Src:             'lib/jsonrpc.c:815,5'
          Dst:             json_destroy
    - functionName:    jsonrpc_msg_clone
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_nullable_clone
        - jsonrpc_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:611,27'
          Dst:             json_nullable_clone
        - Src:             'lib/jsonrpc.c:612,27'
          Dst:             json_nullable_clone
        - Src:             'lib/jsonrpc.c:613,27'
          Dst:             json_nullable_clone
        - Src:             'lib/jsonrpc.c:614,27'
          Dst:             json_nullable_clone
        - Src:             'lib/jsonrpc.c:610,12'
          Dst:             jsonrpc_create
    - functionName:    jsonrpc_create_error
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_clone
        - jsonrpc_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:604,28'
          Dst:             json_clone
        - Src:             'lib/jsonrpc.c:603,12'
          Dst:             jsonrpc_create
    - functionName:    jsonrpc_create_notify
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - jsonrpc_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:590,12'
          Dst:             jsonrpc_create
    - functionName:    jsonrpc_transact_block
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          111
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - json_clone
        - json_destroy
        - json_equal
        - jsonrpc_msg_destroy
        - jsonrpc_recv_block
        - jsonrpc_send_block
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:474,10'
          Dst:             json_clone
        - Src:             'lib/jsonrpc.c:475,13'
          Dst:             jsonrpc_send_block
        - Src:             'lib/jsonrpc.c:478,21'
          Dst:             jsonrpc_recv_block
        - Src:             'lib/jsonrpc.c:483,20'
          Dst:             json_equal
        - Src:             'lib/jsonrpc.c:486,13'
          Dst:             jsonrpc_msg_destroy
        - Src:             'lib/jsonrpc.c:490,5'
          Dst:             json_destroy
    - functionName:    jsonrpc_send_block
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - fatal_signal_run
        - jsonrpc_run
        - jsonrpc_send
        - jsonrpc_wait
        - ovs_list_is_empty
        - poll_block
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:421,5'
          Dst:             fatal_signal_run
        - Src:             'lib/jsonrpc.c:423,13'
          Dst:             jsonrpc_send
        - Src:             'lib/jsonrpc.c:429,9'
          Dst:             jsonrpc_run
        - Src:             'lib/jsonrpc.c:430,13'
          Dst:             ovs_list_is_empty
        - Src:             'lib/jsonrpc.c:433,9'
          Dst:             jsonrpc_wait
        - Src:             'lib/jsonrpc.c:434,9'
          Dst:             poll_block
    - functionName:    jsonrpc_recv_block
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fatal_signal_run
        - jsonrpc_recv
        - jsonrpc_recv_wait
        - jsonrpc_run
        - jsonrpc_wait
        - poll_block
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:444,21'
          Dst:             jsonrpc_recv
        - Src:             'lib/jsonrpc.c:446,13'
          Dst:             fatal_signal_run
        - Src:             'lib/jsonrpc.c:450,9'
          Dst:             jsonrpc_run
        - Src:             'lib/jsonrpc.c:451,9'
          Dst:             jsonrpc_wait
        - Src:             'lib/jsonrpc.c:452,9'
          Dst:             jsonrpc_recv_wait
        - Src:             'lib/jsonrpc.c:453,9'
          Dst:             poll_block
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_copy__
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          87
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ofpbuf_headroom
        - ofpbuf_tailroom
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:238,27'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:239,27'
          Dst:             ofpbuf_tailroom
    - functionName:    ofpbuf_headroom
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_tailroom
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_end
        - ofpbuf_tail
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/ofpbuf.h:229,19'
          Dst:             ofpbuf_end
        - Src:             './include/openvswitch/ofpbuf.h:229,42'
          Dst:             ofpbuf_tail
    - functionName:    ofpbuf_end
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/ofpbuf.h:212,5'
          Dst:             ovs_ignore
    - functionName:    ofpbuf_tail
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_ignore
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/ofpbuf.h:204,5'
          Dst:             ovs_ignore
    - functionName:    ovs_list_poison
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_init__
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_poison
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:31,5'
          Dst:             ovs_list_poison
    - functionName:    ofpbuf_delete
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_uninit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/ofpbuf.h:174,9'
          Dst:             ofpbuf_uninit
    - functionName:    ofpbuf_uninit
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_pop_front
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:264,5'
          Dst:             ovs_list_remove
    - functionName:    ovs_list_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_list_delete
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ofpbuf_delete
        - ovs_list_is_empty
        - ovs_list_pop_front
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:577,5'
          Dst:             ovs_list_is_empty
        - Src:             'lib/ofpbuf.c:577,5'
          Dst:             ovs_list_pop_front
        - Src:             'lib/ofpbuf.c:578,9'
          Dst:             ofpbuf_delete
    - functionName:    ofpbuf_to_string
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_cstr
        - ds_init
        - ds_put_format
        - ds_put_hex_dump
        - ofpbuf_headroom
        - ofpbuf_tailroom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:562,5'
          Dst:             ds_init
        - Src:             'lib/ofpbuf.c:565,19'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:565,39'
          Dst:             ofpbuf_tailroom
        - Src:             'lib/ofpbuf.c:563,5'
          Dst:             ds_put_format
        - Src:             'lib/ofpbuf.c:566,5'
          Dst:             ds_put_hex_dump
        - Src:             'lib/ofpbuf.c:567,12'
          Dst:             ds_cstr
    - functionName:    ofpbuf_steal_data
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 552
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          87
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - xmemdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:543,13'
          Dst:             xmemdup
    - functionName:    ofpbuf_insert
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          79
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_put
        - ofpbuf_put_uninit
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:522,9'
          Dst:             ofpbuf_put_uninit
        - Src:             'lib/ofpbuf.c:527,9'
          Dst:             ovs_ignore
        - Src:             'lib/ofpbuf.c:528,9'
          Dst:             ofpbuf_put
    - functionName:    ofpbuf_put_uninit
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_prealloc_tailroom
        - ofpbuf_tail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:403,5'
          Dst:             ofpbuf_prealloc_tailroom
        - Src:             'lib/ofpbuf.c:404,9'
          Dst:             ofpbuf_tail
    - functionName:    ofpbuf_put
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_put_uninit
        - ofpbuf_tail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:427,16'
          Dst:             ofpbuf_tail
        - Src:             'lib/ofpbuf.c:430,17'
          Dst:             ofpbuf_put_uninit
    - functionName:    ofpbuf_prealloc_tailroom
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ofpbuf_headroom
        - ofpbuf_resize__
        - ofpbuf_tailroom
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:307,16'
          Dst:             ofpbuf_tailroom
        - Src:             'lib/ofpbuf.c:308,28'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:308,9'
          Dst:             ofpbuf_resize__
    - functionName:    ofpbuf_resize__
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          182
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - abort
        - ofpbuf_copy__
        - ofpbuf_headroom
        - xmalloc
        - xrealloc
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:258,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/ofpbuf.c:260,29'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:261,24'
          Dst:             xrealloc
        - Src:             'lib/ofpbuf.c:263,24'
          Dst:             xmalloc
        - Src:             'lib/ofpbuf.c:264,13'
          Dst:             ofpbuf_copy__
        - Src:             'lib/ofpbuf.c:270,9'
          Dst:             abort
        - Src:             'lib/ofpbuf.c:274,20'
          Dst:             xmalloc
        - Src:             'lib/ofpbuf.c:275,9'
          Dst:             ofpbuf_copy__
        - Src:             'lib/ofpbuf.c:279,9'
          Dst:             abort
    - functionName:    ofpbuf_push
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_push_uninit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:509,17'
          Dst:             ofpbuf_push_uninit
    - functionName:    ofpbuf_push_uninit
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_prealloc_headroom
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:486,5'
          Dst:             ofpbuf_prealloc_headroom
    - functionName:    ofpbuf_prealloc_headroom
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ofpbuf_headroom
        - ofpbuf_resize__
        - ofpbuf_tailroom
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:318,16'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:319,43'
          Dst:             ofpbuf_tailroom
        - Src:             'lib/ofpbuf.c:319,9'
          Dst:             ofpbuf_resize__
    - functionName:    ofpbuf_push_zeros
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_push_uninit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:498,17'
          Dst:             ofpbuf_push_uninit
    - functionName:    ofpbuf_put_hex
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - hexits_value
        - ofpbuf_put
        - strspn
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:448,14'
          Dst:             strspn
        - Src:             'lib/ofpbuf.c:449,16'
          Dst:             hexits_value
        - Src:             'lib/ofpbuf.c:457,9'
          Dst:             ofpbuf_put
    - functionName:    strspn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nullable_memset
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_shift
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ofpbuf_headroom
        - ofpbuf_tailroom
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:385,37'
          Dst:             ofpbuf_tailroom
        - Src:             'lib/ofpbuf.c:386,40'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:385,5'
          Dst:             ovs_ignore
    - functionName:    ofpbuf_put_zeros
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nullable_memset
        - ofpbuf_put_uninit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:415,17'
          Dst:             ofpbuf_put_uninit
        - Src:             'lib/ofpbuf.c:416,5'
          Dst:             nullable_memset
    - functionName:    ofpbuf_padto
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_put_zeros
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:370,9'
          Dst:             ofpbuf_put_zeros
    - functionName:    ofpbuf_align
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached:
        - abort
        - ofpbuf_resize__
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:350,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/ofpbuf.c:356,9'
          Dst:             ofpbuf_resize__
        - Src:             'lib/ofpbuf.c:359,9'
          Dst:             abort
    - functionName:    ofpbuf_trim
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          49
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ofpbuf_headroom
        - ofpbuf_resize__
        - ofpbuf_tailroom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:338,13'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:338,35'
          Dst:             ofpbuf_tailroom
        - Src:             'lib/ofpbuf.c:339,9'
          Dst:             ofpbuf_resize__
    - functionName:    ofpbuf_clone_data
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_clone_data_with_headroom
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:219,12'
          Dst:             ofpbuf_clone_data_with_headroom
    - functionName:    ofpbuf_clone_data_with_headroom
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_new_with_headroom
        - ofpbuf_put
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:228,24'
          Dst:             ofpbuf_new_with_headroom
        - Src:             'lib/ofpbuf.c:229,5'
          Dst:             ofpbuf_put
    - functionName:    ofpbuf_new_with_headroom
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_new
        - ofpbuf_reserve
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:178,24'
          Dst:             ofpbuf_new
        - Src:             'lib/ofpbuf.c:179,5'
          Dst:             ofpbuf_reserve
    - functionName:    ofpbuf_new
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_init
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:168,24'
          Dst:             xmalloc
        - Src:             'lib/ofpbuf.c:169,5'
          Dst:             ofpbuf_init
    - functionName:    ofpbuf_reserve
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_prealloc_tailroom
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:467,5'
          Dst:             ovs_ignore
        - Src:             'lib/ofpbuf.c:472,5'
          Dst:             ofpbuf_prealloc_tailroom
    - functionName:    ofpbuf_init
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_use
        - xmalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:141,26'
          Dst:             xmalloc
        - Src:             'lib/ofpbuf.c:141,5'
          Dst:             ofpbuf_use
    - functionName:    ofpbuf_use
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_use__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:52,5'
          Dst:             ofpbuf_use__
    - functionName:    ofpbuf_use__
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_init__
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:42,5'
          Dst:             ofpbuf_init__
    - functionName:    ofpbuf_clone_with_headroom
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          109
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ofpbuf_clone_data_with_headroom
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:199,18'
          Dst:             ofpbuf_clone_data_with_headroom
    - functionName:    ofpbuf_clone
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_clone_with_headroom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:189,12'
          Dst:             ofpbuf_clone_with_headroom
    - functionName:    ofpbuf_reinit
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_init
        - ofpbuf_uninit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:159,5'
          Dst:             ofpbuf_uninit
        - Src:             'lib/ofpbuf.c:160,5'
          Dst:             ofpbuf_init
    - functionName:    ofpbuf_use_data
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_use__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:133,5'
          Dst:             ofpbuf_use__
    - functionName:    ofpbuf_use_const
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_use__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:115,5'
          Dst:             ofpbuf_use__
    - functionName:    ofpbuf_use_stub
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_use__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:102,5'
          Dst:             ofpbuf_use__
    - functionName:    ofpbuf_use_stack
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_use__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:82,5'
          Dst:             ofpbuf_use__
    - functionName:    ofpbuf_use_ds
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_use__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:62,5'
          Dst:             ofpbuf_use__
    - functionName:    init_this_module_ovs_replay
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-replay.c:31,1'
          Dst:             vlog_insert_module
    - functionName:    ovs_replay_usage
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-replay.c:240,5'
          Dst:             printf
    - functionName:    printf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    22
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_replay_read
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          203
      EdgeCount:       55
      CyclomaticComplexity: 14
      functionsReached:
        - ferror
        - fread
        - vlog
        - vlog_rate_limit
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-replay.c:206,9'
          Dst:             fread
        - Src:             'lib/ovs-replay.c:207,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:212,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:218,32'
          Dst:             fread
        - Src:             'lib/ovs-replay.c:219,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:223,9'
          Dst:             fread
        - Src:             'lib/ovs-replay.c:225,13'
          Dst:             ferror
        - Src:             'lib/ovs-replay.c:226,13'
          Dst:             vlog
    - functionName:    ovs_replay_write
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          181
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - fflush
        - fwrite
        - ovs_replay_get_state
        - ovs_replay_lock
        - ovs_replay_unlock
        - vlog_rate_limit
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-replay.c:167,17'
          Dst:             ovs_replay_get_state
        - Src:             'lib/ovs-replay.c:175,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/ovs-replay.c:178,9'
          Dst:             fwrite
        - Src:             'lib/ovs-replay.c:179,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:183,9'
          Dst:             fwrite
        - Src:             'lib/ovs-replay.c:184,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:188,29'
          Dst:             fwrite
        - Src:             'lib/ovs-replay.c:189,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:194,5'
          Dst:             ovs_replay_unlock
        - Src:             'lib/ovs-replay.c:195,5'
          Dst:             fflush
    - functionName:    ovs_replay_get_state
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_replay_lock
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_lock_at
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-replay.c:69,5'
          Dst:             ovs_mutex_lock_at
    - functionName:    fwrite
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_replay_unlock
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_unlock
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-replay.c:76,5'
          Dst:             ovs_mutex_unlock
    - functionName:    fflush
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_replay_file_close
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fclose
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-replay.c:160,5'
          Dst:             fclose
    - functionName:    ovs_replay_file_name
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          143
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - __ctype_b_loc
        - vlog
        - xasprintf
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-replay.c:89,24'
          Dst:             xstrdup
        - Src:             'lib/ovs-replay.c:99,15'
          Dst:             __ctype_b_loc
        - Src:             'lib/ovs-replay.c:113,16'
          Dst:             xasprintf
        - Src:             'lib/ovs-replay.c:115,5'
          Dst:             vlog
    - functionName:    ovs_replay_file_open
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          152
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - abs_file_name
        - fopen
        - fread
        - ovs_ignore
        - ovs_replay_file_name
        - ovs_replay_get_state
        - ovs_rundir
        - ovs_strerror
        - vlog
        - vlog_rate_limit
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-replay.c:127,17'
          Dst:             ovs_replay_get_state
        - Src:             'lib/ovs-replay.c:129,5'
          Dst:             ovs_ignore
        - Src:             'lib/ovs-replay.c:131,16'
          Dst:             ovs_replay_file_name
        - Src:             'lib/ovs-replay.c:133,35'
          Dst:             ovs_rundir
        - Src:             'lib/ovs-replay.c:133,21'
          Dst:             abs_file_name
        - Src:             'lib/ovs-replay.c:139,10'
          Dst:             fopen
        - Src:             'lib/ovs-replay.c:141,9'
          Dst:             __errno_location
        - Src:             'lib/ovs-replay.c:141,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-replay.c:141,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:144,16'
          Dst:             __errno_location
        - Src:             'lib/ovs-replay.c:149,12'
          Dst:             fread
        - Src:             'lib/ovs-replay.c:150,9'
          Dst:             vlog
    - functionName:    ovs_replay_seqno
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_replay_set_dirname
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-replay.c:61,19'
          Dst:             xstrdup
    - functionName:    ovs_replay_set_state
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_ovs_thread
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:43,1'
          Dst:             vlog_insert_module
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_id_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_refcount_ref
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-atomic.h:544,5'
          Dst:             ovs_ignore
    - functionName:    ovs_refcount_unref
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-atomic.h:567,5'
          Dst:             ovs_ignore
    - functionName:    ovsthread_getspecific
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 890
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsthread_key_lookup__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:891,13'
          Dst:             ovsthread_key_lookup__
    - functionName:    ovsthread_key_lookup__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 852
      functionLinenumberEnd: 872
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_list_push_back
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - pthread_getspecific
        - pthread_setspecific
        - xzalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:856,13'
          Dst:             pthread_getspecific
        - Src:             'lib/ovs-thread.c:858,17'
          Dst:             xzalloc
        - Src:             'lib/ovs-thread.c:860,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:861,9'
          Dst:             pthread_setspecific
        - Src:             'lib/ovs-thread.c:862,9'
          Dst:             ovs_list_push_back
        - Src:             'lib/ovs-thread.c:863,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/ovs-thread.c:868,14'
          Dst:             xzalloc
    - functionName:    pthread_getspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_mutex_lock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutex_lock
        - vlog_abort
      functionUses:    65
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:75,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:75,1'
          Dst:             pthread_mutex_lock
        - Src:             'lib/ovs-thread.c:75,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:75,1'
          Dst:             vlog_abort
    - functionName:    pthread_setspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    ovs_mutex_unlock
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          52
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - ovs_strerror
        - pthread_mutex_unlock
        - vlog_abort
      functionUses:    74
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:132,1'
          Dst:             ovs_ignore
        - Src:             'lib/ovs-thread.c:132,1'
          Dst:             pthread_mutex_unlock
        - Src:             'lib/ovs-thread.c:132,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:132,1'
          Dst:             vlog_abort
    - functionName:    pthread_mutex_unlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutex_lock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_setspecific
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 881
      functionLinenumberEnd: 883
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsthread_key_lookup__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:882,6'
          Dst:             ovsthread_key_lookup__
    - functionName:    clear_slot
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 744
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          46
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_key_delete
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 833
      functionLinenumberEnd: 848
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - clear_slot
        - ovs_list_push_back
        - ovs_list_remove
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:836,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:839,5'
          Dst:             ovs_list_remove
        - Src:             'lib/ovs-thread.c:840,5'
          Dst:             ovs_list_push_back
        - Src:             'lib/ovs-thread.c:844,9'
          Dst:             clear_slot
        - Src:             'lib/ovs-thread.c:847,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_list_pop_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:275,5'
          Dst:             ovs_list_remove
    - functionName:    ovs_list_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_cancel_ovsthread_key_destruct__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 784
      functionLinenumberEnd: 786
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:785,5'
          Dst:             pthread_setspecific
    - functionName:    ovsthread_key_destruct__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 779
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          121
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - clear_slot
        - ovs_list_remove
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:764,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:765,5'
          Dst:             ovs_list_remove
        - Src:             'lib/ovs-thread.c:767,23'
          Dst:             clear_slot
        - Src:             'lib/ovs-thread.c:773,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovsthread_key_create
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 825
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - abort
        - fatal_signal_add_hook
        - ovs_list_is_empty
        - ovs_list_pop_back
        - ovs_list_push_back
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovsthread_cancel_ovsthread_key_destruct__
        - ovsthread_key_destruct__
        - ovsthread_once_done
        - ovsthread_once_start
        - xmalloc
        - xpthread_key_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:802,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/ovs-thread.c:803,9'
          Dst:             xpthread_key_create
        - Src:             'lib/ovs-thread.c:803,9'
          Dst:             ovsthread_key_destruct__
        - Src:             'lib/ovs-thread.c:804,9'
          Dst:             fatal_signal_add_hook
        - Src:             'lib/ovs-thread.c:804,9'
          Dst:             ovsthread_cancel_ovsthread_key_destruct__
        - Src:             'lib/ovs-thread.c:806,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/ovs-thread.c:809,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:810,9'
          Dst:             ovs_list_is_empty
        - Src:             'lib/ovs-thread.c:811,15'
          Dst:             xmalloc
        - Src:             'lib/ovs-thread.c:814,13'
          Dst:             abort
        - Src:             'lib/ovs-thread.c:817,15'
          Dst:             ovs_list_pop_back
        - Src:             'lib/ovs-thread.c:820,5'
          Dst:             ovs_list_push_back
        - Src:             'lib/ovs-thread.c:822,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    xpthread_key_create
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_key_create
        - vlog_abort
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:191,1'
          Dst:             pthread_key_create
        - Src:             'lib/ovs-thread.c:191,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:191,1'
          Dst:             vlog_abort
    - functionName:    ovsthread_once_done
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 507
      functionLinenumberEnd: 515
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_unlock
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:514,5'
          Dst:             ovs_mutex_unlock
    - functionName:    pthread_key_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_once_start__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 495
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:496,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:501,5'
          Dst:             ovs_mutex_unlock
    - functionName:    thread_is_pmd
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 689
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_subprogram_name
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:690,24'
          Dst:             get_subprogram_name
        - Src:             'lib/ovs-thread.c:691,13'
          Dst:             strncmp
    - functionName:    strncmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    count_total_cores
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sysconf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:682,15'
          Dst:             sysconf
    - functionName:    sysconf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    count_cpu_cores__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 647
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          78
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __sched_cpualloc
        - __sched_cpucount
        - __sched_cpufree
        - sched_getaffinity
        - sysconf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:632,15'
          Dst:             sysconf
        - Src:             'lib/ovs-thread.c:635,26'
          Dst:             __sched_cpualloc
        - Src:             'lib/ovs-thread.c:640,18'
          Dst:             sched_getaffinity
        - Src:             'lib/ovs-thread.c:641,27'
          Dst:             __sched_cpucount
        - Src:             'lib/ovs-thread.c:643,13'
          Dst:             __sched_cpufree
    - functionName:    __sched_cpualloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sched_getaffinity
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __sched_cpucount
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __sched_cpufree
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    count_cpu_cores
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - count_cpu_cores__
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - time_msec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:663,25'
          Dst:             time_msec
        - Src:             'lib/ovs-thread.c:666,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:669,21'
          Dst:             count_cpu_cores__
        - Src:             'lib/ovs-thread.c:671,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_thread_stats_next_bucket
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_id_self
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_id_get
        - ovsthread_id_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.h:466,24'
          Dst:             ovsthread_id_get
        - Src:             'lib/ovs-thread.h:469,14'
          Dst:             ovsthread_id_init
    - functionName:    ovsthread_id_get
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsthread_id_get_unsafe
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.h:456,1'
          Dst:             ovsthread_id_get_unsafe
    - functionName:    ovsthread_id_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - atomic_count_inc
        - ovs_ignore
        - ovsthread_id_get
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:396,17'
          Dst:             ovsthread_id_get
        - Src:             'lib/ovs-thread.c:396,5'
          Dst:             ovs_ignore
        - Src:             'lib/ovs-thread.c:397,34'
          Dst:             atomic_count_inc
        - Src:             'lib/ovs-thread.c:397,13'
          Dst:             ovsthread_id_get
    - functionName:    atomic_count_inc
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_stats_bucket_get
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 601
      functionLinenumberEnd: 612
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovsthread_id_self
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:602,24'
          Dst:             ovsthread_id_self
        - Src:             'lib/ovs-thread.c:605,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:610,9'
          Dst:             ovs_mutex_unlock
    - functionName:    ovsthread_stats_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:595,5'
          Dst:             ovs_mutex_destroy
    - functionName:    ovs_mutex_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          52
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - ovs_strerror
        - pthread_mutex_destroy
        - vlog_abort
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:133,1'
          Dst:             ovs_ignore
        - Src:             'lib/ovs-thread.c:133,1'
          Dst:             pthread_mutex_destroy
        - Src:             'lib/ovs-thread.c:133,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:133,1'
          Dst:             vlog_abort
    - functionName:    pthread_mutex_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_stats_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:586,5'
          Dst:             ovs_mutex_init
    - functionName:    ovs_mutex_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_init__
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:217,5'
          Dst:             ovs_mutex_init__
    - functionName:    ovs_mutex_init__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          48
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutex_init
        - vlog_abort
        - xpthread_mutexattr_destroy
        - xpthread_mutexattr_init
        - xpthread_mutexattr_settype
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:204,5'
          Dst:             xpthread_mutexattr_init
        - Src:             'lib/ovs-thread.c:205,5'
          Dst:             xpthread_mutexattr_settype
        - Src:             'lib/ovs-thread.c:206,13'
          Dst:             pthread_mutex_init
        - Src:             'lib/ovs-thread.c:208,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:208,9'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:210,5'
          Dst:             xpthread_mutexattr_destroy
    - functionName:    xpthread_mutexattr_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutexattr_init
        - vlog_abort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:172,1'
          Dst:             pthread_mutexattr_init
        - Src:             'lib/ovs-thread.c:172,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:172,1'
          Dst:             vlog_abort
    - functionName:    xpthread_mutexattr_settype
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutexattr_settype
        - vlog_abort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:174,1'
          Dst:             pthread_mutexattr_settype
        - Src:             'lib/ovs-thread.c:174,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:174,1'
          Dst:             vlog_abort
    - functionName:    pthread_mutex_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_mutexattr_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutexattr_destroy
        - vlog_abort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:173,1'
          Dst:             pthread_mutexattr_destroy
        - Src:             'lib/ovs-thread.c:173,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:173,1'
          Dst:             vlog_abort
    - functionName:    pthread_mutexattr_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutexattr_settype
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutexattr_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    may_fork
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xfork_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 547
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - fork
        - ovs_strerror
        - vlog_fatal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:551,9'
          Dst:             vlog_fatal
        - Src:             'lib/ovs-thread.c:555,11'
          Dst:             fork
        - Src:             'lib/ovs-thread.c:557,9'
          Dst:             __errno_location
        - Src:             'lib/ovs-thread.c:557,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:557,9'
          Dst:             vlog_fatal
    - functionName:    fork
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    assert_single_threaded_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          25
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_fatal
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:533,9'
          Dst:             vlog_fatal
    - functionName:    single_threaded
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_wrapper
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_quiesce_end
        - ovsthread_id_init
        - set_subprogram_name
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:407,10'
          Dst:             ovsthread_id_init
        - Src:             'lib/ovs-thread.c:414,29'
          Dst:             xasprintf
        - Src:             'lib/ovs-thread.c:415,5'
          Dst:             set_subprogram_name
        - Src:             'lib/ovs-thread.c:417,5'
          Dst:             ovsrcu_quiesce_end
    - functionName:    set_min_stack_size
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_strerror
        - pthread_attr_getstacksize
        - pthread_attr_setstacksize
        - vlog_abort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:428,13'
          Dst:             pthread_attr_getstacksize
        - Src:             'lib/ovs-thread.c:430,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:430,9'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:435,17'
          Dst:             pthread_attr_setstacksize
        - Src:             'lib/ovs-thread.c:437,13'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:437,13'
          Dst:             vlog_abort
    - functionName:    pthread_attr_getstacksize
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_attr_setstacksize
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    forbid_forking
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 570
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:568,5'
          Dst:             ovs_ignore
    - functionName:    ovs_thread_create
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          71
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - forbid_forking
        - ovs_strerror
        - ovs_strlcpy
        - ovsrcu_quiesce_end
        - ovsthread_once_done
        - ovsthread_once_start
        - ovsthread_wrapper
        - pthread_attr_destroy
        - pthread_attr_init
        - pthread_create
        - set_min_stack_size
        - vlog_abort
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:453,5'
          Dst:             forbid_forking
        - Src:             'lib/ovs-thread.c:455,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/ovs-thread.c:466,9'
          Dst:             ovsrcu_quiesce_end
        - Src:             'lib/ovs-thread.c:467,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/ovs-thread.c:471,11'
          Dst:             xmalloc
        - Src:             'lib/ovs-thread.c:474,5'
          Dst:             ovs_strlcpy
        - Src:             'lib/ovs-thread.c:482,5'
          Dst:             pthread_attr_init
        - Src:             'lib/ovs-thread.c:483,5'
          Dst:             set_min_stack_size
        - Src:             'lib/ovs-thread.c:485,13'
          Dst:             pthread_create
        - Src:             'lib/ovs-thread.c:485,13'
          Dst:             ovsthread_wrapper
        - Src:             'lib/ovs-thread.c:487,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:487,9'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:489,5'
          Dst:             pthread_attr_destroy
    - functionName:    pthread_attr_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_attr_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atomic_count_set
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_barrier_impl_ref
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_refcount_ref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:309,5'
          Dst:             ovs_refcount_ref
    - functionName:    ovs_barrier_block
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          87
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - atomic_count_inc
        - atomic_count_set
        - ovs_barrier_impl_ref
        - ovs_barrier_impl_unref
        - poll_block
        - seq_change
        - seq_read
        - seq_wait_at
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:362,5'
          Dst:             ovs_barrier_impl_ref
        - Src:             'lib/ovs-thread.c:364,11'
          Dst:             seq_read
        - Src:             'lib/ovs-thread.c:365,12'
          Dst:             atomic_count_inc
        - Src:             'lib/ovs-thread.c:367,9'
          Dst:             atomic_count_set
        - Src:             'lib/ovs-thread.c:370,9'
          Dst:             seq_change
        - Src:             'lib/ovs-thread.c:374,23'
          Dst:             seq_read
        - Src:             'lib/ovs-thread.c:375,13'
          Dst:             seq_wait_at
        - Src:             'lib/ovs-thread.c:376,13'
          Dst:             poll_block
        - Src:             'lib/ovs-thread.c:380,5'
          Dst:             ovs_barrier_impl_unref
    - functionName:    ovs_barrier_impl_unref
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_refcount_unref
        - seq_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:315,9'
          Dst:             ovs_refcount_unref
        - Src:             'lib/ovs-thread.c:316,9'
          Dst:             seq_destroy
    - functionName:    ovs_barrier_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - ovs_barrier_impl_unref
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:344,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/ovs-thread.c:345,5'
          Dst:             ovs_barrier_impl_unref
    - functionName:    ovs_refcount_init
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atomic_count_init
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_barrier_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - atomic_count_init
        - ovs_refcount_init
        - seq_create
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:334,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/ovs-thread.c:328,12'
          Dst:             xmalloc
        - Src:             'lib/ovs-thread.c:330,5'
          Dst:             atomic_count_init
        - Src:             'lib/ovs-thread.c:331,17'
          Dst:             seq_create
        - Src:             'lib/ovs-thread.c:332,5'
          Dst:             ovs_refcount_init
    - functionName:    ovs_spin_init__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          44
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_spin_init
        - vlog_abort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:286,13'
          Dst:             pthread_spin_init
        - Src:             'lib/ovs-thread.c:288,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:288,9'
          Dst:             vlog_abort
    - functionName:    pthread_spin_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_spin_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_spin_init__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:295,5'
          Dst:             ovs_spin_init__
    - functionName:    ovs_mutex_cond_wait
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          44
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_cond_wait
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:272,13'
          Dst:             pthread_cond_wait
        - Src:             'lib/ovs-thread.c:275,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:275,9'
          Dst:             vlog_abort
    - functionName:    pthread_cond_wait
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          45
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlock_init
        - vlog_abort
        - xpthread_rwlockattr_destroy
        - xpthread_rwlockattr_init
        - xpthread_rwlockattr_setkind_np
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:247,5'
          Dst:             xpthread_rwlockattr_init
        - Src:             'lib/ovs-thread.c:248,5'
          Dst:             xpthread_rwlockattr_setkind_np
        - Src:             'lib/ovs-thread.c:250,13'
          Dst:             pthread_rwlock_init
        - Src:             'lib/ovs-thread.c:251,5'
          Dst:             xpthread_rwlockattr_destroy
        - Src:             'lib/ovs-thread.c:257,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:257,9'
          Dst:             vlog_abort
    - functionName:    xpthread_rwlockattr_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlockattr_init
        - vlog_abort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:177,1'
          Dst:             pthread_rwlockattr_init
        - Src:             'lib/ovs-thread.c:177,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:177,1'
          Dst:             vlog_abort
    - functionName:    xpthread_rwlockattr_setkind_np
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlockattr_setkind_np
        - vlog_abort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:180,1'
          Dst:             pthread_rwlockattr_setkind_np
        - Src:             'lib/ovs-thread.c:180,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:180,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_rwlockattr_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlockattr_destroy
        - vlog_abort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:178,1'
          Dst:             pthread_rwlockattr_destroy
        - Src:             'lib/ovs-thread.c:178,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:178,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlockattr_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_rwlockattr_setkind_np
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_rwlockattr_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_mutex_init_adaptive
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_init__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:232,5'
          Dst:             ovs_mutex_init__
    - functionName:    ovs_mutex_init_recursive
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_init__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:224,5'
          Dst:             ovs_mutex_init__
    - functionName:    xpthread_sigmask
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_sigmask
        - vlog_abort
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:195,1'
          Dst:             pthread_sigmask
        - Src:             'lib/ovs-thread.c:195,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:195,1'
          Dst:             vlog_abort
    - functionName:    pthread_sigmask
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_setspecific
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_setspecific
        - vlog_abort
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:193,1'
          Dst:             pthread_setspecific
        - Src:             'lib/ovs-thread.c:193,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:193,1'
          Dst:             vlog_abort
    - functionName:    xpthread_key_delete
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_key_delete
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:192,1'
          Dst:             pthread_key_delete
        - Src:             'lib/ovs-thread.c:192,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:192,1'
          Dst:             vlog_abort
    - functionName:    pthread_key_delete
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_join
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_join
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:188,1'
          Dst:             pthread_join
        - Src:             'lib/ovs-thread.c:188,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:188,1'
          Dst:             vlog_abort
    - functionName:    pthread_join
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_cond_broadcast
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_cond_broadcast
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:186,1'
          Dst:             pthread_cond_broadcast
        - Src:             'lib/ovs-thread.c:186,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:186,1'
          Dst:             vlog_abort
    - functionName:    pthread_cond_broadcast
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_cond_signal
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_cond_signal
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:185,1'
          Dst:             pthread_cond_signal
        - Src:             'lib/ovs-thread.c:185,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:185,1'
          Dst:             vlog_abort
    - functionName:    pthread_cond_signal
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_cond_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_cond_destroy
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:184,1'
          Dst:             pthread_cond_destroy
        - Src:             'lib/ovs-thread.c:184,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:184,1'
          Dst:             vlog_abort
    - functionName:    pthread_cond_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_cond_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_cond_init
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:183,1'
          Dst:             pthread_cond_init
        - Src:             'lib/ovs-thread.c:183,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:183,1'
          Dst:             vlog_abort
    - functionName:    pthread_cond_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_mutexattr_gettype
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutexattr_gettype
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:175,1'
          Dst:             pthread_mutexattr_gettype
        - Src:             'lib/ovs-thread.c:175,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:175,1'
          Dst:             vlog_abort
    - functionName:    pthread_mutexattr_gettype
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_spin_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          52
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - ovs_strerror
        - pthread_spin_destroy
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:138,1'
          Dst:             ovs_ignore
        - Src:             'lib/ovs-thread.c:138,1'
          Dst:             pthread_spin_destroy
        - Src:             'lib/ovs-thread.c:138,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:138,1'
          Dst:             vlog_abort
    - functionName:    pthread_spin_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_spin_unlock
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          52
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - ovs_strerror
        - pthread_spin_unlock
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:137,1'
          Dst:             ovs_ignore
        - Src:             'lib/ovs-thread.c:137,1'
          Dst:             pthread_spin_unlock
        - Src:             'lib/ovs-thread.c:137,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:137,1'
          Dst:             vlog_abort
    - functionName:    pthread_spin_unlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          52
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - ovs_strerror
        - pthread_rwlock_destroy
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:135,1'
          Dst:             ovs_ignore
        - Src:             'lib/ovs-thread.c:135,1'
          Dst:             pthread_rwlock_destroy
        - Src:             'lib/ovs-thread.c:135,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:135,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_unlock
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          52
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - ovs_strerror
        - pthread_rwlock_unlock
        - vlog_abort
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:134,1'
          Dst:             ovs_ignore
        - Src:             'lib/ovs-thread.c:134,1'
          Dst:             pthread_rwlock_unlock
        - Src:             'lib/ovs-thread.c:134,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:134,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_unlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_spin_trylock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_strerror
        - pthread_spin_trylock
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:111,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:111,1'
          Dst:             pthread_spin_trylock
        - Src:             'lib/ovs-thread.c:111,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:111,1'
          Dst:             vlog_abort
    - functionName:    pthread_spin_trylock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_trywrlock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_strerror
        - pthread_rwlock_trywrlock
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:109,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:109,1'
          Dst:             pthread_rwlock_trywrlock
        - Src:             'lib/ovs-thread.c:109,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:109,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_trywrlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_tryrdlock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_strerror
        - pthread_rwlock_tryrdlock
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:108,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:108,1'
          Dst:             pthread_rwlock_tryrdlock
        - Src:             'lib/ovs-thread.c:108,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:108,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_tryrdlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_mutex_trylock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_strerror
        - pthread_mutex_trylock
        - vlog_abort
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:107,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:107,1'
          Dst:             pthread_mutex_trylock
        - Src:             'lib/ovs-thread.c:107,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:107,1'
          Dst:             vlog_abort
    - functionName:    pthread_mutex_trylock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_spin_lock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_spin_lock
        - vlog_abort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:79,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:79,1'
          Dst:             pthread_spin_lock
        - Src:             'lib/ovs-thread.c:79,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:79,1'
          Dst:             vlog_abort
    - functionName:    pthread_spin_lock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_wrlock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlock_wrlock
        - vlog_abort
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:77,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:77,1'
          Dst:             pthread_rwlock_wrlock
        - Src:             'lib/ovs-thread.c:77,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:77,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_wrlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_rdlock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlock_rdlock
        - vlog_abort
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:76,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:76,1'
          Dst:             pthread_rwlock_rdlock
        - Src:             'lib/ovs-thread.c:76,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:76,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_rdlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_poll_loop
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:36,1'
          Dst:             vlog_insert_module
    - functionName:    poll_create_node_init_coverage
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:38,1'
          Dst:             coverage_counter_register
    - functionName:    poll_zero_timeout_init_coverage
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:39,1'
          Dst:             coverage_counter_register
    - functionName:    poll_zero_timeout_count
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_poll_zero_timeout_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:39,1'
          Dst:             counter_poll_zero_timeout_get
    - functionName:    counter_poll_zero_timeout_get
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_poll_zero_timeout_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:39,1'
          Dst:             counter_poll_zero_timeout_get_unsafe
    - functionName:    counter_poll_zero_timeout_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    poll_create_node_count
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_poll_create_node_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:38,1'
          Dst:             counter_poll_create_node_get
    - functionName:    counter_poll_create_node_get
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_poll_create_node_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:38,1'
          Dst:             counter_poll_create_node_get_unsafe
    - functionName:    counter_poll_create_node_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_poll_loop
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - free_poll_nodes
        - hmap_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:326,5'
          Dst:             free_poll_nodes
        - Src:             'lib/poll-loop.c:327,5'
          Dst:             hmap_destroy
    - functionName:    free_poll_nodes
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - hmap_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:257,5'
          Dst:             hmap_first
        - Src:             'lib/poll-loop.c:257,5'
          Dst:             hmap_next
        - Src:             'lib/poll-loop.c:258,9'
          Dst:             hmap_remove
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          48
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_2words
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:154,33'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,24'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,12'
          Dst:             hash_finish
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next_with_hash__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:396,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hmap_first_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:360,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hash_int
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_2words
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:409,12'
          Dst:             hash_2words
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    find_poll_node
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - hash_int
        - hmap_first_with_hash
        - hmap_next_with_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:65,5'
          Dst:             hash_int
        - Src:             'lib/poll-loop.c:65,5'
          Dst:             hmap_first_with_hash
        - Src:             'lib/poll-loop.c:65,5'
          Dst:             hmap_next_with_hash
    - functionName:    poll_create_node_add
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_poll_create_node_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:38,1'
          Dst:             counter_poll_create_node_get
    - functionName:    log_wakeup
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          219
      EdgeCount:       57
      CyclomaticComplexity: 15
      functionsReached:
        - describe_fd
        - ds_cstr
        - ds_destroy
        - ds_init
        - ds_put_cstr
        - ds_put_format
        - get_cpu_usage
        - thread_is_pmd
        - vlog
        - vlog_is_enabled
        - vlog_should_drop
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:207,17'
          Dst:             get_cpu_usage
        - Src:             'lib/poll-loop.c:208,9'
          Dst:             vlog_is_enabled
        - Src:             'lib/poll-loop.c:211,20'
          Dst:             thread_is_pmd
        - Src:             'lib/poll-loop.c:212,20'
          Dst:             vlog_should_drop
        - Src:             'lib/poll-loop.c:218,5'
          Dst:             ds_init
        - Src:             'lib/poll-loop.c:219,5'
          Dst:             ds_put_cstr
        - Src:             'lib/poll-loop.c:221,29'
          Dst:             describe_fd
        - Src:             'lib/poll-loop.c:223,13'
          Dst:             ds_put_cstr
        - Src:             'lib/poll-loop.c:226,13'
          Dst:             ds_put_cstr
        - Src:             'lib/poll-loop.c:229,13'
          Dst:             ds_put_cstr
        - Src:             'lib/poll-loop.c:232,13'
          Dst:             ds_put_cstr
        - Src:             'lib/poll-loop.c:235,13'
          Dst:             ds_put_cstr
        - Src:             'lib/poll-loop.c:237,9'
          Dst:             ds_put_format
        - Src:             'lib/poll-loop.c:240,9'
          Dst:             ds_put_format
        - Src:             'lib/poll-loop.c:243,9'
          Dst:             ds_put_format
        - Src:             'lib/poll-loop.c:246,9'
          Dst:             ds_put_format
        - Src:             'lib/poll-loop.c:248,5'
          Dst:             ds_cstr
        - Src:             'lib/poll-loop.c:248,5'
          Dst:             vlog
        - Src:             'lib/poll-loop.c:249,5'
          Dst:             ds_destroy
    - functionName:    hmap_count
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    poll_zero_timeout_add
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_poll_zero_timeout_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:39,1'
          Dst:             counter_poll_zero_timeout_get
    - functionName:    poll_block
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         40
      ICount:          240
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - fatal_signal_run
        - fatal_signal_wait
        - free_poll_nodes
        - get_cpu_usage
        - hmap_count
        - hmap_first
        - hmap_next
        - log_wakeup
        - ovs_strerror
        - poll_loop
        - poll_zero_timeout_add
        - seq_woke
        - time_poll
        - timewarp_run
        - vlog_is_enabled
        - vlog_rate_limit
        - xmalloc
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:269,30'
          Dst:             poll_loop
        - Src:             'lib/poll-loop.c:278,5'
          Dst:             fatal_signal_wait
        - Src:             'lib/poll-loop.c:281,9'
          Dst:             poll_zero_timeout_add
        - Src:             'lib/poll-loop.c:284,5'
          Dst:             timewarp_run
        - Src:             'lib/poll-loop.c:285,23'
          Dst:             hmap_count
        - Src:             'lib/poll-loop.c:285,15'
          Dst:             xmalloc
        - Src:             'lib/poll-loop.c:289,5'
          Dst:             hmap_first
        - Src:             'lib/poll-loop.c:289,5'
          Dst:             hmap_next
        - Src:             'lib/poll-loop.c:293,33'
          Dst:             hmap_count
        - Src:             'lib/poll-loop.c:293,14'
          Dst:             time_poll
        - Src:             'lib/poll-loop.c:297,9'
          Dst:             ovs_strerror
        - Src:             'lib/poll-loop.c:297,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/poll-loop.c:299,9'
          Dst:             log_wakeup
        - Src:             'lib/poll-loop.c:300,16'
          Dst:             get_cpu_usage
        - Src:             'lib/poll-loop.c:300,40'
          Dst:             vlog_is_enabled
        - Src:             'lib/poll-loop.c:302,9'
          Dst:             hmap_first
        - Src:             'lib/poll-loop.c:304,17'
          Dst:             log_wakeup
        - Src:             'lib/poll-loop.c:302,9'
          Dst:             hmap_next
        - Src:             'lib/poll-loop.c:310,5'
          Dst:             free_poll_nodes
        - Src:             'lib/poll-loop.c:316,5'
          Dst:             fatal_signal_run
        - Src:             'lib/poll-loop.c:318,5'
          Dst:             seq_woke
    - functionName:    poll_loop
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - free_poll_loop
        - hmap_init
        - ovsthread_once_done
        - ovsthread_once_start
        - pthread_getspecific
        - xpthread_key_create
        - xpthread_setspecific
        - xzalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:338,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/poll-loop.c:339,9'
          Dst:             xpthread_key_create
        - Src:             'lib/poll-loop.c:339,9'
          Dst:             free_poll_loop
        - Src:             'lib/poll-loop.c:340,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/poll-loop.c:343,12'
          Dst:             pthread_getspecific
        - Src:             'lib/poll-loop.c:345,16'
          Dst:             xzalloc
        - Src:             'lib/poll-loop.c:347,9'
          Dst:             hmap_init
        - Src:             'lib/poll-loop.c:348,9'
          Dst:             xpthread_setspecific
    - functionName:    poll_immediate_wake_at
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - poll_timer_wait_at
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:186,5'
          Dst:             poll_timer_wait_at
    - functionName:    poll_timer_wait_at
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - poll_timer_wait_until_at
        - time_msec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:138,25'
          Dst:             time_msec
        - Src:             'lib/poll-loop.c:152,5'
          Dst:             poll_timer_wait_until_at
    - functionName:    poll_timer_wait_until_at
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - poll_loop
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:170,30'
          Dst:             poll_loop
    - functionName:    poll_create_node
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          71
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - find_poll_node
        - hash_int
        - hmap_insert_at
        - poll_create_node_add
        - poll_loop
        - xzalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:89,30'
          Dst:             poll_loop
        - Src:             'lib/poll-loop.c:92,5'
          Dst:             poll_create_node_add
        - Src:             'lib/poll-loop.c:95,12'
          Dst:             find_poll_node
        - Src:             'lib/poll-loop.c:99,16'
          Dst:             xzalloc
        - Src:             'lib/poll-loop.c:100,9'
          Dst:             hash_int
        - Src:             'lib/poll-loop.c:100,9'
          Dst:             hmap_insert_at
    - functionName:    poll_fd_wait_at
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - poll_create_node
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:121,5'
          Dst:             poll_create_node
    - functionName:    init_this_module_reconnect
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:26,1'
          Dst:             vlog_insert_module
    - functionName:    reconnect_state_name__
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       18
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:85,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    reconnect_get_stats
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          123
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - is_connected_state
        - reconnect_get_last_connect_elapsed
        - reconnect_get_last_disconnect_elapsed
        - reconnect_is_connected
        - reconnect_state_name__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:738,27'
          Dst:             reconnect_is_connected
        - Src:             'lib/reconnect.c:740,11'
          Dst:             reconnect_get_last_connect_elapsed
        - Src:             'lib/reconnect.c:742,11'
          Dst:             reconnect_get_last_disconnect_elapsed
        - Src:             'lib/reconnect.c:744,12'
          Dst:             is_connected_state
        - Src:             'lib/reconnect.c:745,14'
          Dst:             reconnect_get_last_connect_elapsed
        - Src:             'lib/reconnect.c:748,20'
          Dst:             reconnect_state_name__
    - functionName:    reconnect_is_connected
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - is_connected_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:702,12'
          Dst:             is_connected_state
    - functionName:    reconnect_get_last_connect_elapsed
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 713
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_get_last_disconnect_elapsed
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 722
      functionLinenumberEnd: 724
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_connected_state
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_timeout
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 693
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - reconnect_deadline__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:687,30'
          Dst:             reconnect_deadline__
    - functionName:    reconnect_deadline__
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          216
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - abort
        - ovs_ignore
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:546,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/reconnect.c:545,5'
          Dst:             ovs_ignore
        - Src:             'lib/reconnect.c:592,5'
          Dst:             abort
    - functionName:    reconnect_wait
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 674
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - poll_timer_wait_at
        - reconnect_timeout
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:675,19'
          Dst:             reconnect_timeout
        - Src:             'lib/reconnect.c:677,9'
          Dst:             poll_timer_wait_at
    - functionName:    reconnect_run
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          152
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - abort
        - reconnect_deadline__
        - reconnect_transition__
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:635,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/reconnect.c:634,16'
          Dst:             reconnect_deadline__
        - Src:             'lib/reconnect.c:646,13'
          Dst:             vlog
        - Src:             'lib/reconnect.c:648,13'
          Dst:             reconnect_transition__
        - Src:             'lib/reconnect.c:652,13'
          Dst:             vlog
        - Src:             'lib/reconnect.c:664,9'
          Dst:             abort
    - functionName:    reconnect_transition__
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          131
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - is_connected_state
        - reconnect_state_name__
        - vlog
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:530,9'
          Dst:             is_connected_state
        - Src:             'lib/reconnect.c:530,43'
          Dst:             is_connected_state
        - Src:             'lib/reconnect.c:531,13'
          Dst:             is_connected_state
        - Src:             'lib/reconnect.c:537,5'
          Dst:             reconnect_state_name__
        - Src:             'lib/reconnect.c:537,5'
          Dst:             vlog
    - functionName:    reconnect_receive_attempted
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_activity
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 500
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - reconnect_transition__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:502,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_connect_failed
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_connecting
        - reconnect_disconnected
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:492,5'
          Dst:             reconnect_connecting
        - Src:             'lib/reconnect.c:493,5'
          Dst:             reconnect_disconnected
    - functionName:    reconnect_connecting
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          106
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - reconnect_transition__
        - vlog
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:424,13'
          Dst:             vlog
        - Src:             'lib/reconnect.c:426,13'
          Dst:             vlog
        - Src:             'lib/reconnect.c:428,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_disconnected
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         101
      ICount:          529
      EdgeCount:       128
      CyclomaticComplexity: 29
      functionsReached:
        - ovs_strerror
        - reconnect_may_retry
        - reconnect_transition__
        - vlog
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:347,17'
          Dst:             ovs_strerror
        - Src:             'lib/reconnect.c:347,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:350,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:352,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:356,17'
          Dst:             ovs_strerror
        - Src:             'lib/reconnect.c:356,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:359,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:365,17'
          Dst:             ovs_strerror
        - Src:             'lib/reconnect.c:365,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:368,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:380,14'
          Dst:             reconnect_may_retry
        - Src:             'lib/reconnect.c:381,13'
          Dst:             reconnect_transition__
        - Src:             'lib/reconnect.c:398,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:403,21'
          Dst:             vlog
        - Src:             'lib/reconnect.c:410,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_may_retry
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 759
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_connected
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - is_connected_state
        - reconnect_connecting
        - reconnect_transition__
        - vlog
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:477,10'
          Dst:             is_connected_state
        - Src:             'lib/reconnect.c:478,9'
          Dst:             reconnect_connecting
        - Src:             'lib/reconnect.c:480,9'
          Dst:             vlog
        - Src:             'lib/reconnect.c:481,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_listen_error
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - reconnect_disconnected
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:463,9'
          Dst:             reconnect_disconnected
    - functionName:    reconnect_listening
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - reconnect_transition__
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:447,9'
          Dst:             vlog
        - Src:             'lib/reconnect.c:448,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_force_reconnect
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - reconnect_transition__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:330,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_disable
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - reconnect_transition__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:318,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_enable
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - reconnect_may_retry
        - reconnect_transition__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:306,33'
          Dst:             reconnect_may_retry
        - Src:             'lib/reconnect.c:307,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_is_enabled
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_set_passive
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          91
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - reconnect_may_retry
        - reconnect_transition__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:281,44'
          Dst:             reconnect_may_retry
        - Src:             'lib/reconnect.c:282,13'
          Dst:             reconnect_transition__
    - functionName:    reconnect_is_passive
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_set_probe_interval
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_set_backoff
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          106
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_set_backoff_free_tries
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_get_max_tries
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_set_max_tries
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_get_probe_interval
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_get_max_backoff
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_get_min_backoff
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_set_name
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - xstrdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:162,17'
          Dst:             xstrdup
    - functionName:    reconnect_get_name
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_set_quiet
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_destroy
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_create
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          67
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xstrdup
        - xzalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:99,29'
          Dst:             xzalloc
        - Src:             'lib/reconnect.c:101,17'
          Dst:             xstrdup
    - functionName:    seq_change_init_coverage
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:31,1'
          Dst:             coverage_counter_register
    - functionName:    seq_change_count
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_seq_change_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:31,1'
          Dst:             counter_seq_change_get
    - functionName:    counter_seq_change_get
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_seq_change_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:31,1'
          Dst:             counter_seq_change_get_unsafe
    - functionName:    counter_seq_change_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          48
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    seq_waiter_destroy
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_remove
        - ovs_list_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:311,5'
          Dst:             hmap_remove
        - Src:             'lib/seq.c:312,5'
          Dst:             ovs_list_remove
    - functionName:    seq_thread_exit
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - latch_destroy
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - seq_thread_woke
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:287,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/seq.c:288,5'
          Dst:             seq_thread_woke
        - Src:             'lib/seq.c:289,5'
          Dst:             latch_destroy
        - Src:             'lib/seq.c:291,5'
          Dst:             ovs_mutex_unlock
    - functionName:    seq_thread_woke
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - latch_poll
        - ovs_ignore
        - seq_waiter_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:301,9'
          Dst:             ovs_ignore
        - Src:             'lib/seq.c:302,9'
          Dst:             seq_waiter_destroy
        - Src:             'lib/seq.c:304,5'
          Dst:             latch_poll
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_init
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_2words
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:154,33'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,24'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,12'
          Dst:             hash_finish
    - functionName:    ovsthread_id_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_id_get
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsthread_id_get_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.h:456,1'
          Dst:             ovsthread_id_get_unsafe
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    seq_thread_get
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - latch_init
        - ovs_list_init
        - pthread_getspecific
        - xmalloc
        - xpthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:269,33'
          Dst:             pthread_getspecific
        - Src:             'lib/seq.c:271,18'
          Dst:             xmalloc
        - Src:             'lib/seq.c:272,9'
          Dst:             ovs_list_init
        - Src:             'lib/seq.c:273,9'
          Dst:             latch_init
        - Src:             'lib/seq.c:276,9'
          Dst:             xpthread_setspecific
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    hmap_next_in_bucket
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_first_in_bucket
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_int
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_2words
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:409,12'
          Dst:             hash_2words
    - functionName:    ovsthread_id_self
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_id_get
        - ovsthread_id_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.h:466,24'
          Dst:             ovsthread_id_get
        - Src:             'lib/ovs-thread.h:469,14'
          Dst:             ovsthread_id_init
    - functionName:    seq_woke
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - pthread_getspecific
        - seq_init
        - seq_thread_woke
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:243,5'
          Dst:             seq_init
        - Src:             'lib/seq.c:245,14'
          Dst:             pthread_getspecific
        - Src:             'lib/seq.c:247,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/seq.c:248,9'
          Dst:             seq_thread_woke
        - Src:             'lib/seq.c:250,9'
          Dst:             ovs_mutex_unlock
    - functionName:    seq_init
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          23
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_done
        - ovsthread_once_start
        - seq_thread_exit
        - xpthread_key_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:259,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/seq.c:260,9'
          Dst:             xpthread_key_create
        - Src:             'lib/seq.c:260,9'
          Dst:             seq_thread_exit
        - Src:             'lib/seq.c:261,9'
          Dst:             ovsthread_once_done
    - functionName:    seq_wait__
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          147
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - hash_int
        - hmap_first_in_bucket
        - hmap_insert_at
        - hmap_next_in_bucket
        - latch_wait_at
        - ovs_list_push_back
        - ovs_mutex_unlock
        - ovsthread_id_self
        - poll_immediate_wake_at
        - seq_thread_get
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:175,23'
          Dst:             ovsthread_id_self
        - Src:             'lib/seq.c:176,21'
          Dst:             hash_int
        - Src:             'lib/seq.c:179,5'
          Dst:             hmap_first_in_bucket
        - Src:             'lib/seq.c:184,17'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/seq.c:185,17'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/seq.c:188,17'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/seq.c:179,5'
          Dst:             hmap_next_in_bucket
        - Src:             'lib/seq.c:194,14'
          Dst:             xmalloc
        - Src:             'lib/seq.c:196,5'
          Dst:             hmap_insert_at
        - Src:             'lib/seq.c:199,22'
          Dst:             seq_thread_get
        - Src:             'lib/seq.c:200,5'
          Dst:             ovs_list_push_back
        - Src:             'lib/seq.c:203,9'
          Dst:             latch_wait_at
        - Src:             'lib/seq.c:206,5'
          Dst:             ovs_mutex_unlock
    - functionName:    seq_wait_at
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - poll_immediate_wake_at
        - seq_read
        - seq_wait__
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:226,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/seq.c:227,18'
          Dst:             seq_read
        - Src:             'lib/seq.c:228,9'
          Dst:             seq_wait__
        - Src:             'lib/seq.c:230,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/seq.c:231,9'
          Dst:             poll_immediate_wake_at
    - functionName:    seq_read
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    seq_change
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - seq_change_protected
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:145,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/seq.c:146,5'
          Dst:             seq_change_protected
        - Src:             'lib/seq.c:147,5'
          Dst:             ovs_mutex_unlock
    - functionName:    seq_change_protected
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seq_change_add
        - seq_wake_waiters
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:133,5'
          Dst:             seq_change_add
        - Src:             'lib/seq.c:136,5'
          Dst:             seq_wake_waiters
    - functionName:    seq_change_add
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_seq_change_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:31,1'
          Dst:             counter_seq_change_get
    - functionName:    seq_wake_waiters
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - latch_set
        - seq_waiter_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:322,5'
          Dst:             hmap_first
        - Src:             'lib/seq.c:322,5'
          Dst:             hmap_next
        - Src:             'lib/seq.c:323,9'
          Dst:             latch_set
        - Src:             'lib/seq.c:324,9'
          Dst:             seq_waiter_destroy
    - functionName:    seq_unlock
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:122,5'
          Dst:             ovs_mutex_unlock
    - functionName:    seq_lock
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_lock_at
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:115,5'
          Dst:             ovs_mutex_lock_at
    - functionName:    seq_try_lock
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_trylock_at
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:108,12'
          Dst:             ovs_mutex_trylock_at
    - functionName:    seq_destroy
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_destroy
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - seq_wake_waiters
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:98,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/seq.c:99,5'
          Dst:             seq_wake_waiters
        - Src:             'lib/seq.c:100,5'
          Dst:             hmap_destroy
        - Src:             'lib/seq.c:102,5'
          Dst:             ovs_mutex_unlock
    - functionName:    seq_create
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_init
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - seq_change_add
        - seq_init
        - xmalloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:78,5'
          Dst:             seq_init
        - Src:             'lib/seq.c:80,11'
          Dst:             xmalloc
        - Src:             'lib/seq.c:82,5'
          Dst:             seq_change_add
        - Src:             'lib/seq.c:84,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/seq.c:87,5'
          Dst:             hmap_init
        - Src:             'lib/seq.c:88,5'
          Dst:             ovs_mutex_unlock
    - functionName:    hmap_next_with_hash__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:396,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hmap_first_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:360,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hash_string
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_bytes
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:404,26'
          Dst:             strlen
        - Src:             'lib/hash.h:404,12'
          Dst:             hash_bytes
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shash_random_node
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_random_node
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:341,12'
          Dst:             hmap_random_node
    - functionName:    shash_equal_keys
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - hmap_count
        - hmap_first
        - hmap_next
        - shash_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:322,9'
          Dst:             hmap_count
        - Src:             'lib/shash.c:322,32'
          Dst:             hmap_count
        - Src:             'lib/shash.c:325,5'
          Dst:             hmap_first
        - Src:             'lib/shash.c:326,14'
          Dst:             shash_find
        - Src:             'lib/shash.c:325,5'
          Dst:             hmap_next
    - functionName:    hmap_count
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    shash_find
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_name
        - shash_find__
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:237,35'
          Dst:             strlen
        - Src:             'lib/shash.c:237,49'
          Dst:             hash_name
        - Src:             'lib/shash.c:237,12'
          Dst:             shash_find__
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hash_name
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_string
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:29,12'
          Dst:             hash_string
    - functionName:    shash_find__
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          93
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hmap_first_with_hash
        - hmap_next_with_hash
        - strncmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:225,5'
          Dst:             hmap_first_with_hash
        - Src:             'lib/shash.c:226,14'
          Dst:             strncmp
        - Src:             'lib/shash.c:225,5'
          Dst:             hmap_next_with_hash
    - functionName:    compare_nodes_by_name
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:288,12'
          Dst:             strcmp
    - functionName:    shash_sort
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          91
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - compare_nodes_by_name
        - hmap_first
        - hmap_next
        - ovs_ignore
        - qsort
        - shash_count
        - shash_is_empty
        - xmalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:294,9'
          Dst:             shash_is_empty
        - Src:             'lib/shash.c:301,13'
          Dst:             shash_count
        - Src:             'lib/shash.c:302,17'
          Dst:             xmalloc
        - Src:             'lib/shash.c:304,9'
          Dst:             hmap_first
        - Src:             'lib/shash.c:304,9'
          Dst:             hmap_next
        - Src:             'lib/shash.c:307,9'
          Dst:             ovs_ignore
        - Src:             'lib/shash.c:309,9'
          Dst:             qsort
        - Src:             'lib/shash.c:309,9'
          Dst:             compare_nodes_by_name
    - functionName:    shash_is_empty
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_is_empty
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:98,12'
          Dst:             hmap_is_empty
    - functionName:    shash_count
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_count
        - ovs_ignore
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:104,5'
          Dst:             ovs_ignore
        - Src:             'lib/shash.c:105,12'
          Dst:             hmap_count
    - functionName:    qsort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shash_first
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_first
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:279,30'
          Dst:             hmap_first
    - functionName:    shash_find_and_delete_assert
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - shash_find_and_delete
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:271,18'
          Dst:             shash_find_and_delete
        - Src:             'lib/shash.c:272,5'
          Dst:             ovs_ignore
    - functionName:    shash_find_and_delete
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - shash_delete
        - shash_find
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:258,31'
          Dst:             shash_find
        - Src:             'lib/shash.c:261,9'
          Dst:             shash_delete
    - functionName:    shash_delete
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - shash_steal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:199,10'
          Dst:             shash_steal
    - functionName:    shash_steal
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:214,5'
          Dst:             hmap_remove
    - functionName:    hmap_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          48
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shash_find_data
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - shash_find
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:251,31'
          Dst:             shash_find
    - functionName:    shash_find_len
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_bytes
        - shash_find__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:245,40'
          Dst:             hash_bytes
        - Src:             'lib/shash.c:245,12'
          Dst:             shash_find__
    - functionName:    shash_replace_nocopy
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_name
        - shash_add_nocopy__
        - shash_find__
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:179,19'
          Dst:             hash_name
        - Src:             'lib/shash.c:182,35'
          Dst:             strlen
        - Src:             'lib/shash.c:182,12'
          Dst:             shash_find__
        - Src:             'lib/shash.c:184,9'
          Dst:             shash_add_nocopy__
    - functionName:    shash_add_nocopy__
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_insert_at
        - xmalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:111,31'
          Dst:             xmalloc
        - Src:             'lib/shash.c:114,5'
          Dst:             hmap_insert_at
    - functionName:    shash_replace
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_name
        - shash_add_nocopy__
        - shash_find__
        - strlen
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:157,19'
          Dst:             hash_name
        - Src:             'lib/shash.c:160,35'
          Dst:             strlen
        - Src:             'lib/shash.c:160,12'
          Dst:             shash_find__
        - Src:             'lib/shash.c:162,32'
          Dst:             xstrdup
        - Src:             'lib/shash.c:162,9'
          Dst:             shash_add_nocopy__
    - functionName:    shash_add_assert
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - shash_add_once
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:148,16'
          Dst:             shash_add_once
        - Src:             'lib/shash.c:148,5'
          Dst:             ovs_ignore
    - functionName:    shash_add_once
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - shash_add
        - shash_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:137,10'
          Dst:             shash_find
        - Src:             'lib/shash.c:138,9'
          Dst:             shash_add
    - functionName:    shash_add
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - shash_add_nocopy
        - xstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:131,33'
          Dst:             xstrdup
        - Src:             'lib/shash.c:131,12'
          Dst:             shash_add_nocopy
    - functionName:    shash_add_nocopy
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_name
        - shash_add_nocopy__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:123,47'
          Dst:             hash_name
        - Src:             'lib/shash.c:123,12'
          Dst:             shash_add_nocopy__
    - functionName:    shash_moved
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_moved
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:66,5'
          Dst:             hmap_moved
    - functionName:    shash_swap
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_swap
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:60,5'
          Dst:             hmap_swap
    - functionName:    shash_clear_free_data
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - hmap_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:87,5'
          Dst:             hmap_first
        - Src:             'lib/shash.c:87,5'
          Dst:             hmap_next
        - Src:             'lib/shash.c:88,9'
          Dst:             hmap_remove
    - functionName:    shash_destroy_free_data
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_destroy
        - shash_clear_free_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:52,9'
          Dst:             shash_clear_free_data
        - Src:             'lib/shash.c:53,9'
          Dst:             hmap_destroy
    - functionName:    shash_clear
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - hmap_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:74,5'
          Dst:             hmap_first
        - Src:             'lib/shash.c:74,5'
          Dst:             hmap_next
        - Src:             'lib/shash.c:75,9'
          Dst:             hmap_remove
    - functionName:    shash_destroy
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_destroy
        - shash_clear
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:42,9'
          Dst:             shash_clear
        - Src:             'lib/shash.c:43,9'
          Dst:             hmap_destroy
    - functionName:    shash_init
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:35,5'
          Dst:             hmap_init
    - functionName:    init_this_module_socket_util
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:53,1'
          Dst:             vlog_insert_module
    - functionName:    is_safe_name
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1089
      functionLinenumberEnd: 1099
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          109
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __ctype_b_loc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1090,21'
          Dst:             __ctype_b_loc
        - Src:             'lib/socket-util.c:1094,14'
          Dst:             __ctype_b_loc
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    parse_sockaddr_components_dns
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dns_resolve
        - parse_sockaddr_components
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:405,5'
          Dst:             dns_resolve
        - Src:             'lib/socket-util.c:407,9'
          Dst:             parse_sockaddr_components
    - functionName:    parse_sockaddr_components
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      bool
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          352
      EdgeCount:       96
      CyclomaticComplexity: 25
      functionsReached:
        - __errno_location
        - atoi
        - htons
        - if_nametoindex
        - ip_parse
        - ipv6_parse
        - ovs_strerror
        - parse_sockaddr_components_dns
        - sa_cast
        - sin6_cast
        - sin_cast
        - str_to_int
        - strchr
        - strsep
        - strspn
        - vlog
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:422,40'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:422,31'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:430,14'
          Dst:             str_to_int
        - Src:             'lib/socket-util.c:431,13'
          Dst:             vlog
        - Src:             'lib/socket-util.c:439,19'
          Dst:             strchr
        - Src:             'lib/socket-util.c:440,47'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:440,37'
          Dst:             sin6_cast
        - Src:             'lib/socket-util.c:441,22'
          Dst:             strsep
        - Src:             'lib/socket-util.c:444,27'
          Dst:             htons
        - Src:             'lib/socket-util.c:445,33'
          Dst:             ipv6_parse
        - Src:             'lib/socket-util.c:450,23'
          Dst:             strsep
        - Src:             'lib/socket-util.c:452,24'
          Dst:             strspn
        - Src:             'lib/socket-util.c:453,39'
          Dst:             atoi
        - Src:             'lib/socket-util.c:455,39'
          Dst:             if_nametoindex
        - Src:             'lib/socket-util.c:457,21'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:457,21'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util.c:457,21'
          Dst:             vlog
        - Src:             'lib/socket-util.c:466,25'
          Dst:             htons
        - Src:             'lib/socket-util.c:467,24'
          Dst:             ip_parse
        - Src:             'lib/socket-util.c:476,13'
          Dst:             parse_sockaddr_components_dns
        - Src:             'lib/socket-util.c:484,9'
          Dst:             vlog
    - functionName:    sa_cast
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1171
      functionLinenumberEnd: 1172
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sin_cast
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1048
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sin6_cast
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1053
      functionLinenumberEnd: 1054
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strsep
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    htons
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    71
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atoi
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    if_nametoindex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    emulate_recvmmsg
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1262
      functionLinenumberEnd: 1280
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          114
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - ovs_ignore
        - recvmsg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1263,5'
          Dst:             ovs_ignore
        - Src:             'lib/socket-util.c:1269,26'
          Dst:             recvmsg
    - functionName:    recvmsg
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    wrap_recvmmsg
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1296
      functionLinenumberEnd: 1310
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          82
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - emulate_recvmmsg
        - ovs_ignore
        - recvmmsg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1297,5'
          Dst:             ovs_ignore
        - Src:             'lib/socket-util.c:1301,26'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1302,22'
          Dst:             recvmmsg
        - Src:             'lib/socket-util.c:1303,28'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1307,9'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1309,12'
          Dst:             emulate_recvmmsg
    - functionName:    recvmmsg
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    emulate_sendmmsg
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1221
      functionLinenumberEnd: 1230
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - sendmsg
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1223,26'
          Dst:             sendmsg
    - functionName:    sendmsg
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    wrap_sendmmsg
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1244
      functionLinenumberEnd: 1256
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - emulate_sendmmsg
        - sendmmsg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1247,26'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1248,22'
          Dst:             sendmmsg
        - Src:             'lib/socket-util.c:1249,28'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1253,9'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1255,12'
          Dst:             emulate_sendmmsg
    - functionName:    sendmmsg
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ss_format_address_nobracks
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1201
      functionLinenumberEnd: 1203
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_cast
        - sa_format_address_nobracks
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1202,32'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:1202,5'
          Dst:             sa_format_address_nobracks
    - functionName:    sa_format_address_nobracks
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1148
      functionLinenumberEnd: 1150
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_format_address__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1149,5'
          Dst:             sa_format_address__
    - functionName:    sa_format_address__
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1105
      functionLinenumberEnd: 1134
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          151
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ds_put_char
        - ds_put_cstr
        - ds_put_format
        - ds_reserve
        - if_indextoname
        - inet_ntop
        - is_safe_name
        - ntohl
        - ovs_ignore
        - sa_is_ip
        - sin6_cast
        - sin_cast
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1106,16'
          Dst:             sa_is_ip
        - Src:             'lib/socket-util.c:1106,5'
          Dst:             ovs_ignore
        - Src:             'lib/socket-util.c:1108,34'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:1108,34'
          Dst:             ntohl
        - Src:             'lib/socket-util.c:1108,34'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:1108,34'
          Dst:             ntohl
        - Src:             'lib/socket-util.c:1108,34'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:1108,34'
          Dst:             ntohl
        - Src:             'lib/socket-util.c:1108,34'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:1108,34'
          Dst:             ntohl
        - Src:             'lib/socket-util.c:1108,9'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:1110,43'
          Dst:             sin6_cast
        - Src:             'lib/socket-util.c:1112,9'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:1113,9'
          Dst:             ds_reserve
        - Src:             'lib/socket-util.c:1115,9'
          Dst:             inet_ntop
        - Src:             'lib/socket-util.c:1116,22'
          Dst:             strlen
        - Src:             'lib/socket-util.c:1122,26'
          Dst:             if_indextoname
        - Src:             'lib/socket-util.c:1123,13'
          Dst:             ds_put_char
        - Src:             'lib/socket-util.c:1124,25'
          Dst:             is_safe_name
        - Src:             'lib/socket-util.c:1125,17'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:1127,17'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:1132,9'
          Dst:             ds_put_cstr
    - functionName:    sa_is_ip
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1060
      functionLinenumberEnd: 1061
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntohl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    20
      BranchProfiles:  []
      Callsites:       []
    - functionName:    inet_ntop
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    if_indextoname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ss_format_address
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1195
      functionLinenumberEnd: 1197
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_cast
        - sa_format_address
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1196,23'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:1196,5'
          Dst:             sa_format_address
    - functionName:    sa_format_address
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1140
      functionLinenumberEnd: 1142
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_format_address__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1141,5'
          Dst:             sa_format_address__
    - functionName:    ss_get_address
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1189
      functionLinenumberEnd: 1190
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_cast
        - sa_get_address
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1190,27'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:1190,12'
          Dst:             sa_get_address
    - functionName:    sa_get_address
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1068
      functionLinenumberEnd: 1072
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - in6_addr_mapped_ipv4
        - ovs_ignore
        - sa_is_ip
        - sin6_cast
        - sin_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1069,16'
          Dst:             sa_is_ip
        - Src:             'lib/socket-util.c:1069,5'
          Dst:             ovs_ignore
        - Src:             'lib/socket-util.c:1071,36'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:1071,15'
          Dst:             in6_addr_mapped_ipv4
        - Src:             'lib/socket-util.c:1072,15'
          Dst:             sin6_cast
    - functionName:    in6_addr_mapped_ipv4
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1215
      functionLinenumberEnd: 1220
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ss_is_ip
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1177
      functionLinenumberEnd: 1178
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_cast
        - sa_is_ip
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1178,21'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:1178,12'
          Dst:             sa_is_ip
    - functionName:    sa_length
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1165
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached:
        - abort
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1155,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/socket-util.c:1163,9'
          Dst:             abort
    - functionName:    sa_get_port
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1078
      functionLinenumberEnd: 1082
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ntohs
        - ovs_ignore
        - sa_is_ip
        - sin6_cast
        - sin_cast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1079,16'
          Dst:             sa_is_ip
        - Src:             'lib/socket-util.c:1079,5'
          Dst:             ovs_ignore
        - Src:             'lib/socket-util.c:1081,20'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:1082,20'
          Dst:             sin6_cast
        - Src:             'lib/socket-util.c:1080,12'
          Dst:             ntohs
    - functionName:    ntohs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    put_fd_filename
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 1010
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_buffer
        - ds_put_char
        - ds_put_cstr
        - readlink
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1000,16'
          Dst:             xasprintf
        - Src:             'lib/socket-util.c:1001,9'
          Dst:             readlink
        - Src:             'lib/socket-util.c:1003,9'
          Dst:             ds_put_char
        - Src:             'lib/socket-util.c:1004,9'
          Dst:             ds_put_buffer
        - Src:             'lib/socket-util.c:1006,13'
          Dst:             ds_put_cstr
    - functionName:    readlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    describe_sockaddr
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 913
      functionLinenumberEnd: 989
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          233
      EdgeCount:       54
      CyclomaticComplexity: 13
      functionsReached:
        - ds_put_buffer
        - ds_put_cstr
        - ds_put_format
        - getsockopt_int
        - if_indextoname
        - memchr
        - ntohs
        - ss_format_address
        - ss_get_port
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:944,17'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/socket-util.c:919,13'
          Dst:             ss_format_address
        - Src:             'lib/socket-util.c:920,47'
          Dst:             ss_get_port
        - Src:             'lib/socket-util.c:920,13'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:928,20'
          Dst:             memchr
        - Src:             'lib/socket-util.c:929,13'
          Dst:             ds_put_buffer
        - Src:             'lib/socket-util.c:942,18'
          Dst:             getsockopt_int
        - Src:             'lib/socket-util.c:946,21'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:950,21'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:954,21'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:958,17'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:967,13'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:971,21'
          Dst:             if_indextoname
        - Src:             'lib/socket-util.c:972,21'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:974,21'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:979,31'
          Dst:             ntohs
        - Src:             'lib/socket-util.c:978,17'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:984,13'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:986,13'
          Dst:             ds_put_format
    - functionName:    ss_get_port
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1183
      functionLinenumberEnd: 1184
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_cast
        - sa_get_port
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1184,24'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:1184,12'
          Dst:             sa_get_port
    - functionName:    memchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getsockopt_int
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 888
      functionLinenumberEnd: 907
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          114
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - getsockopt
        - sock_errno
        - sock_strerror
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:895,9'
          Dst:             getsockopt
        - Src:             'lib/socket-util.c:896,17'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:897,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:897,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/socket-util.c:900,9'
          Dst:             vlog_rate_limit
    - functionName:    getsockopt
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sock_errno
      functionSourceFile: '/src/openvswitch/lib/socket-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.h:149,12'
          Dst:             __errno_location
    - functionName:    sock_strerror
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1213
      functionLinenumberEnd: 1214
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1214,12'
          Dst:             ovs_strerror
    - functionName:    describe_fd
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1016
      functionLinenumberEnd: 1040
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          131
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - describe_sockaddr
        - ds_init
        - ds_put_cstr
        - ds_put_format
        - ds_steal_cstr
        - fstat
        - getpeername
        - getsockname
        - isatty
        - ovs_strerror
        - put_fd_filename
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1020,5'
          Dst:             ds_init
        - Src:             'lib/socket-util.c:1021,9'
          Dst:             fstat
        - Src:             'lib/socket-util.c:1022,66'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1022,53'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util.c:1022,9'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:1024,9'
          Dst:             describe_sockaddr
        - Src:             'lib/socket-util.c:1024,9'
          Dst:             getsockname
        - Src:             'lib/socket-util.c:1025,9'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:1026,9'
          Dst:             describe_sockaddr
        - Src:             'lib/socket-util.c:1026,9'
          Dst:             getpeername
        - Src:             'lib/socket-util.c:1028,31'
          Dst:             isatty
        - Src:             'lib/socket-util.c:1028,9'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:1037,9'
          Dst:             put_fd_filename
        - Src:             'lib/socket-util.c:1040,12'
          Dst:             ds_steal_cstr
    - functionName:    fstat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getsockname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpeername
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    isatty
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_mtime
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 884
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - stat
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:868,10'
          Dst:             stat
        - Src:             'lib/socket-util.c:882,16'
          Dst:             __errno_location
    - functionName:    stat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fsync_parent_dir
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          120
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - close
        - dir_name
        - fsync
        - open
        - ovs_strerror
        - vlog
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:837,11'
          Dst:             dir_name
        - Src:             'lib/socket-util.c:838,10'
          Dst:             open
        - Src:             'lib/socket-util.c:840,13'
          Dst:             fsync
        - Src:             'lib/socket-util.c:841,17'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:841,36'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:845,25'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:846,17'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util.c:846,17'
          Dst:             vlog
        - Src:             'lib/socket-util.c:849,9'
          Dst:             close
        - Src:             'lib/socket-util.c:851,17'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:852,9'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util.c:852,9'
          Dst:             vlog
    - functionName:    open
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fsync
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    close
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    30
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_fully
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 826
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          109
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - vlog
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:813,26'
          Dst:             write
        - Src:             'lib/socket-util.c:819,13'
          Dst:             vlog
        - Src:             'lib/socket-util.c:821,20'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:822,20'
          Dst:             __errno_location
    - functionName:    write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    read_fully
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 787
      functionLinenumberEnd: 804
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:792,26'
          Dst:             read
        - Src:             'lib/socket-util.c:799,20'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:800,20'
          Dst:             __errno_location
    - functionName:    read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unbracket
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strchr
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:319,21'
          Dst:             strchr
    - functionName:    inet_parse_address
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_sockaddr_components
        - unbracket
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:774,20'
          Dst:             xstrdup
        - Src:             'lib/socket-util.c:775,18'
          Dst:             unbracket
        - Src:             'lib/socket-util.c:776,15'
          Dst:             parse_sockaddr_components
    - functionName:    inet_open_passive
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 764
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - char
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         81
      ICount:          408
      EdgeCount:       105
      CyclomaticComplexity: 26
      functionsReached:
        - bind
        - close
        - getsockname
        - inet_parse_passive
        - listen
        - set_dscp
        - set_nonblocking
        - setsockopt
        - sock_errno
        - sock_strerror
        - socket
        - ss_get_port
        - ss_length
        - vlog
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:687,10'
          Dst:             inet_parse_passive
        - Src:             'lib/socket-util.c:695,27'
          Dst:             ss_get_port
        - Src:             'lib/socket-util.c:698,10'
          Dst:             socket
        - Src:             'lib/socket-util.c:700,17'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:701,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:701,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:704,13'
          Dst:             set_nonblocking
        - Src:             'lib/socket-util.c:709,12'
          Dst:             setsockopt
        - Src:             'lib/socket-util.c:710,17'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:711,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:711,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:717,43'
          Dst:             ss_length
        - Src:             'lib/socket-util.c:717,9'
          Dst:             bind
        - Src:             'lib/socket-util.c:718,17'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:720,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:720,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/socket-util.c:727,13'
          Dst:             set_dscp
        - Src:             'lib/socket-util.c:729,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:729,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:734,33'
          Dst:             listen
        - Src:             'lib/socket-util.c:735,17'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:736,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:736,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:742,13'
          Dst:             getsockname
        - Src:             'lib/socket-util.c:743,21'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:744,13'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:744,13'
          Dst:             vlog
        - Src:             'lib/socket-util.c:748,13'
          Dst:             ss_get_port
        - Src:             'lib/socket-util.c:748,13'
          Dst:             vlog
        - Src:             'lib/socket-util.c:762,5'
          Dst:             close
    - functionName:    inet_parse_passive
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          111
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - inet_parse_port_host_tokens
        - parse_sockaddr_components
        - vlog
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:634,20'
          Dst:             xstrdup
        - Src:             'lib/socket-util.c:638,5'
          Dst:             inet_parse_port_host_tokens
        - Src:             'lib/socket-util.c:640,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:646,14'
          Dst:             parse_sockaddr_components
    - functionName:    socket
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_nonblocking
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          93
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fcntl
        - ovs_strerror
        - vlog
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:73,17'
          Dst:             fcntl
        - Src:             'lib/socket-util.c:75,13'
          Dst:             fcntl
        - Src:             'lib/socket-util.c:78,13'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:78,13'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util.c:78,13'
          Dst:             vlog
        - Src:             'lib/socket-util.c:79,20'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:82,9'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:82,9'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util.c:82,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:83,16'
          Dst:             __errno_location
    - functionName:    setsockopt
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ss_length
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1207
      functionLinenumberEnd: 1208
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_cast
        - sa_length
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1208,22'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:1208,12'
          Dst:             sa_length
    - functionName:    bind
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_dscp
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - setsockopt
        - sock_errno
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:122,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/socket-util.c:124,18'
          Dst:             setsockopt
        - Src:             'lib/socket-util.c:128,18'
          Dst:             setsockopt
        - Src:             'lib/socket-util.c:135,21'
          Dst:             sock_errno
    - functionName:    listen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fcntl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    inet_parse_port_host_tokens
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inet_parse_tokens__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:393,5'
          Dst:             inet_parse_tokens__
    - functionName:    inet_parse_tokens__
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          147
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - unbracket
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:355,26'
          Dst:             unbracket
        - Src:             'lib/socket-util.c:357,22'
          Dst:             unbracket
    - functionName:    inet_open_active
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 612
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          221
      EdgeCount:       56
      CyclomaticComplexity: 15
      functionsReached:
        - close
        - connect
        - inet_parse_active
        - set_dscp
        - set_nonblocking
        - sock_errno
        - sock_strerror
        - socket
        - ss_length
        - vlog
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:563,10'
          Dst:             inet_parse_active
        - Src:             'lib/socket-util.c:569,10'
          Dst:             socket
        - Src:             'lib/socket-util.c:571,17'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:572,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:572,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:575,13'
          Dst:             set_nonblocking
        - Src:             'lib/socket-util.c:583,13'
          Dst:             set_dscp
        - Src:             'lib/socket-util.c:585,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:585,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:590,50'
          Dst:             ss_length
        - Src:             'lib/socket-util.c:590,13'
          Dst:             connect
        - Src:             'lib/socket-util.c:592,23'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:603,13'
          Dst:             close
    - functionName:    inet_parse_active
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          150
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - inet_parse_host_port_tokens
        - parse_sockaddr_components
        - vlog
        - xstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:507,20'
          Dst:             xstrdup
        - Src:             'lib/socket-util.c:511,5'
          Dst:             inet_parse_host_port_tokens
        - Src:             'lib/socket-util.c:513,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:519,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:525,14'
          Dst:             parse_sockaddr_components
    - functionName:    connect
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    inet_parse_host_port_tokens
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inet_parse_tokens__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:376,5'
          Dst:             inet_parse_tokens__
    - functionName:    guess_netmask
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - htonl
        - ntohl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:306,19'
          Dst:             ntohl
        - Src:             'lib/socket-util.c:307,31'
          Dst:             htonl
        - Src:             'lib/socket-util.c:308,33'
          Dst:             htonl
        - Src:             'lib/socket-util.c:309,33'
          Dst:             htonl
        - Src:             'lib/socket-util.c:310,15'
          Dst:             htonl
    - functionName:    htonl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    45
      BranchProfiles:  []
      Callsites:       []
    - functionName:    drain_fd
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          43
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:297,13'
          Dst:             read
    - functionName:    get_socket_rcvbuf
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getsockopt_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:281,13'
          Dst:             getsockopt_int
    - functionName:    check_connection_completion
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          139
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - poll
        - send
        - sock_errno
        - sock_strerror
        - vlog_rate_limit
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:251,18'
          Dst:             poll
        - Src:             'lib/socket-util.c:252,28'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:256,25'
          Dst:             send
        - Src:             'lib/socket-util.c:258,24'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:260,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/socket-util.c:266,9'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:266,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:266,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/socket-util.c:267,16'
          Dst:             __errno_location
    - functionName:    poll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    send
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lookup_hostname
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          109
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - freeaddrinfo
        - getaddrinfo
        - ip_parse
        - sock_errno
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:197,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/socket-util.c:190,9'
          Dst:             ip_parse
        - Src:             'lib/socket-util.c:197,13'
          Dst:             getaddrinfo
        - Src:             'lib/socket-util.c:201,9'
          Dst:             freeaddrinfo
        - Src:             'lib/socket-util.c:232,16'
          Dst:             sock_errno
    - functionName:    getaddrinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freeaddrinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lookup_ipv6
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - ipv6_parse
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:167,10'
          Dst:             ipv6_parse
        - Src:             'lib/socket-util.c:169,9'
          Dst:             vlog_rate_limit
    - functionName:    lookup_ip
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          52
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - ip_parse
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:153,10'
          Dst:             ip_parse
        - Src:             'lib/socket-util.c:155,9'
          Dst:             vlog_rate_limit
    - functionName:    addr_is_ipv6
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:144,12'
          Dst:             strchr
    - functionName:    setsockopt_tcp_nodelay
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          54
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - setsockopt
        - sock_errno
        - sock_strerror
        - vlog
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:101,14'
          Dst:             setsockopt
        - Src:             'lib/socket-util.c:103,18'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:104,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:104,9'
          Dst:             vlog
    - functionName:    xset_nonblocking
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - exit
        - set_nonblocking
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:90,9'
          Dst:             set_nonblocking
        - Src:             'lib/socket-util.c:91,9'
          Dst:             exit
    - functionName:    exit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_stream
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:44,1'
          Dst:             vlog_insert_module
    - functionName:    pstream_open_init_coverage
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:46,1'
          Dst:             coverage_counter_register
    - functionName:    stream_open_init_coverage
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:47,1'
          Dst:             coverage_counter_register
    - functionName:    stream_open_count
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_stream_open_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:47,1'
          Dst:             counter_stream_open_get
    - functionName:    counter_stream_open_get
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_stream_open_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:47,1'
          Dst:             counter_stream_open_get_unsafe
    - functionName:    counter_stream_open_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pstream_open_count
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_pstream_open_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:46,1'
          Dst:             counter_pstream_open_get
    - functionName:    counter_pstream_open_get
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_pstream_open_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:46,1'
          Dst:             counter_pstream_open_get_unsafe
    - functionName:    counter_pstream_open_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_stream_classes
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_content_type_to_string
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 832
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          37
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream.c:818,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    stream_guess_content
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 812
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream.c:801,9'
          Branch Sides:    []
      Callsites:       []
    - functionName:    stream_report_content
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 855
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - stream_content_type_to_string
        - stream_guess_content
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:847,19'
          Dst:             stream_guess_content
        - Src:             'lib/stream.c:852,25'
          Dst:             stream_content_type_to_string
        - Src:             'lib/stream.c:853,25'
          Dst:             stream_content_type_to_string
        - Src:             'lib/stream.c:849,9'
          Dst:             vlog_rate_limit
    - functionName:    stream_parse_target_with_default_port
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 789
      functionLinenumberEnd: 791
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - inet_parse_active
        - strncmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:790,15'
          Dst:             strncmp
        - Src:             'lib/stream.c:790,46'
          Dst:             strncmp
        - Src:             'lib/stream.c:791,16'
          Dst:             inet_parse_active
    - functionName:    pstream_open_with_default_port
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 762
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - count_fields
        - pstream_open
        - strncmp
        - xasprintf
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:766,11'
          Dst:             strncmp
        - Src:             'lib/stream.c:766,42'
          Dst:             strncmp
        - Src:             'lib/stream.c:767,12'
          Dst:             count_fields
        - Src:             'lib/stream.c:768,16'
          Dst:             xasprintf
        - Src:             'lib/stream.c:770,16'
          Dst:             xstrdup
        - Src:             'lib/stream.c:772,13'
          Dst:             pstream_open
    - functionName:    count_fields
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 720
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - strtok_r
        - xstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:713,9'
          Dst:             xstrdup
        - Src:             'lib/stream.c:714,18'
          Dst:             strtok_r
        - Src:             'lib/stream.c:715,18'
          Dst:             strtok_r
    - functionName:    pstream_open
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pstream_lookup_class
        - pstream_open_add
        - pstream_replay_open_wfd
        - strchr
        - xstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:554,5'
          Dst:             pstream_open_add
        - Src:             'lib/stream.c:557,13'
          Dst:             pstream_lookup_class
        - Src:             'lib/stream.c:563,27'
          Dst:             strchr
        - Src:             'lib/stream.c:563,19'
          Dst:             xstrdup
        - Src:             'lib/stream.c:567,5'
          Dst:             pstream_replay_open_wfd
    - functionName:    pstream_open_add
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_pstream_open_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:46,1'
          Dst:             counter_pstream_open_get
    - functionName:    pstream_lookup_class
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          106
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - check_stream_classes
        - memcmp
        - ovs_replay_get_state
        - strcspn
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:489,5'
          Dst:             check_stream_classes
        - Src:             'lib/stream.c:492,18'
          Dst:             strcspn
        - Src:             'lib/stream.c:498,13'
          Dst:             strlen
        - Src:             'lib/stream.c:499,17'
          Dst:             memcmp
        - Src:             'lib/stream.c:500,17'
          Dst:             ovs_replay_get_state
    - functionName:    strcspn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    memcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strtok_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    stream_open_with_default_port
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 730
      functionLinenumberEnd: 752
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          121
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - count_fields
        - ovsthread_once_done
        - ovsthread_once_start
        - stream_open
        - strncmp
        - vlog
        - xasprintf
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:734,11'
          Dst:             strncmp
        - Src:             'lib/stream.c:734,41'
          Dst:             strncmp
        - Src:             'lib/stream.c:735,12'
          Dst:             count_fields
        - Src:             'lib/stream.c:737,13'
          Dst:             ovsthread_once_start
        - Src:             'lib/stream.c:737,13'
          Dst:             vlog
        - Src:             'lib/stream.c:737,13'
          Dst:             ovsthread_once_done
        - Src:             'lib/stream.c:741,13'
          Dst:             ovsthread_once_start
        - Src:             'lib/stream.c:741,13'
          Dst:             vlog
        - Src:             'lib/stream.c:741,13'
          Dst:             ovsthread_once_done
        - Src:             'lib/stream.c:745,16'
          Dst:             xasprintf
        - Src:             'lib/stream.c:747,16'
          Dst:             xstrdup
        - Src:             'lib/stream.c:749,13'
          Dst:             stream_open
    - functionName:    stream_open
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strchr
        - stream_lookup_class
        - stream_open_add
        - stream_replay_open_wfd
        - xstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:223,5'
          Dst:             stream_open_add
        - Src:             'lib/stream.c:226,13'
          Dst:             stream_lookup_class
        - Src:             'lib/stream.c:232,27'
          Dst:             strchr
        - Src:             'lib/stream.c:232,19'
          Dst:             xstrdup
        - Src:             'lib/stream.c:236,5'
          Dst:             stream_replay_open_wfd
    - functionName:    stream_open_add
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_stream_open_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:47,1'
          Dst:             counter_stream_open_get
    - functionName:    stream_lookup_class
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          106
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - check_stream_classes
        - memcmp
        - ovs_replay_get_state
        - strcspn
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:177,5'
          Dst:             check_stream_classes
        - Src:             'lib/stream.c:180,18'
          Dst:             strcspn
        - Src:             'lib/stream.c:186,13'
          Dst:             strlen
        - Src:             'lib/stream.c:187,17'
          Dst:             memcmp
        - Src:             'lib/stream.c:188,17'
          Dst:             ovs_replay_get_state
    - functionName:    pstream_set_bound_port
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 704
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pstream_init
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_init
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_ignore
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:687,5'
          Dst:             ovs_ignore
    - functionName:    pstream_get_bound_port
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 655
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pstream_wait
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 647
      functionLinenumberEnd: 649
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pstream_accept_block
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fatal_signal_run
        - poll_block
        - pstream_accept
        - pstream_wait
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:634,5'
          Dst:             fatal_signal_run
        - Src:             'lib/stream.c:635,21'
          Dst:             pstream_accept
        - Src:             'lib/stream.c:636,9'
          Dst:             pstream_wait
        - Src:             'lib/stream.c:637,9'
          Dst:             poll_block
    - functionName:    pstream_accept
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 620
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_ignore
        - pstream_replay_write_accept
        - stream_replay_open_wfd
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:613,9'
          Dst:             pstream_replay_write_accept
        - Src:             'lib/stream.c:615,9'
          Dst:             ovs_ignore
        - Src:             'lib/stream.c:617,9'
          Dst:             pstream_replay_write_accept
        - Src:             'lib/stream.c:618,9'
          Dst:             stream_replay_open_wfd
    - functionName:    pstream_close
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 599
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pstream_replay_close_wfd
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:595,9'
          Dst:             pstream_replay_close_wfd
    - functionName:    pstream_get_name
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 586
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_or_pstream_needs_probes
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 526
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pstream_lookup_class
        - stream_lookup_class
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:530,10'
          Dst:             stream_lookup_class
        - Src:             'lib/stream.c:532,17'
          Dst:             pstream_lookup_class
    - functionName:    pstream_verify_name
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstream_lookup_class
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:517,12'
          Dst:             pstream_lookup_class
    - functionName:    stream_get_peer_id
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_set_peer_id
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:470,23'
          Dst:             xstrdup
    - functionName:    stream_send_wait
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_wait
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:463,5'
          Dst:             stream_wait
    - functionName:    stream_wait
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          71
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_ignore
        - poll_immediate_wake_at
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream.c:436,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/stream.c:433,5'
          Dst:             ovs_ignore
        - Src:             'lib/stream.c:442,9'
          Dst:             poll_immediate_wake_at
    - functionName:    stream_recv_wait
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_wait
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:457,5'
          Dst:             stream_wait
    - functionName:    stream_send
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - stream_connect
        - stream_replay_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:399,18'
          Dst:             stream_connect
        - Src:             'lib/stream.c:404,5'
          Dst:             stream_replay_write
    - functionName:    stream_connect
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          64
      EdgeCount:       25
      CyclomaticComplexity: 14
      functionsReached:
        - abort
        - scs_connecting
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/stream.c:344,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/stream.c:346,13'
          Dst:             scs_connecting
        - Src:             'lib/stream.c:356,13'
          Dst:             abort
    - functionName:    scs_connecting
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:324,5'
          Dst:             ovs_ignore
    - functionName:    stream_recv
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - stream_connect
        - stream_replay_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:377,18'
          Dst:             stream_connect
        - Src:             'lib/stream.c:383,5'
          Dst:             stream_replay_write
    - functionName:    stream_get_name
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          21
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_close
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - stream_replay_close_wfd
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:305,9'
          Dst:             stream_replay_close_wfd
    - functionName:    stream_connect_wait
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_wait
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:451,5'
          Dst:             stream_wait
    - functionName:    stream_run_wait
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_run
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_open_block
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          128
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - fatal_signal_run
        - ovs_ignore
        - poll_block
        - poll_timer_wait_until_at
        - stream_close
        - stream_connect
        - stream_connect_wait
        - stream_run
        - stream_run_wait
        - time_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:267,5'
          Dst:             fatal_signal_run
        - Src:             'lib/stream.c:271,37'
          Dst:             time_msec
        - Src:             'lib/stream.c:273,25'
          Dst:             stream_connect
        - Src:             'lib/stream.c:274,42'
          Dst:             time_msec
        - Src:             'lib/stream.c:278,13'
          Dst:             stream_run
        - Src:             'lib/stream.c:279,13'
          Dst:             stream_run_wait
        - Src:             'lib/stream.c:280,13'
          Dst:             stream_connect_wait
        - Src:             'lib/stream.c:282,17'
          Dst:             poll_timer_wait_until_at
        - Src:             'lib/stream.c:284,13'
          Dst:             poll_block
        - Src:             'lib/stream.c:286,9'
          Dst:             ovs_ignore
        - Src:             'lib/stream.c:290,9'
          Dst:             stream_close
    - functionName:    stream_verify_name
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_lookup_class
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:205,12'
          Dst:             stream_lookup_class
    - functionName:    stream_usage
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:120,5'
          Dst:             printf
        - Src:             'lib/stream.c:122,9'
          Dst:             printf
        - Src:             'lib/stream.c:123,9'
          Dst:             printf
        - Src:             'lib/stream.c:126,9'
          Dst:             printf
        - Src:             'lib/stream.c:129,9'
          Dst:             printf
        - Src:             'lib/stream.c:134,9'
          Dst:             printf
        - Src:             'lib/stream.c:135,9'
          Dst:             printf
        - Src:             'lib/stream.c:138,9'
          Dst:             printf
        - Src:             'lib/stream.c:141,9'
          Dst:             printf
        - Src:             'lib/stream.c:143,9'
          Dst:             printf
        - Src:             'lib/stream.c:148,5'
          Dst:             printf
        - Src:             'lib/stream.c:153,9'
          Dst:             printf
        - Src:             'lib/stream.c:156,5'
          Dst:             printf
    - functionName:    init_this_module_svec
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:27,1'
          Dst:             vlog_insert_module
    - functionName:    svec_pop_back
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:415,5'
          Dst:             ovs_ignore
    - functionName:    svec_back
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:408,5'
          Dst:             ovs_ignore
    - functionName:    svec_join
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ds_cstr
        - ds_init
        - ds_put_cstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:394,5'
          Dst:             ds_init
        - Src:             'lib/svec.c:397,13'
          Dst:             ds_put_cstr
        - Src:             'lib/svec.c:399,9'
          Dst:             ds_put_cstr
        - Src:             'lib/svec.c:401,5'
          Dst:             ds_put_cstr
        - Src:             'lib/svec.c:402,12'
          Dst:             ds_cstr
    - functionName:    svec_equal
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:380,13'
          Dst:             strcmp
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    svec_parse_words
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         57
      ICount:          278
      EdgeCount:       73
      CyclomaticComplexity: 18
      functionsReached:
        - __ctype_b_loc
        - ds_clear
        - ds_cstr
        - ds_destroy
        - ds_put_char
        - svec_add
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:336,16'
          Dst:             __ctype_b_loc
        - Src:             'lib/svec.c:343,9'
          Dst:             ds_clear
        - Src:             'lib/svec.c:352,21'
          Dst:             vlog
        - Src:             'lib/svec.c:355,17'
          Dst:             ds_put_char
        - Src:             'lib/svec.c:356,24'
          Dst:             __ctype_b_loc
        - Src:             'lib/svec.c:360,17'
          Dst:             ds_put_char
        - Src:             'lib/svec.c:363,24'
          Dst:             ds_cstr
        - Src:             'lib/svec.c:363,9'
          Dst:             svec_add
        - Src:             'lib/svec.c:365,13'
          Dst:             vlog
        - Src:             'lib/svec.c:368,5'
          Dst:             ds_destroy
    - functionName:    svec_add
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_add_nocopy
        - xstrdup
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:71,27'
          Dst:             xstrdup
        - Src:             'lib/svec.c:71,5'
          Dst:             svec_add_nocopy
    - functionName:    svec_add_nocopy
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_expand
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:100,5'
          Dst:             svec_expand
    - functionName:    svec_expand
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - x2nrealloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:92,23'
          Dst:             x2nrealloc
    - functionName:    svec_print
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:319,5'
          Dst:             printf
        - Src:             'lib/svec.c:321,9'
          Dst:             printf
    - functionName:    svec_get_duplicate
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ovs_ignore
        - strcmp
        - svec_is_sorted
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:294,16'
          Dst:             svec_is_sorted
        - Src:             'lib/svec.c:294,5'
          Dst:             ovs_ignore
        - Src:             'lib/svec.c:298,18'
          Dst:             strcmp
    - functionName:    svec_is_sorted
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:278,13'
          Dst:             strcmp
    - functionName:    svec_is_unique
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_get_duplicate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:288,12'
          Dst:             svec_get_duplicate
    - functionName:    svec_contains_unsorted
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:254,14'
          Dst:             strcmp
    - functionName:    svec_contains
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:247,12'
          Dst:             svec_find
    - functionName:    svec_find
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bsearch
        - compare_strings
        - ovs_ignore
        - svec_is_sorted
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:266,16'
          Dst:             svec_is_sorted
        - Src:             'lib/svec.c:266,5'
          Dst:             ovs_ignore
        - Src:             'lib/svec.c:267,9'
          Dst:             bsearch
        - Src:             'lib/svec.c:267,9'
          Dst:             compare_strings
    - functionName:    compare_strings
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:125,12'
          Dst:             strcmp
    - functionName:    bsearch
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    svec_diff
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          261
      EdgeCount:       61
      CyclomaticComplexity: 16
      functionsReached:
        - ovs_ignore
        - strcmp
        - svec_add
        - svec_init
        - svec_is_sorted
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:201,16'
          Dst:             svec_is_sorted
        - Src:             'lib/svec.c:201,5'
          Dst:             ovs_ignore
        - Src:             'lib/svec.c:202,16'
          Dst:             svec_is_sorted
        - Src:             'lib/svec.c:202,5'
          Dst:             ovs_ignore
        - Src:             'lib/svec.c:204,9'
          Dst:             svec_init
        - Src:             'lib/svec.c:207,9'
          Dst:             svec_init
        - Src:             'lib/svec.c:210,9'
          Dst:             svec_init
        - Src:             'lib/svec.c:213,19'
          Dst:             strcmp
        - Src:             'lib/svec.c:216,17'
          Dst:             svec_add
        - Src:             'lib/svec.c:221,17'
          Dst:             svec_add
        - Src:             'lib/svec.c:226,17'
          Dst:             svec_add
        - Src:             'lib/svec.c:234,13'
          Dst:             svec_add
        - Src:             'lib/svec.c:239,13'
          Dst:             svec_add
    - functionName:    svec_init
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    swap_strings
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    random_range
      functionSourceFile: '/src/openvswitch/lib/random.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - random_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/random.h:33,12'
          Dst:             random_uint32
    - functionName:    svec_shuffle
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          57
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - random_range
        - swap_strings
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:190,24'
          Dst:             random_range
        - Src:             'lib/svec.c:191,9'
          Dst:             swap_strings
    - functionName:    svec_compact
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    svec_swap
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    svec_unique
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          91
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ovs_ignore
        - strcmp
        - svec_add
        - svec_destroy
        - svec_init
        - svec_is_sorted
        - svec_swap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:146,16'
          Dst:             svec_is_sorted
        - Src:             'lib/svec.c:146,5'
          Dst:             ovs_ignore
        - Src:             'lib/svec.c:153,9'
          Dst:             svec_init
        - Src:             'lib/svec.c:154,9'
          Dst:             svec_add
        - Src:             'lib/svec.c:156,17'
          Dst:             strcmp
        - Src:             'lib/svec.c:157,17'
          Dst:             svec_add
        - Src:             'lib/svec.c:160,9'
          Dst:             svec_swap
        - Src:             'lib/svec.c:161,9'
          Dst:             svec_destroy
    - functionName:    svec_destroy
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_clear
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:47,5'
          Dst:             svec_clear
    - functionName:    svec_clear
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    svec_sort_unique
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_sort
        - svec_unique
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:139,5'
          Dst:             svec_sort
        - Src:             'lib/svec.c:140,5'
          Dst:             svec_unique
    - functionName:    svec_sort
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - compare_strings
        - qsort
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:132,9'
          Dst:             qsort
        - Src:             'lib/svec.c:132,9'
          Dst:             compare_strings
    - functionName:    svec_terminate
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_expand
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:116,5'
          Dst:             svec_expand
    - functionName:    svec_del
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          63
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - svec_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:79,14'
          Dst:             svec_find
    - functionName:    svec_is_empty
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    svec_append
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - svec_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:109,9'
          Dst:             svec_add
    - functionName:    svec_clone
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_append
        - svec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:40,5'
          Dst:             svec_init
        - Src:             'lib/svec.c:41,5'
          Dst:             svec_append
    - functionName:    init_this_module_timeval
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:42,1'
          Dst:             vlog_insert_module
    - functionName:    long_poll_interval_init_coverage
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:44,1'
          Dst:             coverage_counter_register
    - functionName:    long_poll_interval_count
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_long_poll_interval_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:44,1'
          Dst:             counter_long_poll_interval_get
    - functionName:    counter_long_poll_interval_get
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_long_poll_interval_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:44,1'
          Dst:             counter_long_poll_interval_get_unsafe
    - functionName:    counter_long_poll_interval_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cpu_tracker_var_once_init
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 613
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          23
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - pthread_key_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:613,1'
          Dst:             pthread_key_create
        - Src:             'lib/timeval.c:613,1'
          Dst:             abort
    - functionName:    cpu_tracker_var_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 613
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:613,1'
          Dst:             pthread_getspecific
    - functionName:    cpu_tracker_var_init
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 613
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cpu_tracker_var_once_init
        - pthread_once
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:613,1'
          Dst:             pthread_once
        - Src:             'lib/timeval.c:613,1'
          Dst:             cpu_tracker_var_once_init
    - functionName:    pthread_once
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cpu_tracker_var_set_unsafe
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 613
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cpu_tracker_var_get_unsafe
        - xpthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:613,1'
          Dst:             cpu_tracker_var_get_unsafe
        - Src:             'lib/timeval.c:613,1'
          Dst:             xpthread_setspecific
    - functionName:    cpu_tracker_var_get
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 613
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cpu_tracker_var_get_unsafe
        - cpu_tracker_var_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:613,1'
          Dst:             cpu_tracker_var_init
        - Src:             'lib/timeval.c:613,1'
          Dst:             cpu_tracker_var_get_unsafe
    - functionName:    timeval_diff_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeval_to_msec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:522,12'
          Dst:             timeval_to_msec
        - Src:             'lib/timeval.c:522,33'
          Dst:             timeval_to_msec
    - functionName:    timeval_to_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getrusage_thread
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 638
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getrusage
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:638,12'
          Dst:             getrusage
    - functionName:    getrusage
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    long_poll_interval_add
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_long_poll_interval_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:44,1'
          Dst:             counter_long_poll_interval_get
    - functionName:    get_recent_rusage
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_cpu_tracker
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:631,13'
          Dst:             get_cpu_tracker
    - functionName:    get_cpu_tracker
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cpu_tracker_var_get
        - cpu_tracker_var_set_unsafe
        - xzalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:618,29'
          Dst:             cpu_tracker_var_get
        - Src:             'lib/timeval.c:620,13'
          Dst:             xzalloc
        - Src:             'lib/timeval.c:623,9'
          Dst:             cpu_tracker_var_set_unsafe
    - functionName:    is_warped
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:547,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:549,5'
          Dst:             ovs_mutex_unlock
    - functionName:    last_seq_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_id_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_id_get
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsthread_id_get_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.h:456,1'
          Dst:             ovsthread_id_get_unsafe
    - functionName:    last_wakeup_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_clock
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_init
        - xclock_gettime
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:116,5'
          Dst:             ovs_mutex_init
        - Src:             'lib/timeval.c:118,5'
          Dst:             xclock_gettime
    - functionName:    xclock_gettime
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          32
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - clock_gettime
        - ovs_abort
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:423,9'
          Dst:             clock_gettime
        - Src:             'lib/timeval.c:426,19'
          Dst:             __errno_location
        - Src:             'lib/timeval.c:426,9'
          Dst:             ovs_abort
    - functionName:    clock_gettime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    do_init_time
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - clock_gettime
        - coverage_init
        - init_clock
        - seq_create
        - timespec_to_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:127,5'
          Dst:             coverage_init
        - Src:             'lib/timeval.c:129,20'
          Dst:             seq_create
        - Src:             'lib/timeval.c:130,36'
          Dst:             clock_gettime
        - Src:             'lib/timeval.c:130,5'
          Dst:             init_clock
        - Src:             'lib/timeval.c:133,5'
          Dst:             init_clock
        - Src:             'lib/timeval.c:134,17'
          Dst:             timespec_to_msec
    - functionName:    timespec_to_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gmtime_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 809
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gmtime_r
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:807,3'
          Dst:             gmtime_r
    - functionName:    gmtime_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    localtime_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 796
      functionLinenumberEnd: 800
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - localtime_r
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:798,3'
          Dst:             localtime_r
    - functionName:    localtime_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strftime_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 772
      functionLinenumberEnd: 791
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          111
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - sprintf
        - strchr
        - strftime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:777,15'
          Dst:             strftime
        - Src:             'lib/timeval.c:782,9'
          Dst:             sprintf
        - Src:             'lib/timeval.c:783,18'
          Dst:             strchr
        - Src:             'lib/timeval.c:783,41'
          Dst:             strchr
    - functionName:    strftime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timeval_warp_cb
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          109
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - atoll
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovsthread_id_self
        - timewarp_work
        - unixctl_command_reply_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:717,43'
          Dst:             atoll
        - Src:             'lib/timeval.c:718,38'
          Dst:             atoll
        - Src:             'lib/timeval.c:718,55'
          Dst:             atoll
        - Src:             'lib/timeval.c:720,9'
          Dst:             unixctl_command_reply_error
        - Src:             'lib/timeval.c:724,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:726,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/timeval.c:727,9'
          Dst:             unixctl_command_reply_error
        - Src:             'lib/timeval.c:734,49'
          Dst:             ovsthread_id_self
        - Src:             'lib/timeval.c:735,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/timeval.c:737,5'
          Dst:             timewarp_work
    - functionName:    atoll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_id_self
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_id_get
        - ovsthread_id_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.h:466,24'
          Dst:             ovsthread_id_get
        - Src:             'lib/ovs-thread.h:469,14'
          Dst:             ovsthread_id_init
    - functionName:    timewarp_work
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 492
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          136
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - msec_to_timespec
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - poll
        - seq_change
        - timespec_add
        - unixctl_command_reply
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:462,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:464,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/timeval.c:469,9'
          Dst:             msec_to_timespec
        - Src:             'lib/timeval.c:470,9'
          Dst:             timespec_add
        - Src:             'lib/timeval.c:473,9'
          Dst:             msec_to_timespec
        - Src:             'lib/timeval.c:474,9'
          Dst:             timespec_add
        - Src:             'lib/timeval.c:478,9'
          Dst:             msec_to_timespec
        - Src:             'lib/timeval.c:479,9'
          Dst:             timespec_add
        - Src:             'lib/timeval.c:483,9'
          Dst:             unixctl_command_reply
        - Src:             'lib/timeval.c:487,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/timeval.c:488,5'
          Dst:             seq_change
        - Src:             'lib/timeval.c:491,5'
          Dst:             poll
    - functionName:    msec_to_timespec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timespec_add
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          52
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timeval_stop_cb
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 701
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeval_stop
        - unixctl_command_reply
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:699,5'
          Dst:             timeval_stop
        - Src:             'lib/timeval.c:700,5'
          Dst:             unixctl_command_reply
    - functionName:    timeval_stop
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - xclock_gettime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:687,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:690,5'
          Dst:             xclock_gettime
        - Src:             'lib/timeval.c:691,5'
          Dst:             ovs_mutex_unlock
    - functionName:    timeval_dummy_register
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 762
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeval_stop_cb
        - timeval_warp_cb
        - unixctl_command_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:759,5'
          Dst:             unixctl_command_register
        - Src:             'lib/timeval.c:759,5'
          Dst:             timeval_stop_cb
        - Src:             'lib/timeval.c:760,5'
          Dst:             unixctl_command_register
        - Src:             'lib/timeval.c:760,5'
          Dst:             timeval_warp_cb
    - functionName:    timeval_warp
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 744
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - msec_to_timespec
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - timespec_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:748,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:750,5'
          Dst:             msec_to_timespec
        - Src:             'lib/timeval.c:751,5'
          Dst:             timespec_add
        - Src:             'lib/timeval.c:752,5'
          Dst:             ovs_mutex_unlock
    - functionName:    get_cpu_usage
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_cpu_tracker
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:677,12'
          Dst:             get_cpu_tracker
    - functionName:    last_seq_get
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - last_seq_get_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:93,1'
          Dst:             last_seq_get_unsafe
    - functionName:    timewarp_run
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - last_seq_get
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovsthread_id_self
        - seq_read
        - seq_wait_at
        - timewarp_work
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:501,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:503,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/timeval.c:505,26'
          Dst:             ovsthread_id_self
        - Src:             'lib/timeval.c:508,34'
          Dst:             last_seq_get
        - Src:             'lib/timeval.c:510,25'
          Dst:             seq_read
        - Src:             'lib/timeval.c:511,13'
          Dst:             seq_wait_at
        - Src:             'lib/timeval.c:514,13'
          Dst:             timewarp_work
    - functionName:    nsec_to_timespec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 454
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xgettimeofday
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          29
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - gettimeofday
        - ovs_strerror
        - vlog_fatal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:415,9'
          Dst:             gettimeofday
        - Src:             'lib/timeval.c:416,9'
          Dst:             __errno_location
        - Src:             'lib/timeval.c:416,9'
          Dst:             ovs_strerror
        - Src:             'lib/timeval.c:416,9'
          Dst:             vlog_fatal
    - functionName:    gettimeofday
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    time_boot_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:380,5'
          Dst:             time_init
    - functionName:    time_init
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_init_time
        - pthread_once
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:142,5'
          Dst:             pthread_once
        - Src:             'lib/timeval.c:142,5'
          Dst:             do_init_time
    - functionName:    timeval_to_usec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timespec_to_usec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    refresh_rusage
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 647
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         18
      ICount:          141
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - get_cpu_tracker
        - getrusage_thread
        - time_msec
        - timeval_to_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:648,29'
          Dst:             get_cpu_tracker
        - Src:             'lib/timeval.c:651,10'
          Dst:             getrusage_thread
        - Src:             'lib/timeval.c:652,29'
          Dst:             time_msec
        - Src:             'lib/timeval.c:656,29'
          Dst:             timeval_to_msec
        - Src:             'lib/timeval.c:657,29'
          Dst:             timeval_to_msec
    - functionName:    time_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_msec__
      functionUses:    46
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:223,12'
          Dst:             time_msec__
    - functionName:    time_msec__
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_timespec__
        - timespec_to_msec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:215,5'
          Dst:             time_timespec__
        - Src:             'lib/timeval.c:216,12'
          Dst:             timespec_to_msec
    - functionName:    time_timespec__
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - time_init
        - timespec_add
        - xclock_gettime
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:150,5'
          Dst:             time_init
        - Src:             'lib/timeval.c:154,9'
          Dst:             xclock_gettime
        - Src:             'lib/timeval.c:160,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:164,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/timeval.c:167,13'
          Dst:             xclock_gettime
        - Src:             'lib/timeval.c:169,9'
          Dst:             timespec_add
    - functionName:    log_poll_interval
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          285
      EdgeCount:       68
      CyclomaticComplexity: 16
      functionsReached:
        - coverage_log
        - get_recent_rusage
        - getrusage_thread
        - is_warped
        - long_poll_interval_add
        - time_msec
        - timeval_diff_msec
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:557,30'
          Dst:             time_msec
        - Src:             'lib/timeval.c:559,30'
          Dst:             is_warped
        - Src:             'lib/timeval.c:560,44'
          Dst:             get_recent_rusage
        - Src:             'lib/timeval.c:563,9'
          Dst:             long_poll_interval_add
        - Src:             'lib/timeval.c:565,14'
          Dst:             getrusage_thread
        - Src:             'lib/timeval.c:566,13'
          Dst:             timeval_diff_msec
        - Src:             'lib/timeval.c:566,13'
          Dst:             timeval_diff_msec
        - Src:             'lib/timeval.c:566,13'
          Dst:             vlog
        - Src:             'lib/timeval.c:576,17'
          Dst:             vlog
        - Src:             'lib/timeval.c:582,17'
          Dst:             vlog
        - Src:             'lib/timeval.c:588,17'
          Dst:             vlog
        - Src:             'lib/timeval.c:593,13'
          Dst:             vlog
        - Src:             'lib/timeval.c:595,9'
          Dst:             coverage_log
    - functionName:    last_wakeup_get
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - last_wakeup_get_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:101,1'
          Dst:             last_wakeup_get_unsafe
    - functionName:    time_poll
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          216
      EdgeCount:       53
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - coverage_clear
        - coverage_run
        - fatal_signal_handler
        - last_wakeup_get
        - log_poll_interval
        - ovsrcu_is_quiescent
        - ovsrcu_quiesce
        - ovsrcu_quiesce_end
        - ovsrcu_quiesce_start
        - poll
        - refresh_rusage
        - thread_is_pmd
        - time_init
        - time_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:288,34'
          Dst:             last_wakeup_get
        - Src:             'lib/timeval.c:293,5'
          Dst:             time_init
        - Src:             'lib/timeval.c:294,5'
          Dst:             coverage_clear
        - Src:             'lib/timeval.c:295,5'
          Dst:             coverage_run
        - Src:             'lib/timeval.c:296,26'
          Dst:             thread_is_pmd
        - Src:             'lib/timeval.c:297,9'
          Dst:             log_poll_interval
        - Src:             'lib/timeval.c:299,13'
          Dst:             time_msec
        - Src:             'lib/timeval.c:302,17'
          Dst:             ovsrcu_is_quiescent
        - Src:             'lib/timeval.c:305,29'
          Dst:             time_msec
        - Src:             'lib/timeval.c:318,17'
          Dst:             ovsrcu_quiesce
        - Src:             'lib/timeval.c:320,17'
          Dst:             ovsrcu_quiesce_start
        - Src:             'lib/timeval.c:324,18'
          Dst:             poll
        - Src:             'lib/timeval.c:326,23'
          Dst:             __errno_location
        - Src:             'lib/timeval.c:330,13'
          Dst:             ovsrcu_quiesce_end
        - Src:             'lib/timeval.c:333,25'
          Dst:             time_msec
        - Src:             'lib/timeval.c:334,13'
          Dst:             fatal_signal_handler
        - Src:             'lib/timeval.c:345,20'
          Dst:             time_msec
        - Src:             'lib/timeval.c:346,5'
          Dst:             refresh_rusage
    - functionName:    time_alarm
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - assert_single_threaded_at
        - time_init
        - time_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:264,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/timeval.c:265,5'
          Dst:             time_init
        - Src:             'lib/timeval.c:267,11'
          Dst:             time_msec
    - functionName:    time_wall_usec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_usec__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:253,12'
          Dst:             time_usec__
    - functionName:    time_usec__
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_timespec__
        - timespec_to_usec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:238,5'
          Dst:             time_timespec__
        - Src:             'lib/timeval.c:239,12'
          Dst:             timespec_to_usec
    - functionName:    time_usec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_usec__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:246,12'
          Dst:             time_usec__
    - functionName:    time_wall_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_msec__
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:230,12'
          Dst:             time_msec__
    - functionName:    time_wall
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_sec__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:207,12'
          Dst:             time_sec__
    - functionName:    time_sec__
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_timespec__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:192,5'
          Dst:             time_timespec__
    - functionName:    time_now
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_sec__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:200,12'
          Dst:             time_sec__
    - functionName:    time_wall_timespec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_timespec__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:184,5'
          Dst:             time_timespec__
    - functionName:    time_timespec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_timespec__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:177,5'
          Dst:             time_timespec__
    - functionName:    invalid_utf8_sequence
      functionSourceFile: '/src/openvswitch/lib/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ds_init
        - ds_put_cstr
        - ds_put_format
        - ds_steal_cstr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unicode.c:71,5'
          Dst:             ds_init
        - Src:             'lib/unicode.c:72,5'
          Dst:             ds_put_cstr
        - Src:             'lib/unicode.c:74,9'
          Dst:             ds_put_format
        - Src:             'lib/unicode.c:76,12'
          Dst:             ds_steal_cstr
    - functionName:    lookup_utf8_sequence
      functionSourceFile: '/src/openvswitch/lib/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    utf8_validate
      functionSourceFile: '/src/openvswitch/lib/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          159
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - invalid_utf8_sequence
        - lookup_utf8_sequence
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unicode.c:146,19'
          Dst:             lookup_utf8_sequence
        - Src:             'lib/unicode.c:148,24'
          Dst:             invalid_utf8_sequence
        - Src:             'lib/unicode.c:154,28'
          Dst:             invalid_utf8_sequence
    - functionName:    utf8_length
      functionSourceFile: '/src/openvswitch/lib/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          41
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    utf16_decode_surrogate_pair
      functionSourceFile: '/src/openvswitch/lib/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          32
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_unixctl
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:36,1'
          Dst:             vlog_insert_module
    - functionName:    unixctl_received_init_coverage
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:38,1'
          Dst:             coverage_counter_register
    - functionName:    unixctl_replied_init_coverage
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:39,1'
          Dst:             coverage_counter_register
    - functionName:    unixctl_replied_count
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_unixctl_replied_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:39,1'
          Dst:             counter_unixctl_replied_get
    - functionName:    counter_unixctl_replied_get
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_unixctl_replied_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:39,1'
          Dst:             counter_unixctl_replied_get_unsafe
    - functionName:    counter_unixctl_replied_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_received_count
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_unixctl_received_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:38,1'
          Dst:             counter_unixctl_received_get
    - functionName:    counter_unixctl_received_get
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_unixctl_received_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:38,1'
          Dst:             counter_unixctl_received_get_unsafe
    - functionName:    counter_unixctl_received_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_clone
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_received_add
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_unixctl_received_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:38,1'
          Dst:             counter_unixctl_received_get
    - functionName:    process_command
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          242
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - json_array_at
        - json_array_size
        - json_clone
        - json_string
        - json_to_string
        - shash_find_data
        - svec_add
        - svec_destroy
        - svec_terminate
        - unixctl_command_reply_error
        - unixctl_received_add
        - vlog
        - vlog_is_enabled
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:376,5'
          Dst:             unixctl_received_add
        - Src:             'lib/unixctl.c:377,24'
          Dst:             json_clone
        - Src:             'lib/unixctl.c:379,9'
          Dst:             vlog_is_enabled
        - Src:             'lib/unixctl.c:380,26'
          Dst:             json_to_string
        - Src:             'lib/unixctl.c:381,22'
          Dst:             json_to_string
        - Src:             'lib/unixctl.c:382,9'
          Dst:             vlog
        - Src:             'lib/unixctl.c:389,15'
          Dst:             shash_find_data
        - Src:             'lib/unixctl.c:391,17'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:394,16'
          Dst:             json_array_size
        - Src:             'lib/unixctl.c:395,17'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:397,16'
          Dst:             json_array_size
        - Src:             'lib/unixctl.c:398,17'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:402,21'
          Dst:             json_array_size
        - Src:             'lib/unixctl.c:404,9'
          Dst:             svec_add
        - Src:             'lib/unixctl.c:406,39'
          Dst:             json_array_at
        - Src:             'lib/unixctl.c:409,25'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:413,29'
          Dst:             json_string
        - Src:             'lib/unixctl.c:413,13'
          Dst:             svec_add
        - Src:             'lib/unixctl.c:415,9'
          Dst:             svec_terminate
        - Src:             'lib/unixctl.c:422,9'
          Dst:             svec_destroy
        - Src:             'lib/unixctl.c:426,9'
          Dst:             unixctl_command_reply_error
    - functionName:    unixctl_command_reply_error
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_string_create
        - unixctl_command_reply__
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:306,29'
          Dst:             json_string_create
        - Src:             'lib/unixctl.c:305,5'
          Dst:             unixctl_command_reply__
    - functionName:    unixctl_command_reply__
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          109
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - json_destroy
        - json_to_string
        - jsonrpc_create_error
        - jsonrpc_create_reply
        - jsonrpc_send
        - ovs_ignore
        - unixctl_replied_add
        - vlog
        - vlog_is_enabled
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:234,5'
          Dst:             unixctl_replied_add
        - Src:             'lib/unixctl.c:235,5'
          Dst:             ovs_ignore
        - Src:             'lib/unixctl.c:238,17'
          Dst:             jsonrpc_create_reply
        - Src:             'lib/unixctl.c:240,17'
          Dst:             jsonrpc_create_error
        - Src:             'lib/unixctl.c:243,9'
          Dst:             vlog_is_enabled
        - Src:             'lib/unixctl.c:244,20'
          Dst:             json_to_string
        - Src:             'lib/unixctl.c:245,21'
          Dst:             json_to_string
        - Src:             'lib/unixctl.c:247,9'
          Dst:             vlog
        - Src:             'lib/unixctl.c:255,5'
          Dst:             jsonrpc_send
        - Src:             'lib/unixctl.c:256,5'
          Dst:             json_destroy
    - functionName:    unixctl_replied_add
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_unixctl_replied_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:39,1'
          Dst:             counter_unixctl_replied_get
    - functionName:    json_destroy
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          38
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - json_destroy__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/json.h:202,9'
          Dst:             json_destroy__
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    unixctl_client_transact
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          182
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - json_array_create
        - json_nullable_clone
        - json_string_create
        - json_to_string
        - jsonrpc_create_request
        - jsonrpc_get_name
        - jsonrpc_msg_destroy
        - jsonrpc_transact_block
        - ovs_retval_to_string
        - vlog
        - xmalloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:600,17'
          Dst:             xmalloc
        - Src:             'lib/unixctl.c:602,24'
          Dst:             json_string_create
        - Src:             'lib/unixctl.c:604,14'
          Dst:             json_array_create
        - Src:             'lib/unixctl.c:605,15'
          Dst:             jsonrpc_create_request
        - Src:             'lib/unixctl.c:607,13'
          Dst:             jsonrpc_transact_block
        - Src:             'lib/unixctl.c:609,9'
          Dst:             jsonrpc_get_name
        - Src:             'lib/unixctl.c:609,9'
          Dst:             ovs_retval_to_string
        - Src:             'lib/unixctl.c:609,9'
          Dst:             vlog
        - Src:             'lib/unixctl.c:615,9'
          Dst:             jsonrpc_get_name
        - Src:             'lib/unixctl.c:615,9'
          Dst:             json_to_string
        - Src:             'lib/unixctl.c:615,9'
          Dst:             json_to_string
        - Src:             'lib/unixctl.c:615,9'
          Dst:             vlog
        - Src:             'lib/unixctl.c:621,19'
          Dst:             json_nullable_clone
        - Src:             'lib/unixctl.c:622,16'
          Dst:             json_nullable_clone
        - Src:             'lib/unixctl.c:625,5'
          Dst:             jsonrpc_msg_destroy
    - functionName:    unixctl_client_create
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 581
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          77
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - abs_file_name
        - jsonrpc_open
        - ovs_rundir
        - stream_open
        - stream_open_block
        - vlog
        - xasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:564,36'
          Dst:             ovs_rundir
        - Src:             'lib/unixctl.c:564,22'
          Dst:             abs_file_name
        - Src:             'lib/unixctl.c:565,23'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:569,31'
          Dst:             stream_open
        - Src:             'lib/unixctl.c:569,13'
          Dst:             stream_open_block
        - Src:             'lib/unixctl.c:575,9'
          Dst:             vlog
        - Src:             'lib/unixctl.c:579,15'
          Dst:             jsonrpc_open
    - functionName:    unixctl_server_get_path
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          21
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_server_destroy
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - kill_connection
        - pstream_close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:537,13'
          Dst:             kill_connection
        - Src:             'lib/unixctl.c:541,9'
          Dst:             pstream_close
    - functionName:    kill_connection
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_destroy
        - jsonrpc_close
        - ovs_list_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:470,5'
          Dst:             ovs_list_remove
        - Src:             'lib/unixctl.c:471,5'
          Dst:             jsonrpc_close
        - Src:             'lib/unixctl.c:472,5'
          Dst:             json_destroy
    - functionName:    unixctl_server_wait
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          98
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - jsonrpc_get_backlog
        - jsonrpc_recv_wait
        - jsonrpc_wait
        - pstream_wait
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:520,5'
          Dst:             pstream_wait
        - Src:             'lib/unixctl.c:522,9'
          Dst:             jsonrpc_wait
        - Src:             'lib/unixctl.c:523,14'
          Dst:             jsonrpc_get_backlog
        - Src:             'lib/unixctl.c:524,13'
          Dst:             jsonrpc_recv_wait
    - functionName:    run_connection
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          166
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - jsonrpc_get_backlog
        - jsonrpc_get_name
        - jsonrpc_get_status
        - jsonrpc_msg_destroy
        - jsonrpc_msg_type_to_string
        - jsonrpc_recv
        - jsonrpc_run
        - process_command
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:436,5'
          Dst:             jsonrpc_run
        - Src:             'lib/unixctl.c:437,13'
          Dst:             jsonrpc_get_status
        - Src:             'lib/unixctl.c:438,18'
          Dst:             jsonrpc_get_backlog
        - Src:             'lib/unixctl.c:449,9'
          Dst:             jsonrpc_recv
        - Src:             'lib/unixctl.c:452,17'
          Dst:             process_command
        - Src:             'lib/unixctl.c:454,17'
          Dst:             jsonrpc_get_name
        - Src:             'lib/unixctl.c:454,17'
          Dst:             jsonrpc_msg_type_to_string
        - Src:             'lib/unixctl.c:454,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/unixctl.c:459,13'
          Dst:             jsonrpc_msg_destroy
        - Src:             'lib/unixctl.c:461,33'
          Dst:             jsonrpc_get_status
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    unixctl_server_run
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          180
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - jsonrpc_open
        - kill_connection
        - ovs_list_push_back
        - ovs_strerror
        - pstream_accept
        - pstream_get_name
        - run_connection
        - vlog_rate_limit
        - xzalloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:487,17'
          Dst:             pstream_accept
        - Src:             'lib/unixctl.c:489,41'
          Dst:             xzalloc
        - Src:             'lib/unixctl.c:490,13'
          Dst:             ovs_list_push_back
        - Src:             'lib/unixctl.c:491,25'
          Dst:             jsonrpc_open
        - Src:             'lib/unixctl.c:496,13'
          Dst:             pstream_get_name
        - Src:             'lib/unixctl.c:496,13'
          Dst:             ovs_strerror
        - Src:             'lib/unixctl.c:496,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/unixctl.c:504,21'
          Dst:             run_connection
        - Src:             'lib/unixctl.c:506,13'
          Dst:             kill_connection
    - functionName:    ovs_list_init
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_set_options
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          106
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - abort
        - ovs_cmdl_parse_all
        - unixctl_command_reply
        - unixctl_command_reply_error
        - unixctl_output_fmt_from_string
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:163,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/unixctl.c:154,13'
          Dst:             ovs_cmdl_parse_all
        - Src:             'lib/unixctl.c:165,18'
          Dst:             unixctl_output_fmt_from_string
        - Src:             'lib/unixctl.c:167,25'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:174,13'
          Dst:             abort
        - Src:             'lib/unixctl.c:178,5'
          Dst:             unixctl_command_reply
        - Src:             'lib/unixctl.c:182,5'
          Dst:             unixctl_command_reply_error
    - functionName:    unixctl_output_fmt_from_string
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:84,10'
          Dst:             strcasecmp
        - Src:             'lib/unixctl.c:86,17'
          Dst:             strcasecmp
    - functionName:    unixctl_command_reply
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - json_object_create
        - json_object_put
        - json_object_put_string
        - json_string_create
        - unixctl_command_reply__
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:268,32'
          Dst:             json_string_create
        - Src:             'lib/unixctl.c:273,35'
          Dst:             json_object_create
        - Src:             'lib/unixctl.c:275,9'
          Dst:             json_object_put_string
        - Src:             'lib/unixctl.c:276,9'
          Dst:             json_object_put
        - Src:             'lib/unixctl.c:281,5'
          Dst:             unixctl_command_reply__
    - functionName:    strcasecmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_version
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_get_program_version
        - unixctl_command_reply
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:138,33'
          Dst:             ovs_get_program_version
        - Src:             'lib/unixctl.c:138,5'
          Dst:             unixctl_command_reply
    - functionName:    unixctl_list_commands
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          155
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - ds_cstr
        - ds_destroy
        - ds_put_cstr
        - ds_put_format
        - hmap_first
        - hmap_next
        - json_object_create
        - json_object_put_string
        - shash_count
        - shash_sort
        - unixctl_command_get_output_format
        - unixctl_command_reply
        - unixctl_command_reply_json
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:98,9'
          Dst:             unixctl_command_get_output_format
        - Src:             'lib/unixctl.c:99,38'
          Dst:             json_object_create
        - Src:             'lib/unixctl.c:102,9'
          Dst:             hmap_first
        - Src:             'lib/unixctl.c:106,17'
          Dst:             json_object_put_string
        - Src:             'lib/unixctl.c:102,9'
          Dst:             hmap_next
        - Src:             'lib/unixctl.c:110,9'
          Dst:             unixctl_command_reply_json
        - Src:             'lib/unixctl.c:113,43'
          Dst:             shash_sort
        - Src:             'lib/unixctl.c:116,9'
          Dst:             ds_put_cstr
        - Src:             'lib/unixctl.c:118,25'
          Dst:             shash_count
        - Src:             'lib/unixctl.c:123,17'
          Dst:             ds_put_format
        - Src:             'lib/unixctl.c:129,37'
          Dst:             ds_cstr
        - Src:             'lib/unixctl.c:129,9'
          Dst:             unixctl_command_reply
        - Src:             'lib/unixctl.c:130,9'
          Dst:             ds_destroy
    - functionName:    unixctl_command_get_output_format
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_command_reply_json
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - unixctl_command_reply__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:294,5'
          Dst:             ovs_ignore
        - Src:             'lib/unixctl.c:295,5'
          Dst:             unixctl_command_reply__
    - functionName:    unixctl_server_create
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          116
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - abs_file_name
        - getpid
        - ovs_error
        - ovs_list_init
        - ovs_rundir
        - pstream_open
        - strcmp
        - unixctl_command_register
        - unixctl_list_commands
        - unixctl_set_options
        - unixctl_version
        - xasprintf
        - xmalloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:334,18'
          Dst:             strcmp
        - Src:             'lib/unixctl.c:338,20'
          Dst:             getpid
        - Src:             'lib/unixctl.c:340,33'
          Dst:             ovs_rundir
        - Src:             'lib/unixctl.c:340,19'
          Dst:             abs_file_name
        - Src:             'lib/unixctl.c:341,41'
          Dst:             ovs_rundir
        - Src:             'lib/unixctl.c:341,14'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:344,24'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:345,17'
          Dst:             pstream_open
        - Src:             'lib/unixctl.c:349,9'
          Dst:             ovs_error
        - Src:             'lib/unixctl.c:354,5'
          Dst:             unixctl_command_register
        - Src:             'lib/unixctl.c:354,5'
          Dst:             unixctl_list_commands
        - Src:             'lib/unixctl.c:356,5'
          Dst:             unixctl_command_register
        - Src:             'lib/unixctl.c:356,5'
          Dst:             unixctl_version
        - Src:             'lib/unixctl.c:357,5'
          Dst:             unixctl_command_register
        - Src:             'lib/unixctl.c:357,5'
          Dst:             unixctl_set_options
        - Src:             'lib/unixctl.c:360,37'
          Dst:             xmalloc
        - Src:             'lib/unixctl.c:363,5'
          Dst:             ovs_list_init
    - functionName:    getpid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_command_register
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          82
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_ignore
        - shash_add
        - shash_find_data
        - xmalloc
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:204,38'
          Dst:             shash_find_data
        - Src:             'lib/unixctl.c:206,5'
          Dst:             ovs_ignore
        - Src:             'lib/unixctl.c:212,15'
          Dst:             xmalloc
        - Src:             'lib/unixctl.c:218,5'
          Dst:             shash_add
    - functionName:    unixctl_output_fmt_to_string
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          27
      EdgeCount:       8
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:73,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    init_this_module_util
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:46,1'
          Dst:             vlog_insert_module
    - functionName:    util_xalloc_init_coverage
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:55,1'
          Dst:             coverage_counter_register
    - functionName:    util_xalloc_count
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_util_xalloc_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:55,1'
          Dst:             counter_util_xalloc_get
    - functionName:    counter_util_xalloc_get
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_util_xalloc_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:55,1'
          Dst:             counter_util_xalloc_get_unsafe
    - functionName:    counter_util_xalloc_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitmap_set_n__
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bitmap_unit__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/bitmap.h:121,10'
          Dst:             bitmap_unit__
        - Src:             'lib/bitmap.h:123,10'
          Dst:             bitmap_unit__
    - functionName:    bitmap_unit__
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitmap_bit__
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitmap_set_multiple
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          119
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - bitmap_set_n__
        - bitmap_unit__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/bitmap.h:136,9'
          Dst:             bitmap_set_n__
        - Src:             'lib/bitmap.h:141,10'
          Dst:             bitmap_unit__
        - Src:             'lib/bitmap.h:145,9'
          Dst:             bitmap_set_n__
    - functionName:    bitmap_set1
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bitmap_bit__
        - bitmap_unit__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/bitmap.h:97,39'
          Dst:             bitmap_bit__
        - Src:             'lib/bitmap.h:97,6'
          Dst:             bitmap_unit__
    - functionName:    bitmap_is_set
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bitmap_bit__
        - bitmap_unit__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/bitmap.h:91,14'
          Dst:             bitmap_unit__
        - Src:             'lib/bitmap.h:91,46'
          Dst:             bitmap_bit__
    - functionName:    parse_scanset
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2044
      functionLinenumberEnd: 2066
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          162
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - bitmap_set1
        - bitmap_set_multiple
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2051,9'
          Dst:             bitmap_set1
        - Src:             'lib/util.c:2057,13'
          Dst:             bitmap_set_multiple
        - Src:             'lib/util.c:2060,13'
          Dst:             bitmap_set1
    - functionName:    scan_output_string
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2016
      functionLinenumberEnd: 2022
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          59
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    skip_digits
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1950
      functionLinenumberEnd: 1954
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    scan_chars
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2097
      functionLinenumberEnd: 2107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          98
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2100,9'
          Dst:             strlen
    - functionName:    scan_set
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2072
      functionLinenumberEnd: 2093
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          110
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - bitmap_is_set
        - parse_scanset
        - scan_output_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2079,11'
          Dst:             parse_scanset
        - Src:             'lib/util.c:2084,15'
          Dst:             bitmap_is_set
        - Src:             'lib/util.c:2091,5'
          Dst:             scan_output_string
    - functionName:    scan_string
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2026
      functionLinenumberEnd: 2040
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          95
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __ctype_b_loc
        - scan_output_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2030,22'
          Dst:             __ctype_b_loc
        - Src:             'lib/util.c:2038,5'
          Dst:             scan_output_string
    - functionName:    scan_float
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1959
      functionLinenumberEnd: 2010
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          311
      EdgeCount:       53
      CyclomaticComplexity: 10
      functionsReached:
        - abort
        - skip_digits
        - strtold
        - xmemdup0
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:1989,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/util.c:1967,9'
          Dst:             skip_digits
        - Src:             'lib/util.c:1969,13'
          Dst:             skip_digits
        - Src:             'lib/util.c:1974,13'
          Dst:             skip_digits
        - Src:             'lib/util.c:1981,12'
          Dst:             xmemdup0
        - Src:             'lib/util.c:1982,13'
          Dst:             strtold
        - Src:             'lib/util.c:2007,9'
          Dst:             abort
    - functionName:    xmemdup0
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xmalloc
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:194,15'
          Dst:             xmalloc
    - functionName:    strtold
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xmalloc
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - util_xalloc_add
        - xmalloc__
      functionUses:    59
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:172,5'
          Dst:             util_xalloc_add
        - Src:             'lib/util.c:173,12'
          Dst:             xmalloc__
    - functionName:    util_xalloc_add
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_util_xalloc_get
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:55,1'
          Dst:             counter_util_xalloc_get
    - functionName:    xmalloc__
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - out_of_memory
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:140,9'
          Dst:             out_of_memory
    - functionName:    out_of_memory
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_abort
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:116,5'
          Dst:             ovs_abort
    - functionName:    ovs_abort
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_abort_valist
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:439,5'
          Dst:             ovs_abort_valist
    - functionName:    ovs_abort_valist
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - ovs_error_valist
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:446,5'
          Dst:             ovs_error_valist
        - Src:             'lib/util.c:447,5'
          Dst:             abort
    - functionName:    ovs_error_valist
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fprintf
        - get_subprogram_name
        - ovs_retval_to_string
        - putc
        - vfprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:493,35'
          Dst:             get_subprogram_name
        - Src:             'lib/util.c:494,22'
          Dst:             __errno_location
        - Src:             'lib/util.c:497,9'
          Dst:             fprintf
        - Src:             'lib/util.c:499,9'
          Dst:             fprintf
        - Src:             'lib/util.c:502,5'
          Dst:             vfprintf
        - Src:             'lib/util.c:504,34'
          Dst:             ovs_retval_to_string
        - Src:             'lib/util.c:504,9'
          Dst:             fprintf
        - Src:             'lib/util.c:506,5'
          Dst:             putc
        - Src:             'lib/util.c:508,5'
          Dst:             __errno_location
    - functionName:    get_subprogram_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 622
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - subprogram_name_get
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:621,24'
          Dst:             subprogram_name_get
    - functionName:    fprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vfprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_retval_to_string
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_strerror
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:525,15'
          Dst:             ovs_strerror
    - functionName:    putc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_strerror
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 574
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - strerror_buffer_get
        - strerror_r
      functionUses:    117
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:552,18'
          Dst:             __errno_location
        - Src:             'lib/util.c:553,14'
          Dst:             strerror_buffer_get
        - Src:             'lib/util.c:559,9'
          Dst:             strerror_r
        - Src:             'lib/util.c:571,5'
          Dst:             __errno_location
    - functionName:    strerror_buffer_get
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strerror_buffer_get_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:71,1'
          Dst:             strerror_buffer_get_unsafe
    - functionName:    strerror_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strerror_buffer_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    subprogram_name_get
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - subprogram_name_get_unsafe
        - subprogram_name_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:62,1'
          Dst:             subprogram_name_init
        - Src:             'lib/util.c:62,1'
          Dst:             subprogram_name_get_unsafe
    - functionName:    subprogram_name_init
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_once
        - subprogram_name_once_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:62,1'
          Dst:             pthread_once
        - Src:             'lib/util.c:62,1'
          Dst:             subprogram_name_once_init
    - functionName:    subprogram_name_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:62,1'
          Dst:             pthread_getspecific
    - functionName:    subprogram_name_once_init
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          23
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - pthread_key_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:62,1'
          Dst:             pthread_key_create
        - Src:             'lib/util.c:62,1'
          Dst:             abort
    - functionName:    scan_int
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1877
      functionLinenumberEnd: 1946
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         75
      ICount:          492
      EdgeCount:       95
      CyclomaticComplexity: 22
      functionsReached:
        - hexit_value
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/util.c:1917,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/util.c:1900,21'
          Dst:             hexit_value
    - functionName:    hexit_value
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 937
      functionLinenumberEnd: 950
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    skip_spaces
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1868
      functionLinenumberEnd: 1872
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __ctype_b_loc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1869,12'
          Dst:             __ctype_b_loc
    - functionName:    subprogram_name_set_unsafe
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - subprogram_name_get_unsafe
        - xpthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:62,1'
          Dst:             subprogram_name_get_unsafe
        - Src:             'lib/util.c:62,1'
          Dst:             xpthread_setspecific
    - functionName:    ovs_kernel_is_version_or_newer
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2386
      functionLinenumberEnd: 2406
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          139
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - ovs_scan
        - ovs_strerror
        - ovsthread_once_done
        - ovsthread_once_start
        - uname
        - vlog
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2390,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/util.c:2393,13'
          Dst:             uname
        - Src:             'lib/util.c:2394,13'
          Dst:             __errno_location
        - Src:             'lib/util.c:2394,13'
          Dst:             ovs_strerror
        - Src:             'lib/util.c:2394,13'
          Dst:             vlog
        - Src:             'lib/util.c:2395,21'
          Dst:             ovs_scan
        - Src:             'lib/util.c:2397,13'
          Dst:             vlog
        - Src:             'lib/util.c:2399,9'
          Dst:             ovsthread_once_done
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    uname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_scan
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2291
      functionLinenumberEnd: 2298
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_scan__
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2296,11'
          Dst:             ovs_scan__
    - functionName:    ovs_scan__
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2111
      functionLinenumberEnd: 2267
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         84
      ICount:          516
      EdgeCount:       101
      CyclomaticComplexity: 19
      functionsReached:
        - __ctype_b_loc
        - scan_chars
        - scan_float
        - scan_int
        - scan_set
        - scan_string
        - skip_spaces
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:2153,9'
          Branch Sides:    []
        - Branch String:   'lib/util.c:2208,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/util.c:2122,13'
          Dst:             __ctype_b_loc
        - Src:             'lib/util.c:2123,17'
          Dst:             skip_spaces
        - Src:             'lib/util.c:2206,17'
          Dst:             skip_spaces
        - Src:             'lib/util.c:2210,17'
          Dst:             scan_int
        - Src:             'lib/util.c:2214,17'
          Dst:             scan_int
        - Src:             'lib/util.c:2218,17'
          Dst:             scan_int
        - Src:             'lib/util.c:2222,17'
          Dst:             scan_int
        - Src:             'lib/util.c:2227,17'
          Dst:             scan_int
        - Src:             'lib/util.c:2235,17'
          Dst:             scan_float
        - Src:             'lib/util.c:2239,17'
          Dst:             scan_string
        - Src:             'lib/util.c:2243,17'
          Dst:             scan_set
        - Src:             'lib/util.c:2247,17'
          Dst:             scan_chars
    - functionName:    is_stdout_a_tty
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2378
      functionLinenumberEnd: 2380
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          38
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - getenv
        - isatty
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2379,21'
          Dst:             getenv
        - Src:             'lib/util.c:2380,13'
          Dst:             isatty
        - Src:             'lib/util.c:2380,43'
          Dst:             strcmp
    - functionName:    getenv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_timer_resolution
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2362
      functionLinenumberEnd: 2364
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - prctl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2363,5'
          Dst:             prctl
    - functionName:    prctl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xnanosleep_no_quiesce
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2355
      functionLinenumberEnd: 2357
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xnanosleep__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2356,5'
          Dst:             xnanosleep__
    - functionName:    xnanosleep__
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2331
      functionLinenumberEnd: 2341
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          49
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - nanosleep
        - nsec_to_timespec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2334,5'
          Dst:             nsec_to_timespec
        - Src:             'lib/util.c:2338,18'
          Dst:             nanosleep
        - Src:             'lib/util.c:2339,30'
          Dst:             __errno_location
    - functionName:    nanosleep
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xnanosleep
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2346
      functionLinenumberEnd: 2350
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_quiesce_end
        - ovsrcu_quiesce_start
        - xnanosleep__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2347,5'
          Dst:             ovsrcu_quiesce_start
        - Src:             'lib/util.c:2348,5'
          Dst:             xnanosleep__
        - Src:             'lib/util.c:2349,5'
          Dst:             ovsrcu_quiesce_end
    - functionName:    xsleep
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2323
      functionLinenumberEnd: 2327
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_quiesce_end
        - ovsrcu_quiesce_start
        - sleep
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2324,5'
          Dst:             ovsrcu_quiesce_start
        - Src:             'lib/util.c:2325,5'
          Dst:             sleep
        - Src:             'lib/util.c:2326,5'
          Dst:             ovsrcu_quiesce_end
    - functionName:    sleep
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_scan_len
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2307
      functionLinenumberEnd: 2318
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_scan__
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2313,15'
          Dst:             ovs_scan__
    - functionName:    bitwise_toggle_bit
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1843
      functionLinenumberEnd: 1847
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitwise_put_bit
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1822
      functionLinenumberEnd: 1828
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bitwise_put0
        - bitwise_put1
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1824,9'
          Dst:             bitwise_put1
        - Src:             'lib/util.c:1826,9'
          Dst:             bitwise_put0
    - functionName:    bitwise_put1
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1803
      functionLinenumberEnd: 1807
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitwise_put0
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1784
      functionLinenumberEnd: 1788
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntohll
      functionSourceFile: '/src/openvswitch/lib/byte-order.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - htonl
        - ntohl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byte-order.h:36,12'
          Dst:             htonl
        - Src:             'lib/byte-order.h:36,44'
          Dst:             ntohl
        - Src:             'lib/byte-order.h:36,62'
          Dst:             ntohl
    - functionName:    bitwise_get
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1742
      functionLinenumberEnd: 1748
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bitwise_copy
        - htonll
        - ntohll
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1743,22'
          Dst:             htonll
        - Src:             'lib/util.c:1745,5'
          Dst:             bitwise_copy
        - Src:             'lib/util.c:1748,12'
          Dst:             ntohll
    - functionName:    htonll
      functionSourceFile: '/src/openvswitch/lib/byte-order.h'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - htonl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byte-order.h:30,12'
          Dst:             htonl
        - Src:             'lib/byte-order.h:30,44'
          Dst:             htonl
        - Src:             'lib/byte-order.h:30,62'
          Dst:             htonl
    - functionName:    bitwise_copy
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1414
      functionLinenumberEnd: 1461
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          268
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitwise_put
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1719
      functionLinenumberEnd: 1724
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bitwise_copy
        - htonll
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1720,24'
          Dst:             htonll
        - Src:             'lib/util.c:1721,5'
          Dst:             bitwise_copy
    - functionName:    bitwise_rscan
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1660
      functionLinenumberEnd: 1700
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - bool
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          241
      EdgeCount:       50
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitwise_get_bit
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1765
      functionLinenumberEnd: 1768
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitwise_scan
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1630
      functionLinenumberEnd: 1638
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - bool
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - bitwise_get_bit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1634,13'
          Dst:             bitwise_get_bit
    - functionName:    bitwise_is_all_zeros
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1575
      functionLinenumberEnd: 1613
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          156
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitwise_one
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1526
      functionLinenumberEnd: 1557
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          129
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitwise_zero
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1478
      functionLinenumberEnd: 1509
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          131
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    or_bytes
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1385
      functionLinenumberEnd: 1393
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          48
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_all_ones
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1378
      functionLinenumberEnd: 1379
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - is_all_byte
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1379,12'
          Dst:             is_all_byte
    - functionName:    is_all_byte
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1356
      functionLinenumberEnd: 1366
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_all_zeros
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1371
      functionLinenumberEnd: 1372
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - is_all_byte
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1372,12'
          Dst:             is_all_byte
    - functionName:    english_list_delimiter
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1271
      functionLinenumberEnd: 1274
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xreadlink
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1180
      functionLinenumberEnd: 1199
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - readlink
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1184,21'
          Dst:             xmalloc
        - Src:             'lib/util.c:1185,26'
          Dst:             readlink
        - Src:             'lib/util.c:1186,21'
          Dst:             __errno_location
        - Src:             'lib/util.c:1195,13'
          Dst:             __errno_location
    - functionName:    follow_symlinks
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1213
      functionLinenumberEnd: 1259
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          182
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - dir_name
        - lstat
        - ovs_strerror
        - strcmp
        - strlen
        - vlog
        - xasprintf
        - xreadlink
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1218,10'
          Dst:             xstrdup
        - Src:             'lib/util.c:1223,13'
          Dst:             lstat
        - Src:             'lib/util.c:1227,20'
          Dst:             xreadlink
        - Src:             'lib/util.c:1229,13'
          Dst:             __errno_location
        - Src:             'lib/util.c:1229,13'
          Dst:             ovs_strerror
        - Src:             'lib/util.c:1229,13'
          Dst:             vlog
        - Src:             'lib/util.c:1239,25'
          Dst:             dir_name
        - Src:             'lib/util.c:1241,18'
          Dst:             strcmp
        - Src:             'lib/util.c:1244,39'
          Dst:             strlen
        - Src:             'lib/util.c:1245,27'
          Dst:             xasprintf
        - Src:             'lib/util.c:1256,5'
          Dst:             vlog
        - Src:             'lib/util.c:1258,12'
          Dst:             xstrdup
    - functionName:    xstrdup
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strlen
        - xmemdup0
      functionUses:    65
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:203,24'
          Dst:             strlen
        - Src:             'lib/util.c:203,12'
          Dst:             xmemdup0
    - functionName:    lstat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dir_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1100
      functionLinenumberEnd: 1111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          125
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - all_slashes_name
        - strlen
        - xmemdup0
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1101,18'
          Dst:             strlen
        - Src:             'lib/util.c:1111,18'
          Dst:             xmemdup0
        - Src:             'lib/util.c:1111,45'
          Dst:             all_slashes_name
    - functionName:    xasprintf
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xvasprintf
      functionUses:    61
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:371,9'
          Dst:             xvasprintf
    - functionName:    xvasprintf
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - vsnprintf
        - xmalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:225,5'
          Dst:             ovs_ignore
        - Src:             'lib/util.c:228,14'
          Dst:             vsnprintf
        - Src:             'lib/util.c:230,9'
          Dst:             xmalloc
        - Src:             'lib/util.c:232,5'
          Dst:             vsnprintf
    - functionName:    ovs_ignore
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1265
      functionLinenumberEnd: 1265
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    133
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vsnprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    all_slashes_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1092
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - xstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1091,12'
          Dst:             xstrdup
    - functionName:    abs_file_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1153
      functionLinenumberEnd: 1173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          91
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - get_cwd
        - is_file_name_absolute
        - strlen
        - xasprintf
        - xstrdup
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1155,9'
          Dst:             is_file_name_absolute
        - Src:             'lib/util.c:1156,16'
          Dst:             xstrdup
        - Src:             'lib/util.c:1162,31'
          Dst:             strlen
        - Src:             'lib/util.c:1163,16'
          Dst:             xasprintf
        - Src:             'lib/util.c:1166,17'
          Dst:             get_cwd
        - Src:             'lib/util.c:1170,22'
          Dst:             xasprintf
    - functionName:    is_file_name_absolute
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1140
      functionLinenumberEnd: 1142
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_cwd
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1086
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         21
      ICount:          106
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - getcwd
        - ovs_strerror
        - pathconf
        - strlen
        - vlog
        - xmalloc
        - xrealloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1066,16'
          Dst:             pathconf
        - Src:             'lib/util.c:1073,21'
          Dst:             xmalloc
        - Src:             'lib/util.c:1074,13'
          Dst:             getcwd
        - Src:             'lib/util.c:1075,34'
          Dst:             strlen
        - Src:             'lib/util.c:1075,20'
          Dst:             xrealloc
        - Src:             'lib/util.c:1077,25'
          Dst:             __errno_location
        - Src:             'lib/util.c:1080,17'
          Dst:             ovs_strerror
        - Src:             'lib/util.c:1080,17'
          Dst:             vlog
    - functionName:    pathconf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getcwd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xrealloc
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - util_xalloc_add
        - xrealloc__
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:179,5'
          Dst:             util_xalloc_add
        - Src:             'lib/util.c:180,12'
          Dst:             xrealloc__
    - functionName:    xrealloc__
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - out_of_memory
        - realloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:148,9'
          Dst:             realloc
        - Src:             'lib/util.c:150,9'
          Dst:             out_of_memory
    - functionName:    realloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    base_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1118
      functionLinenumberEnd: 1136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - all_slashes_name
        - strlen
        - xmemdup0
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1121,11'
          Dst:             strlen
        - Src:             'lib/util.c:1127,16'
          Dst:             all_slashes_name
        - Src:             'lib/util.c:1135,12'
          Dst:             xmemdup0
    - functionName:    parse_int_string
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 988
      functionLinenumberEnd: 1055
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          280
      EdgeCount:       56
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - hexits_value
        - strncmp
        - strspn
        - strtoull
        - xmalloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:992,10'
          Dst:             strncmp
        - Src:             'lib/util.c:992,34'
          Dst:             strncmp
        - Src:             'lib/util.c:999,21'
          Dst:             xmalloc
        - Src:             'lib/util.c:1005,18'
          Dst:             strspn
        - Src:             'lib/util.c:1006,21'
          Dst:             hexits_value
        - Src:             'lib/util.c:1040,5'
          Dst:             __errno_location
        - Src:             'lib/util.c:1041,15'
          Dst:             strtoull
        - Src:             'lib/util.c:1042,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:1043,16'
          Dst:             __errno_location
        - Src:             'lib/util.c:1043,24'
          Dst:             __errno_location
    - functionName:    hexits_value
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 959
      functionLinenumberEnd: 974
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hexit_value
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:965,21'
          Dst:             hexit_value
    - functionName:    strtoull
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_double
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 918
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - strtod
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:919,22'
          Dst:             __errno_location
        - Src:             'lib/util.c:921,5'
          Dst:             __errno_location
        - Src:             'lib/util.c:922,10'
          Dst:             strtod
        - Src:             'lib/util.c:923,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:923,29'
          Dst:             __errno_location
        - Src:             'lib/util.c:925,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:929,9'
          Dst:             __errno_location
    - functionName:    strtod
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_llong_range
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 898
      functionLinenumberEnd: 908
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_llong
        - str_to_llong_with_tail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:900,9'
          Dst:             str_to_llong_with_tail
        - Src:             'lib/util.c:902,12'
          Dst:             str_to_llong
    - functionName:    str_to_llong_with_tail
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 849
      functionLinenumberEnd: 861
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - strtoll
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:850,22'
          Dst:             __errno_location
        - Src:             'lib/util.c:851,5'
          Dst:             __errno_location
        - Src:             'lib/util.c:852,10'
          Dst:             strtoll
        - Src:             'lib/util.c:853,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:853,28'
          Dst:             __errno_location
        - Src:             'lib/util.c:854,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:858,9'
          Dst:             __errno_location
    - functionName:    str_to_llong
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_to_llong_with_tail
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:839,15'
          Dst:             str_to_llong_with_tail
    - functionName:    strtoll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_ullong
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 879
      functionLinenumberEnd: 893
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          82
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - strtoull
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:880,22'
          Dst:             __errno_location
        - Src:             'lib/util.c:883,5'
          Dst:             __errno_location
        - Src:             'lib/util.c:884,10'
          Dst:             strtoull
        - Src:             'lib/util.c:885,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:885,28'
          Dst:             __errno_location
        - Src:             'lib/util.c:886,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:890,9'
          Dst:             __errno_location
    - functionName:    str_to_long
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 823
      functionLinenumberEnd: 833
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_llong
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:825,15'
          Dst:             str_to_llong
    - functionName:    str_to_int
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 809
      functionLinenumberEnd: 819
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_llong
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:811,15'
          Dst:             str_to_llong
    - functionName:    ovs_hex_dump
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 756
      functionLinenumberEnd: 805
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          243
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - fprintf
        - putc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:772,9'
          Dst:             fprintf
        - Src:             'lib/util.c:775,13'
          Dst:             fprintf
        - Src:             'lib/util.c:778,13'
          Dst:             fprintf
        - Src:             'lib/util.c:782,13'
          Dst:             fprintf
        - Src:             'lib/util.c:784,17'
          Dst:             fprintf
        - Src:             'lib/util.c:786,13'
          Dst:             fprintf
        - Src:             'lib/util.c:788,17'
          Dst:             fprintf
        - Src:             'lib/util.c:792,17'
          Dst:             putc
        - Src:             'lib/util.c:795,17'
          Dst:             fprintf
        - Src:             'lib/util.c:797,13'
          Dst:             fprintf
        - Src:             'lib/util.c:799,9'
          Dst:             fprintf
    - functionName:    ovs_print_version
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:743,5'
          Dst:             printf
        - Src:             'lib/util.c:745,9'
          Dst:             printf
    - functionName:    ovs_get_program_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 735
      functionLinenumberEnd: 736
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_get_program_version
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 727
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_uint
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 875
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_llong
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:867,15'
          Dst:             str_to_llong
    - functionName:    ctl_timeout_setup
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          64
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getenv
        - ovs_ignore
        - str_to_uint
        - time_alarm
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:710,21'
          Dst:             getenv
        - Src:             'lib/util.c:713,24'
          Dst:             str_to_uint
        - Src:             'lib/util.c:713,13'
          Dst:             ovs_ignore
        - Src:             'lib/util.c:717,9'
          Dst:             time_alarm
    - functionName:    get_boot_time
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 701
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         25
      ICount:          101
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - fclose
        - fgets
        - fopen
        - ovs_ignore
        - ovs_scan
        - ovs_strerror
        - ovsthread_once_done
        - ovsthread_once_start
        - time_msec
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:673,5'
          Dst:             ovs_ignore
        - Src:             'lib/util.c:675,9'
          Dst:             time_msec
        - Src:             'lib/util.c:680,28'
          Dst:             time_msec
        - Src:             'lib/util.c:682,18'
          Dst:             fopen
        - Src:             'lib/util.c:684,13'
          Dst:             ovsthread_once_start
        - Src:             'lib/util.c:684,13'
          Dst:             __errno_location
        - Src:             'lib/util.c:684,13'
          Dst:             ovs_strerror
        - Src:             'lib/util.c:684,13'
          Dst:             vlog
        - Src:             'lib/util.c:684,13'
          Dst:             ovsthread_once_done
        - Src:             'lib/util.c:689,16'
          Dst:             fgets
        - Src:             'lib/util.c:691,17'
          Dst:             ovs_scan
        - Src:             'lib/util.c:696,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/util.c:696,9'
          Dst:             vlog
        - Src:             'lib/util.c:696,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/util.c:698,9'
          Dst:             fclose
    - functionName:    fgets
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    subprogram_name_set
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - subprogram_name_init
        - subprogram_name_set_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:62,1'
          Dst:             subprogram_name_init
        - Src:             'lib/util.c:62,1'
          Dst:             subprogram_name_set_unsafe
    - functionName:    set_subprogram_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 647
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pthread_self
        - pthread_setname_np
        - strlen
        - subprogram_name_set
        - xstrdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:631,19'
          Dst:             xstrdup
        - Src:             'lib/util.c:632,10'
          Dst:             subprogram_name_set
        - Src:             'lib/util.c:637,9'
          Dst:             strlen
        - Src:             'lib/util.c:638,31'
          Dst:             strlen
        - Src:             'lib/util.c:641,24'
          Dst:             pthread_self
        - Src:             'lib/util.c:641,5'
          Dst:             pthread_setname_np
    - functionName:    pthread_self
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_setname_np
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_set_program_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - assert_single_threaded_at
        - strcmp
        - strncmp
        - strrchr
        - xasprintf
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:589,25'
          Dst:             strrchr
        - Src:             'lib/util.c:592,16'
          Dst:             xstrdup
        - Src:             'lib/util.c:594,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/util.c:597,9'
          Dst:             strncmp
        - Src:             'lib/util.c:599,20'
          Dst:             xstrdup
        - Src:             'lib/util.c:605,10'
          Dst:             strcmp
        - Src:             'lib/util.c:606,27'
          Dst:             xasprintf
        - Src:             'lib/util.c:610,27'
          Dst:             xasprintf
    - functionName:    strrchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_error
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_error_valist
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:485,5'
          Dst:             ovs_error_valist
    - functionName:    string_ends_with
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:417,19'
          Dst:             strlen
        - Src:             'lib/util.c:418,22'
          Dst:             strlen
        - Src:             'lib/util.c:421,18'
          Dst:             strcmp
    - functionName:    ovs_strzcpy
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strnlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:405,22'
          Dst:             strnlen
    - functionName:    strnlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_strlcpy
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strnlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:383,22'
          Dst:             strnlen
    - functionName:    free_pagealign
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - free_size_align
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:361,5'
          Dst:             free_size_align
    - functionName:    free_size_align
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_page_size
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          39
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sysconf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:655,26'
          Dst:             sysconf
    - functionName:    xmalloc_pagealign
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_page_size
        - xmalloc_size_align
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:355,37'
          Dst:             get_page_size
        - Src:             'lib/util.c:355,12'
          Dst:             xmalloc_size_align
    - functionName:    xmalloc_size_align
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - out_of_memory
        - posix_memalign
        - util_xalloc_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:256,5'
          Dst:             util_xalloc_add
        - Src:             'lib/util.c:257,13'
          Dst:             posix_memalign
        - Src:             'lib/util.c:259,9'
          Dst:             out_of_memory
    - functionName:    posix_memalign
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_cacheline
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - free_size_align
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:349,5'
          Dst:             free_size_align
    - functionName:    xzalloc_cacheline
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xmalloc_cacheline
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:339,15'
          Dst:             xmalloc_cacheline
    - functionName:    xmalloc_cacheline
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xmalloc_size_align
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:331,12'
          Dst:             xmalloc_size_align
    - functionName:    x2nrealloc
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - xrealloc
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:242,12'
          Dst:             xrealloc
    - functionName:    nullable_string_is_equal
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:215,22'
          Dst:             strcmp
    - functionName:    nullable_xstrdup
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - xstrdup
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:209,16'
          Dst:             xstrdup
    - functionName:    nullable_memcpy
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xmemdup
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nullable_memcpy
        - xmalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:186,15'
          Dst:             xmalloc
        - Src:             'lib/util.c:187,5'
          Dst:             nullable_memcpy
    - functionName:    xzalloc
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - util_xalloc_add
        - xzalloc__
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:165,5'
          Dst:             util_xalloc_add
        - Src:             'lib/util.c:166,12'
          Dst:             xzalloc__
    - functionName:    xzalloc__
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xcalloc__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:132,12'
          Dst:             xcalloc__
    - functionName:    xcalloc__
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - out_of_memory
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:122,31'
          Dst:             calloc
        - Src:             'lib/util.c:124,9'
          Dst:             out_of_memory
    - functionName:    calloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xcalloc
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - util_xalloc_add
        - xcalloc__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:158,5'
          Dst:             util_xalloc_add
        - Src:             'lib/util.c:159,12'
          Dst:             xcalloc__
    - functionName:    memory_all_locked
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_all_memory_locked
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_assert_failure
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 5
      functionsReached:
        - abort
        - fprintf
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:85,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/util.c:87,9'
          Dst:             vlog_abort
        - Src:             'lib/util.c:92,9'
          Dst:             fprintf
        - Src:             'lib/util.c:94,9'
          Dst:             abort
        - Src:             'lib/util.c:97,9'
          Dst:             abort
    - functionName:    ovs_fatal
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_fatal_valist
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:462,5'
          Dst:             ovs_fatal_valist
    - functionName:    ovs_fatal_valist
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - exit
        - ovs_error_valist
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:469,5'
          Dst:             ovs_error_valist
        - Src:             'lib/util.c:470,5'
          Dst:             exit
    - functionName:    init_this_module_vlog
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:49,1'
          Dst:             vlog_insert_module
    - functionName:    vlog_insert_module
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    32
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:219,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:220,5'
          Dst:             ovs_list_insert
        - Src:             'lib/vlog.c:221,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fetch_braces
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1006
      functionLinenumberEnd: 1016
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_strlcpy
        - strcspn
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1008,20'
          Dst:             strcspn
        - Src:             'lib/vlog.c:1014,9'
          Dst:             ovs_strlcpy
    - functionName:    msg_num_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_all_rate_limits
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 778
      functionLinenumberEnd: 786
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:781,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:785,5'
          Dst:             ovs_mutex_unlock
    - functionName:    set_rate_limits
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 791
      functionLinenumberEnd: 811
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          97
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - set_all_rate_limits
        - strcasecmp
        - unixctl_command_reply
        - unixctl_command_reply_error
        - vlog_module_from_name
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:796,18'
          Dst:             strcasecmp
        - Src:             'lib/vlog.c:797,17'
          Dst:             set_all_rate_limits
        - Src:             'lib/vlog.c:799,46'
          Dst:             vlog_module_from_name
        - Src:             'lib/vlog.c:801,21'
          Dst:             unixctl_command_reply_error
        - Src:             'lib/vlog.c:808,9'
          Dst:             set_all_rate_limits
        - Src:             'lib/vlog.c:810,5'
          Dst:             unixctl_command_reply
    - functionName:    vlog_module_from_name
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          70
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:238,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:240,14'
          Dst:             strcasecmp
        - Src:             'lib/vlog.c:241,13'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:245,5'
          Dst:             ovs_mutex_unlock
    - functionName:    update_min_level
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_usage
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1385
      functionLinenumberEnd: 1396
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_logdir
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1395,12'
          Dst:             ovs_logdir
        - Src:             'lib/vlog.c:1386,5'
          Dst:             printf
    - functionName:    vlog_rate_limit
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1373
      functionLinenumberEnd: 1381
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - vlog_should_drop
        - vlog_valist
      functionUses:    61
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1374,10'
          Dst:             vlog_should_drop
        - Src:             'lib/vlog.c:1378,9'
          Dst:             vlog_valist
    - functionName:    vlog_should_drop
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1330
      functionLinenumberEnd: 1368
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          135
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - time_now
        - token_bucket_withdraw
        - vlog
        - vlog_is_enabled
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1335,10'
          Dst:             vlog_is_enabled
        - Src:             'lib/vlog.c:1339,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:1340,10'
          Dst:             token_bucket_withdraw
        - Src:             'lib/vlog.c:1341,22'
          Dst:             time_now
        - Src:             'lib/vlog.c:1347,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:1352,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:1354,22'
          Dst:             time_now
        - Src:             'lib/vlog.c:1359,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:1361,9'
          Dst:             vlog
    - functionName:    vlog_valist
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1158
      functionLinenumberEnd: 1239
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          294
      EdgeCount:       57
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - async_append_flush
        - async_append_write
        - ds_cstr
        - ds_destroy
        - ds_init
        - ds_put_char
        - ds_reserve
        - format_log_message
        - fputs
        - msg_num_get
        - ovs_ignore
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_rwlock_rdlock_at
        - ovs_rwlock_unlock
        - send_to_syslog_fd
        - strtok_r
        - vlog_init
        - write
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1170,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:1172,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:1174,26'
          Dst:             __errno_location
        - Src:             'lib/vlog.c:1177,9'
          Dst:             vlog_init
        - Src:             'lib/vlog.c:1179,9'
          Dst:             ds_init
        - Src:             'lib/vlog.c:1180,9'
          Dst:             ds_reserve
        - Src:             'lib/vlog.c:1181,12'
          Dst:             msg_num_get
        - Src:             'lib/vlog.c:1183,9'
          Dst:             ovs_rwlock_rdlock_at
        - Src:             'lib/vlog.c:1185,13'
          Dst:             format_log_message
        - Src:             'lib/vlog.c:1188,13'
          Dst:             ds_put_char
        - Src:             'lib/vlog.c:1189,19'
          Dst:             ds_cstr
        - Src:             'lib/vlog.c:1189,13'
          Dst:             fputs
        - Src:             'lib/vlog.c:1198,13'
          Dst:             format_log_message
        - Src:             'lib/vlog.c:1200,25'
          Dst:             strtok_r
        - Src:             'lib/vlog.c:1201,25'
          Dst:             strtok_r
        - Src:             'lib/vlog.c:1208,17'
          Dst:             format_log_message
        - Src:             'lib/vlog.c:1212,35'
          Dst:             ds_cstr
        - Src:             'lib/vlog.c:1212,17'
          Dst:             send_to_syslog_fd
        - Src:             'lib/vlog.c:1217,13'
          Dst:             format_log_message
        - Src:             'lib/vlog.c:1219,13'
          Dst:             ds_put_char
        - Src:             'lib/vlog.c:1221,13'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:1224,21'
          Dst:             async_append_write
        - Src:             'lib/vlog.c:1226,25'
          Dst:             async_append_flush
        - Src:             'lib/vlog.c:1229,32'
          Dst:             write
        - Src:             'lib/vlog.c:1229,21'
          Dst:             ovs_ignore
        - Src:             'lib/vlog.c:1232,13'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:1234,9'
          Dst:             ovs_rwlock_unlock
        - Src:             'lib/vlog.c:1236,9'
          Dst:             ds_destroy
        - Src:             'lib/vlog.c:1237,9'
          Dst:             __errno_location
    - functionName:    vlog_init
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         34
      ICount:          174
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - getenv
        - ovs_rwlock_rdlock_at
        - ovs_rwlock_unlock
        - ovsthread_once_done
        - ovsthread_once_start
        - syslog_libc_create
        - time_wall_msec
        - unixctl_command_register
        - vlog
        - vlog_disable_rate_limit
        - vlog_enable_rate_limit
        - vlog_inject_info_log
        - vlog_set_syslog_method
        - vlog_unixctl_close
        - vlog_unixctl_list
        - vlog_unixctl_list_pattern
        - vlog_unixctl_reopen
        - vlog_unixctl_set
        - xastrftime_msec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:842,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/vlog.c:852,25'
          Dst:             getenv
        - Src:             'lib/vlog.c:854,17'
          Dst:             vlog_set_syslog_method
        - Src:             'lib/vlog.c:856,29'
          Dst:             syslog_libc_create
        - Src:             'lib/vlog.c:860,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/vlog.c:865,15'
          Dst:             time_wall_msec
        - Src:             'lib/vlog.c:867,23'
          Dst:             xastrftime_msec
        - Src:             'lib/vlog.c:868,13'
          Dst:             vlog
        - Src:             'lib/vlog.c:872,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:872,9'
          Dst:             vlog_unixctl_set
        - Src:             'lib/vlog.c:875,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:875,9'
          Dst:             vlog_unixctl_list
        - Src:             'lib/vlog.c:877,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:877,9'
          Dst:             vlog_unixctl_list_pattern
        - Src:             'lib/vlog.c:879,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:879,9'
          Dst:             vlog_enable_rate_limit
        - Src:             'lib/vlog.c:881,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:881,9'
          Dst:             vlog_disable_rate_limit
        - Src:             'lib/vlog.c:883,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:883,9'
          Dst:             vlog_unixctl_reopen
        - Src:             'lib/vlog.c:885,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:885,9'
          Dst:             vlog_unixctl_close
        - Src:             'lib/vlog.c:887,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:887,9'
          Dst:             vlog_inject_info_log
        - Src:             'lib/vlog.c:890,9'
          Dst:             ovs_rwlock_rdlock_at
        - Src:             'lib/vlog.c:892,9'
          Dst:             ovs_rwlock_unlock
        - Src:             'lib/vlog.c:895,13'
          Dst:             vlog
    - functionName:    msg_num_get
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - msg_num_get_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:100,1'
          Dst:             msg_num_get_unsafe
    - functionName:    format_log_message
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1023
      functionLinenumberEnd: 1135
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          439
      EdgeCount:       65
      CyclomaticComplexity: 13
      functionsReached:
        - __ctype_b_loc
        - ds_clear
        - ds_put_char
        - ds_put_char_multiple
        - ds_put_cstr
        - ds_put_format
        - ds_put_format_valist
        - ds_put_strftime_msec
        - ds_put_uninit
        - fetch_braces
        - get_subprogram_name
        - gethostname
        - getpid
        - msg_num_get_unsafe
        - time_boot_msec
        - time_msec
        - time_wall_msec
        - vlog_get_level_name
        - vlog_get_module_name
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/vlog.c:1057,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/vlog.c:1029,5'
          Dst:             ds_clear
        - Src:             'lib/vlog.c:1037,13'
          Dst:             ds_put_char
        - Src:             'lib/vlog.c:1051,16'
          Dst:             __ctype_b_loc
        - Src:             'lib/vlog.c:1059,13'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:1065,13'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:1068,17'
          Dst:             fetch_braces
        - Src:             'lib/vlog.c:1069,28'
          Dst:             vlog_get_module_name
        - Src:             'lib/vlog.c:1069,13'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:1072,17'
          Dst:             fetch_braces
        - Src:             'lib/vlog.c:1073,42'
          Dst:             time_wall_msec
        - Src:             'lib/vlog.c:1073,13'
          Dst:             ds_put_strftime_msec
        - Src:             'lib/vlog.c:1076,17'
          Dst:             fetch_braces
        - Src:             'lib/vlog.c:1077,42'
          Dst:             time_wall_msec
        - Src:             'lib/vlog.c:1077,13'
          Dst:             ds_put_strftime_msec
        - Src:             'lib/vlog.c:1080,13'
          Dst:             gethostname
        - Src:             'lib/vlog.c:1082,13'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:1088,13'
          Dst:             ds_put_format_valist
        - Src:             'lib/vlog.c:1095,37'
          Dst:             msg_num_get_unsafe
        - Src:             'lib/vlog.c:1095,13'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:1098,13'
          Dst:             ds_put_char
        - Src:             'lib/vlog.c:1101,28'
          Dst:             vlog_get_level_name
        - Src:             'lib/vlog.c:1101,13'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:1104,48'
          Dst:             getpid
        - Src:             'lib/vlog.c:1104,13'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:1107,38'
          Dst:             time_msec
        - Src:             'lib/vlog.c:1107,52'
          Dst:             time_boot_msec
        - Src:             'lib/vlog.c:1107,13'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:1110,31'
          Dst:             get_subprogram_name
        - Src:             'lib/vlog.c:1111,13'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:1114,31'
          Dst:             get_subprogram_name
        - Src:             'lib/vlog.c:1116,17'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:1120,13'
          Dst:             ds_put_char
        - Src:             'lib/vlog.c:1127,17'
          Dst:             ds_put_uninit
        - Src:             'lib/vlog.c:1131,17'
          Dst:             ds_put_char_multiple
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    fputs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    send_to_syslog_fd
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1141
      functionLinenumberEnd: 1149
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1145,12'
          Dst:             write
        - Src:             'lib/vlog.c:1145,49'
          Dst:             __errno_location
    - functionName:    vlog_get_module_name
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gethostname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_get_level_name
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    vlog_set_syslog_method
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 635
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          75
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - ovs_fatal
        - strcmp
        - strncmp
        - syslog_direct_create
        - syslog_libc_create
        - syslog_null_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:626,10'
          Dst:             strcmp
        - Src:             'lib/vlog.c:627,21'
          Dst:             syslog_null_create
        - Src:             'lib/vlog.c:628,17'
          Dst:             strcmp
        - Src:             'lib/vlog.c:629,21'
          Dst:             syslog_libc_create
        - Src:             'lib/vlog.c:630,17'
          Dst:             strncmp
        - Src:             'lib/vlog.c:630,48'
          Dst:             strncmp
        - Src:             'lib/vlog.c:631,21'
          Dst:             syslog_direct_create
        - Src:             'lib/vlog.c:633,9'
          Dst:             ovs_fatal
    - functionName:    vlog
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1244
      functionLinenumberEnd: 1250
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_valist
      functionUses:    171
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1248,5'
          Dst:             vlog_valist
    - functionName:    vlog_unixctl_set
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - unixctl_command_reply
        - unixctl_command_reply_error
        - vlog_set_levels
        - vlog_set_levels_from_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:699,9'
          Dst:             vlog_set_levels
        - Src:             'lib/vlog.c:702,21'
          Dst:             vlog_set_levels_from_string
        - Src:             'lib/vlog.c:704,13'
          Dst:             unixctl_command_reply_error
        - Src:             'lib/vlog.c:709,5'
          Dst:             unixctl_command_reply
    - functionName:    vlog_unixctl_list
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unixctl_command_reply
        - vlog_get_levels
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:716,17'
          Dst:             vlog_get_levels
        - Src:             'lib/vlog.c:717,5'
          Dst:             unixctl_command_reply
    - functionName:    vlog_unixctl_list_pattern
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 730
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unixctl_command_reply
        - vlog_get_patterns
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:727,11'
          Dst:             vlog_get_patterns
        - Src:             'lib/vlog.c:728,5'
          Dst:             unixctl_command_reply
    - functionName:    vlog_enable_rate_limit
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 816
      functionLinenumberEnd: 818
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - set_rate_limits
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:817,5'
          Dst:             set_rate_limits
    - functionName:    vlog_disable_rate_limit
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 823
      functionLinenumberEnd: 825
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - set_rate_limits
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:824,5'
          Dst:             set_rate_limits
    - functionName:    vlog_unixctl_reopen
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 735
      functionLinenumberEnd: 752
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strerror
        - unixctl_command_reply
        - unixctl_command_reply_error
        - vlog_reopen_log_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:738,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:740,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:743,21'
          Dst:             vlog_reopen_log_file
        - Src:             'lib/vlog.c:745,60'
          Dst:             __errno_location
        - Src:             'lib/vlog.c:745,47'
          Dst:             ovs_strerror
        - Src:             'lib/vlog.c:745,13'
          Dst:             unixctl_command_reply_error
        - Src:             'lib/vlog.c:747,13'
          Dst:             unixctl_command_reply
        - Src:             'lib/vlog.c:750,9'
          Dst:             unixctl_command_reply_error
    - functionName:    vlog_unixctl_close
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 774
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - async_append_destroy
        - close
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - unixctl_command_reply
        - update_min_level
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:758,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:760,9'
          Dst:             close
        - Src:             'lib/vlog.c:763,9'
          Dst:             async_append_destroy
        - Src:             'lib/vlog.c:768,13'
          Dst:             update_min_level
        - Src:             'lib/vlog.c:771,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:773,5'
          Dst:             unixctl_command_reply
    - functionName:    vlog_inject_info_log
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 830
      functionLinenumberEnd: 833
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - unixctl_command_reply
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:831,5'
          Dst:             vlog
        - Src:             'lib/vlog.c:832,5'
          Dst:             unixctl_command_reply
    - functionName:    vlog_reopen_log_file
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - nullable_xstrdup
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - vlog_set_log_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:469,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:470,10'
          Dst:             nullable_xstrdup
        - Src:             'lib/vlog.c:471,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:474,21'
          Dst:             vlog_set_log_file
    - functionName:    vlog_set_log_file
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_logdir
        - vlog_set_log_file__
        - xasprintf
        - xstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:457,11'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:458,34'
          Dst:             ovs_logdir
        - Src:             'lib/vlog.c:458,11'
          Dst:             xasprintf
        - Src:             'lib/vlog.c:455,12'
          Dst:             vlog_set_log_file__
    - functionName:    vlog_set_log_file__
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         62
      ICount:          313
      EdgeCount:       81
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - async_append_create
        - async_append_destroy
        - close
        - fstat
        - nullable_xstrdup
        - open
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strerror
        - update_min_level
        - vlog
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:375,22'
          Dst:             open
        - Src:             'lib/vlog.c:378,13'
          Dst:             __errno_location
        - Src:             'lib/vlog.c:378,13'
          Dst:             ovs_strerror
        - Src:             'lib/vlog.c:378,13'
          Dst:             vlog
        - Src:             'lib/vlog.c:381,20'
          Dst:             __errno_location
        - Src:             'lib/vlog.c:388,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:393,23'
          Dst:             fstat
        - Src:             'lib/vlog.c:394,23'
          Dst:             fstat
        - Src:             'lib/vlog.c:397,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:400,13'
          Dst:             close
        - Src:             'lib/vlog.c:407,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:409,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:411,9'
          Dst:             vlog
        - Src:             'lib/vlog.c:415,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:416,5'
          Dst:             async_append_destroy
        - Src:             'lib/vlog.c:418,9'
          Dst:             close
        - Src:             'lib/vlog.c:423,21'
          Dst:             nullable_xstrdup
        - Src:             'lib/vlog.c:425,30'
          Dst:             async_append_create
        - Src:             'lib/vlog.c:428,9'
          Dst:             update_min_level
        - Src:             'lib/vlog.c:430,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:433,5'
          Dst:             vlog
    - functionName:    vlog_get_patterns
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 973
      functionLinenumberEnd: 992
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ds_cstr
        - ds_put_format
        - ovs_rwlock_rdlock_at
        - ovs_rwlock_unlock
        - syslog_get_prefix
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:977,5'
          Dst:             ovs_rwlock_rdlock_at
        - Src:             'lib/vlog.c:978,5'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:979,5'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:986,22'
          Dst:             syslog_get_prefix
        - Src:             'lib/vlog.c:988,9'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:990,5'
          Dst:             ovs_rwlock_unlock
        - Src:             'lib/vlog.c:992,12'
          Dst:             ds_cstr
    - functionName:    syslog_get_prefix
      functionSourceFile: '/src/openvswitch/lib/syslog-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_get_levels
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 966
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         20
      ICount:          127
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ds_cstr
        - ds_init
        - ds_put_char
        - ds_put_cstr
        - ds_put_format
        - ds_steal_cstr
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - svec_add_nocopy
        - svec_destroy
        - svec_sort
        - vlog_get_level
        - vlog_get_level_name
        - vlog_get_module_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:936,5'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:937,5'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:939,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:943,9'
          Dst:             ds_init
        - Src:             'lib/vlog.c:945,23'
          Dst:             vlog_get_module_name
        - Src:             'lib/vlog.c:946,43'
          Dst:             vlog_get_level
        - Src:             'lib/vlog.c:946,23'
          Dst:             vlog_get_level_name
        - Src:             'lib/vlog.c:947,43'
          Dst:             vlog_get_level
        - Src:             'lib/vlog.c:947,23'
          Dst:             vlog_get_level_name
        - Src:             'lib/vlog.c:948,43'
          Dst:             vlog_get_level
        - Src:             'lib/vlog.c:948,23'
          Dst:             vlog_get_level_name
        - Src:             'lib/vlog.c:944,9'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:950,13'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:952,9'
          Dst:             ds_put_char
        - Src:             'lib/vlog.c:954,33'
          Dst:             ds_steal_cstr
        - Src:             'lib/vlog.c:954,9'
          Dst:             svec_add_nocopy
        - Src:             'lib/vlog.c:956,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:958,5'
          Dst:             svec_sort
        - Src:             'lib/vlog.c:962,9'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:964,5'
          Dst:             svec_destroy
        - Src:             'lib/vlog.c:966,12'
          Dst:             ds_cstr
    - functionName:    vlog_get_level
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_set_levels
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - set_destination_level
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:309,13'
          Dst:             set_destination_level
        - Src:             'lib/vlog.c:312,9'
          Dst:             set_destination_level
    - functionName:    vlog_set_levels_from_string
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          259
      EdgeCount:       71
      CyclomaticComplexity: 20
      functionsReached:
        - strcasecmp
        - strtok_r
        - vlog_facility_exists
        - vlog_get_destination_val
        - vlog_get_level_val
        - vlog_module_from_name
        - vlog_set_levels
        - vlog_set_pattern
        - xasprintf
        - xstrdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:514,15'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:519,12'
          Dst:             strtok_r
        - Src:             'lib/vlog.c:520,18'
          Dst:             strcasecmp
        - Src:             'lib/vlog.c:523,16'
          Dst:             strtok_r
        - Src:             'lib/vlog.c:525,19'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:529,25'
          Dst:             strcasecmp
        - Src:             'lib/vlog.c:531,26'
          Dst:             vlog_get_destination_val
        - Src:             'lib/vlog.c:533,19'
          Dst:             xasprintf
        - Src:             'lib/vlog.c:536,9'
          Dst:             vlog_set_pattern
        - Src:             'lib/vlog.c:537,25'
          Dst:             strcasecmp
        - Src:             'lib/vlog.c:540,14'
          Dst:             vlog_facility_exists
        - Src:             'lib/vlog.c:541,19'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:551,18'
          Dst:             strcasecmp
        - Src:             'lib/vlog.c:553,24'
          Dst:             vlog_get_destination_val
        - Src:             'lib/vlog.c:555,27'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:558,31'
          Dst:             vlog_get_destination_val
        - Src:             'lib/vlog.c:559,24'
          Dst:             vlog_get_level_val
        - Src:             'lib/vlog.c:561,27'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:564,25'
          Dst:             vlog_get_level_val
        - Src:             'lib/vlog.c:565,24'
          Dst:             vlog_module_from_name
        - Src:             'lib/vlog.c:567,27'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:570,26'
          Dst:             vlog_module_from_name
        - Src:             'lib/vlog.c:572,23'
          Dst:             xasprintf
        - Src:             'lib/vlog.c:550,37'
          Dst:             strtok_r
        - Src:             'lib/vlog.c:584,9'
          Dst:             vlog_set_levels
    - functionName:    vlog_get_destination_val
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:209,14'
          Dst:             strcasecmp
    - functionName:    vlog_set_pattern
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - do_set_pattern
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:340,13'
          Dst:             do_set_pattern
        - Src:             'lib/vlog.c:343,9'
          Dst:             do_set_pattern
    - functionName:    vlog_facility_exists
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 689
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:683,14'
          Dst:             strcasecmp
    - functionName:    vlog_get_level_val
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - search_name_array
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:190,12'
          Dst:             search_name_array
    - functionName:    search_name_array
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:170,14'
          Dst:             strcasecmp
    - functionName:    do_set_pattern
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_rwlock_unlock
        - ovs_rwlock_wrlock_at
        - xstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:321,5'
          Dst:             ovs_rwlock_wrlock_at
        - Src:             'lib/vlog.c:327,18'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:328,5'
          Dst:             ovs_rwlock_unlock
    - functionName:    set_destination_level
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - update_min_level
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:283,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:288,13'
          Dst:             update_min_level
        - Src:             'lib/vlog.c:292,9'
          Dst:             update_min_level
        - Src:             'lib/vlog.c:294,5'
          Dst:             ovs_mutex_unlock
    - functionName:    vlog_is_enabled
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1000
      functionLinenumberEnd: 1001
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_disable_async
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 919
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - async_append_destroy
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:920,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:922,5'
          Dst:             async_append_destroy
        - Src:             'lib/vlog.c:924,5'
          Dst:             ovs_mutex_unlock
    - functionName:    vlog_enable_async
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 908
      functionLinenumberEnd: 915
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          36
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - async_append_create
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:909,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:912,22'
          Dst:             async_append_create
        - Src:             'lib/vlog.c:914,5'
          Dst:             ovs_mutex_unlock
    - functionName:    vlog_get_log_file_fd_unsafe
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_direct_write_to_log_file_unsafe
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_ignore
        - strlen
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:664,37'
          Dst:             strlen
        - Src:             'lib/vlog.c:664,20'
          Dst:             write
        - Src:             'lib/vlog.c:664,9'
          Dst:             ovs_ignore
    - functionName:    vlog_set_syslog_target
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - close
        - inet_open_active
        - ovs_rwlock_unlock
        - ovs_rwlock_wrlock_at
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:643,5'
          Dst:             inet_open_active
        - Src:             'lib/vlog.c:645,5'
          Dst:             ovs_rwlock_wrlock_at
        - Src:             'lib/vlog.c:647,9'
          Dst:             close
        - Src:             'lib/vlog.c:650,5'
          Dst:             ovs_rwlock_unlock
    - functionName:    vlog_set_verbosity
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_fatal
        - vlog_set_levels
        - vlog_set_levels_from_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:608,21'
          Dst:             vlog_set_levels_from_string
        - Src:             'lib/vlog.c:610,13'
          Dst:             ovs_fatal
        - Src:             'lib/vlog.c:613,9'
          Dst:             vlog_set_levels
    - functionName:    vlog_set_levels_from_string_assert
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          29
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_fatal
        - vlog_set_levels_from_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:596,19'
          Dst:             vlog_set_levels_from_string
        - Src:             'lib/vlog.c:598,9'
          Dst:             ovs_fatal
    - functionName:    vlog_change_owner_unix
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - chown
        - ds_put_format
        - ds_steal_cstr
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strerror
        - vlog_fatal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:492,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:493,29'
          Dst:             chown
        - Src:             'lib/vlog.c:500,51'
          Dst:             __errno_location
        - Src:             'lib/vlog.c:500,38'
          Dst:             ovs_strerror
        - Src:             'lib/vlog.c:499,9'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:502,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:505,9'
          Dst:             ds_steal_cstr
        - Src:             'lib/vlog.c:505,9'
          Dst:             vlog_fatal
    - functionName:    chown
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_fatal
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1283
      functionLinenumberEnd: 1284
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_fatal_valist
      functionUses:    38
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1284,5'
          Dst:             vlog_fatal_valist
    - functionName:    vlog_fatal_valist
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1262
      functionLinenumberEnd: 1269
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_fatal_valist
        - vlog_valist
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1268,5'
          Dst:             vlog_valist
        - Src:             'lib/vlog.c:1269,5'
          Dst:             ovs_fatal_valist
    - functionName:    vlog_close_log_file
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_set_log_file__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:446,5'
          Dst:             vlog_set_log_file__
    - functionName:    vlog_get_log_file
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nullable_xstrdup
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:352,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:353,16'
          Dst:             nullable_xstrdup
        - Src:             'lib/vlog.c:354,5'
          Dst:             ovs_mutex_unlock
    - functionName:    vlog_get_destination_name
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_abort_valist
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1298
      functionLinenumberEnd: 1309
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - log_backtrace_at
        - ovs_abort_valist
        - vlog_valist
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1307,5'
          Dst:             log_backtrace_at
        - Src:             'lib/vlog.c:1308,5'
          Dst:             vlog_valist
        - Src:             'lib/vlog.c:1309,5'
          Dst:             ovs_abort_valist
    - functionName:    vlog_abort
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1322
      functionLinenumberEnd: 1323
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_abort_valist
      functionUses:    46
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1323,5'
          Dst:             vlog_abort_valist
    - functionName:    latch_wait_at
      functionSourceFile: '/src/openvswitch/lib/latch-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - poll_fd_wait_at
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/latch-unix.c:95,5'
          Dst:             poll_fd_wait_at
    - functionName:    latch_is_set
      functionSourceFile: '/src/openvswitch/lib/latch-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - poll
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/latch-unix.c:81,18'
          Dst:             poll
        - Src:             'lib/latch-unix.c:82,28'
          Dst:             __errno_location
    - functionName:    latch_set
      functionSourceFile: '/src/openvswitch/lib/latch-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/latch-unix.c:67,16'
          Dst:             write
        - Src:             'lib/latch-unix.c:67,5'
          Dst:             ovs_ignore
    - functionName:    latch_poll
      functionSourceFile: '/src/openvswitch/lib/latch-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          51
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/latch-unix.c:52,15'
          Dst:             read
    - functionName:    latch_destroy
      functionSourceFile: '/src/openvswitch/lib/latch-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/latch-unix.c:38,5'
          Dst:             close
        - Src:             'lib/latch-unix.c:39,5'
          Dst:             close
    - functionName:    latch_init
      functionSourceFile: '/src/openvswitch/lib/latch-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xpipe_nonblocking
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/latch-unix.c:31,5'
          Dst:             xpipe_nonblocking
    - functionName:    init_this_module_socket_util_unix
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:33,1'
          Dst:             vlog_insert_module
    - functionName:    shorten_name_via_symlink
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          180
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - abs_file_name
        - base_name
        - dir_name
        - fatal_signal_add_file_to_unlink
        - fatal_signal_unlink_file_now
        - getenv
        - random_uint32
        - snprintf
        - symlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:164,11'
          Dst:             abs_file_name
        - Src:             'lib/socket-util-unix.c:165,11'
          Dst:             dir_name
        - Src:             'lib/socket-util-unix.c:166,12'
          Dst:             base_name
        - Src:             'lib/socket-util-unix.c:169,14'
          Dst:             getenv
        - Src:             'lib/socket-util-unix.c:178,55'
          Dst:             random_uint32
        - Src:             'lib/socket-util-unix.c:177,15'
          Dst:             snprintf
        - Src:             'lib/socket-util-unix.c:180,20'
          Dst:             symlink
        - Src:             'lib/socket-util-unix.c:180,45'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:190,9'
          Dst:             fatal_signal_add_file_to_unlink
        - Src:             'lib/socket-util-unix.c:192,15'
          Dst:             snprintf
        - Src:             'lib/socket-util-unix.c:194,13'
          Dst:             fatal_signal_unlink_file_now
    - functionName:    symlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shorten_name_via_proc
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          108
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - base_name
        - close
        - dir_name
        - open
        - ovs_strerror
        - snprintf
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:122,11'
          Dst:             dir_name
        - Src:             'lib/socket-util-unix.c:123,13'
          Dst:             open
        - Src:             'lib/socket-util-unix.c:126,21'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:128,9'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util-unix.c:128,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/socket-util-unix.c:135,12'
          Dst:             base_name
        - Src:             'lib/socket-util-unix.c:136,11'
          Dst:             snprintf
        - Src:             'lib/socket-util-unix.c:144,9'
          Dst:             close
    - functionName:    af_inet_ifreq_ioctl
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - af_inet_ioctl
        - ovs_strerror
        - ovs_strzcpy
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:427,5'
          Dst:             ovs_strzcpy
        - Src:             'lib/socket-util-unix.c:428,13'
          Dst:             af_inet_ioctl
        - Src:             'lib/socket-util-unix.c:431,9'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util-unix.c:431,9'
          Dst:             vlog_rate_limit
    - functionName:    af_inet_ioctl
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          94
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - ioctl
        - ovsthread_once_done
        - ovsthread_once_start
        - sock_errno
        - sock_strerror
        - socket
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:406,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/socket-util-unix.c:407,16'
          Dst:             socket
        - Src:             'lib/socket-util-unix.c:409,25'
          Dst:             sock_errno
        - Src:             'lib/socket-util-unix.c:410,13'
          Dst:             sock_strerror
        - Src:             'lib/socket-util-unix.c:410,13'
          Dst:             vlog
        - Src:             'lib/socket-util-unix.c:413,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/socket-util-unix.c:417,15'
          Dst:             ioctl
        - Src:             'lib/socket-util-unix.c:417,49'
          Dst:             __errno_location
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    sock_errno
      functionSourceFile: '/src/openvswitch/lib/socket-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.h:149,12'
          Dst:             __errno_location
    - functionName:    ioctl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_unix_name_len
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_sockaddr_un
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - fatal_signal_unlink_file_now
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:254,9'
          Dst:             close
        - Src:             'lib/socket-util-unix.c:257,9'
          Dst:             fatal_signal_unlink_file_now
    - functionName:    bind_unix_socket
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - bind
        - fchmod
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:269,13'
          Dst:             fchmod
        - Src:             'lib/socket-util-unix.c:270,20'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:274,13'
          Dst:             bind
        - Src:             'lib/socket-util-unix.c:275,20'
          Dst:             __errno_location
    - functionName:    fchmod
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    make_sockaddr_un
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          116
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - ovs_strzcpy
        - shorten_name_via_proc
        - shorten_name_via_symlink
        - strlen
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:225,9'
          Dst:             strlen
        - Src:             'lib/socket-util-unix.c:227,21'
          Dst:             shorten_name_via_proc
        - Src:             'lib/socket-util-unix.c:229,21'
          Dst:             shorten_name_via_symlink
        - Src:             'lib/socket-util-unix.c:234,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/socket-util-unix.c:243,5'
          Dst:             ovs_strzcpy
        - Src:             'lib/socket-util-unix.c:245,19'
          Dst:             strlen
    - functionName:    make_unix_socket
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          257
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - bind_unix_socket
        - close
        - connect
        - fatal_signal_add_file_to_unlink
        - fatal_signal_unlink_file_now
        - free_sockaddr_un
        - make_sockaddr_un
        - ovs_strerror
        - set_nonblocking
        - socket
        - unlink
        - vlog
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:318,10'
          Dst:             socket
        - Src:             'lib/socket-util-unix.c:320,17'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:328,17'
          Dst:             set_nonblocking
        - Src:             'lib/socket-util-unix.c:340,13'
          Dst:             unlink
        - Src:             'lib/socket-util-unix.c:340,34'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:341,13'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:341,13'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util-unix.c:341,13'
          Dst:             vlog
        - Src:             'lib/socket-util-unix.c:344,9'
          Dst:             fatal_signal_add_file_to_unlink
        - Src:             'lib/socket-util-unix.c:346,17'
          Dst:             make_sockaddr_un
        - Src:             'lib/socket-util-unix.c:348,21'
          Dst:             bind_unix_socket
        - Src:             'lib/socket-util-unix.c:350,9'
          Dst:             free_sockaddr_un
        - Src:             'lib/socket-util-unix.c:363,17'
          Dst:             make_sockaddr_un
        - Src:             'lib/socket-util-unix.c:365,16'
          Dst:             connect
        - Src:             'lib/socket-util-unix.c:366,16'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:367,21'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:369,9'
          Dst:             free_sockaddr_un
        - Src:             'lib/socket-util-unix.c:383,9'
          Dst:             fatal_signal_unlink_file_now
        - Src:             'lib/socket-util-unix.c:385,5'
          Dst:             close
    - functionName:    unlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    drain_rcvbuf
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - get_socket_rcvbuf
        - recv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:78,14'
          Dst:             get_socket_rcvbuf
        - Src:             'lib/socket-util-unix.c:93,27'
          Dst:             recv
    - functionName:    recv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpipe_nonblocking
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xpipe
        - xset_nonblocking
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:63,5'
          Dst:             xpipe
        - Src:             'lib/socket-util-unix.c:64,5'
          Dst:             xset_nonblocking
        - Src:             'lib/socket-util-unix.c:65,5'
          Dst:             xset_nonblocking
    - functionName:    xpipe
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          29
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - ovs_strerror
        - pipe
        - vlog_fatal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:55,9'
          Dst:             pipe
        - Src:             'lib/socket-util-unix.c:56,9'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:56,9'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util-unix.c:56,9'
          Dst:             vlog_fatal
    - functionName:    pipe
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_stream_unix
      functionSourceFile: '/src/openvswitch/lib/stream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-unix.c:39,1'
          Dst:             vlog_insert_module
    - functionName:    atomic_count_inc
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    punix_accept
      functionSourceFile: '/src/openvswitch/lib/stream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - atomic_count_inc
        - get_unix_name_len
        - new_fd_stream
        - xasprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-unix.c:115,20'
          Dst:             get_unix_name_len
        - Src:             'lib/stream-unix.c:119,22'
          Dst:             xasprintf
        - Src:             'lib/stream-unix.c:125,43'
          Dst:             atomic_count_inc
        - Src:             'lib/stream-unix.c:125,22'
          Dst:             xasprintf
        - Src:             'lib/stream-unix.c:127,12'
          Dst:             new_fd_stream
    - functionName:    pfd_open
      functionSourceFile: '/src/openvswitch/lib/stream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          202
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - __errno_location
        - getsockopt
        - new_fd_pstream
        - ovs_strerror
        - punix_accept
        - set_nonblocking
        - str_to_long
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-unix.c:150,10'
          Dst:             str_to_long
        - Src:             'lib/stream-unix.c:151,9'
          Dst:             vlog
        - Src:             'lib/stream-unix.c:158,9'
          Dst:             getsockopt
        - Src:             'lib/stream-unix.c:159,9'
          Dst:             __errno_location
        - Src:             'lib/stream-unix.c:159,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-unix.c:159,9'
          Dst:             vlog
        - Src:             'lib/stream-unix.c:160,16'
          Dst:             __errno_location
        - Src:             'lib/stream-unix.c:163,9'
          Dst:             vlog
        - Src:             'lib/stream-unix.c:168,9'
          Dst:             getsockopt
        - Src:             'lib/stream-unix.c:170,9'
          Dst:             vlog
        - Src:             'lib/stream-unix.c:174,17'
          Dst:             set_nonblocking
        - Src:             'lib/stream-unix.c:179,27'
          Dst:             xstrdup
        - Src:             'lib/stream-unix.c:179,12'
          Dst:             new_fd_pstream
        - Src:             'lib/stream-unix.c:179,12'
          Dst:             punix_accept
    - functionName:    punix_open
      functionSourceFile: '/src/openvswitch/lib/stream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          118
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - abs_file_name
        - close
        - listen
        - make_unix_socket
        - new_fd_pstream
        - ovs_rundir
        - ovs_strerror
        - punix_accept
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-unix.c:90,31'
          Dst:             ovs_rundir
        - Src:             'lib/stream-unix.c:90,17'
          Dst:             abs_file_name
        - Src:             'lib/stream-unix.c:91,10'
          Dst:             make_unix_socket
        - Src:             'lib/stream-unix.c:93,9'
          Dst:             __errno_location
        - Src:             'lib/stream-unix.c:93,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-unix.c:93,9'
          Dst:             vlog
        - Src:             'lib/stream-unix.c:95,16'
          Dst:             __errno_location
        - Src:             'lib/stream-unix.c:98,9'
          Dst:             listen
        - Src:             'lib/stream-unix.c:99,17'
          Dst:             __errno_location
        - Src:             'lib/stream-unix.c:100,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-unix.c:100,9'
          Dst:             vlog
        - Src:             'lib/stream-unix.c:101,9'
          Dst:             close
        - Src:             'lib/stream-unix.c:106,27'
          Dst:             xstrdup
        - Src:             'lib/stream-unix.c:106,12'
          Dst:             new_fd_pstream
        - Src:             'lib/stream-unix.c:106,12'
          Dst:             punix_accept
    - functionName:    unix_open
      functionSourceFile: '/src/openvswitch/lib/stream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          80
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - abs_file_name
        - check_connection_completion
        - make_unix_socket
        - new_fd_stream
        - ovs_rundir
        - ovs_strerror
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-unix.c:50,34'
          Dst:             ovs_rundir
        - Src:             'lib/stream-unix.c:50,20'
          Dst:             abs_file_name
        - Src:             'lib/stream-unix.c:51,10'
          Dst:             make_unix_socket
        - Src:             'lib/stream-unix.c:54,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-unix.c:54,9'
          Dst:             vlog
        - Src:             'lib/stream-unix.c:61,26'
          Dst:             xstrdup
        - Src:             'lib/stream-unix.c:61,45'
          Dst:             check_connection_completion
        - Src:             'lib/stream-unix.c:61,12'
          Dst:             new_fd_stream
    - functionName:    async_append_is_empty
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_is_empty
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/async-append-aio.c:89,12'
          Dst:             byteq_is_empty
    - functionName:    async_append_wait
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - aio_error
        - aio_return
        - aio_suspend
        - async_append_is_empty
        - byteq_advance_tail
        - ovs_ignore
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/async-append-aio.c:97,13'
          Dst:             async_append_is_empty
        - Src:             'lib/async-append-aio.c:99,21'
          Dst:             aio_error
        - Src:             'lib/async-append-aio.c:106,13'
          Dst:             aio_suspend
        - Src:             'lib/async-append-aio.c:108,24'
          Dst:             aio_return
        - Src:             'lib/async-append-aio.c:108,13'
          Dst:             ovs_ignore
        - Src:             'lib/async-append-aio.c:110,13'
          Dst:             byteq_advance_tail
    - functionName:    aio_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aio_suspend
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aio_return
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    async_append_is_full
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - byteq_is_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/async-append-aio.c:83,16'
          Dst:             byteq_is_full
    - functionName:    async_append_write
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          144
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - aio_write
        - async_append_flush
        - async_append_is_full
        - async_append_wait
        - byteq_advance_head
        - byteq_head
        - byteq_headroom
        - ovs_ignore
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/async-append-aio.c:126,16'
          Dst:             async_append_is_full
        - Src:             'lib/async-append-aio.c:127,13'
          Dst:             async_append_wait
        - Src:             'lib/async-append-aio.c:130,17'
          Dst:             byteq_head
        - Src:             'lib/async-append-aio.c:131,22'
          Dst:             byteq_headroom
        - Src:             'lib/async-append-aio.c:144,13'
          Dst:             aio_write
        - Src:             'lib/async-append-aio.c:145,13'
          Dst:             async_append_flush
        - Src:             'lib/async-append-aio.c:146,24'
          Dst:             write
        - Src:             'lib/async-append-aio.c:146,13'
          Dst:             ovs_ignore
        - Src:             'lib/async-append-aio.c:152,9'
          Dst:             byteq_advance_head
    - functionName:    aio_write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    async_append_flush
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - async_append_is_empty
        - async_append_wait
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/async-append-aio.c:160,13'
          Dst:             async_append_is_empty
        - Src:             'lib/async-append-aio.c:161,9'
          Dst:             async_append_wait
    - functionName:    async_append_destroy
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - async_append_flush
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/async-append-aio.c:72,9'
          Dst:             async_append_flush
    - functionName:    async_append_create
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_init
        - xmalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/async-append-aio.c:58,10'
          Dst:             xmalloc
        - Src:             'lib/async-append-aio.c:60,18'
          Dst:             xmalloc
        - Src:             'lib/async-append-aio.c:62,18'
          Dst:             xmalloc
        - Src:             'lib/async-append-aio.c:63,5'
          Dst:             byteq_init
    - functionName:    init_this_module_stream_ssl
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:52,1'
          Dst:             vlog_insert_module
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitmap_unit__
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitmap_bit__
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tmp_dh_callback
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1068
      functionLinenumberEnd: 1096
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          102
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - out_of_memory
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1087,21'
          Dst:             out_of_memory
        - Src:             'lib/stream-ssl.c:1093,5'
          Dst:             vlog_rate_limit
    - functionName:    do_ssl_init
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 993
      functionLinenumberEnd: 1063
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         36
      ICount:          179
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - RAND_seed
        - RAND_status
        - SSL_CTX_ctrl
        - SSL_CTX_new
        - SSL_CTX_set_cipher_list
        - SSL_CTX_set_options
        - SSL_CTX_set_tmp_dh_callback
        - SSL_CTX_set_verify
        - TLS_method
        - get_entropy
        - ovs_retval_to_string
        - tmp_dh_callback
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:994,10'
          Dst:             RAND_status
        - Src:             'lib/stream-ssl.c:1012,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1014,18'
          Dst:             get_entropy
        - Src:             'lib/stream-ssl.c:1016,13'
          Dst:             ovs_retval_to_string
        - Src:             'lib/stream-ssl.c:1016,13'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1021,9'
          Dst:             RAND_seed
        - Src:             'lib/stream-ssl.c:1029,32'
          Dst:             TLS_method
        - Src:             'lib/stream-ssl.c:1031,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1031,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1031,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1035,11'
          Dst:             SSL_CTX_new
        - Src:             'lib/stream-ssl.c:1037,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1037,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1037,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1046,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1047,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1050,5'
          Dst:             SSL_CTX_set_tmp_dh_callback
        - Src:             'lib/stream-ssl.c:1050,5'
          Dst:             tmp_dh_callback
        - Src:             'lib/stream-ssl.c:1054,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1055,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1056,5'
          Dst:             SSL_CTX_set_verify
        - Src:             'lib/stream-ssl.c:1058,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1059,5'
          Dst:             SSL_CTX_set_options
        - Src:             'lib/stream-ssl.c:1060,5'
          Dst:             SSL_CTX_set_cipher_list
    - functionName:    RAND_status
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RAND_seed
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    TLS_method
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ERR_get_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ERR_error_string
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_tmp_dh_callback
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_verify
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_options
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_cipher_list
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pstream_assert_class
      functionSourceFile: '/src/openvswitch/lib/stream-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-provider.h:146,5'
          Dst:             ovs_ignore
    - functionName:    pssl_pstream_cast
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 871
      functionLinenumberEnd: 873
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstream_assert_class
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:872,5'
          Dst:             pstream_assert_class
    - functionName:    pssl_open
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 879
      functionLinenumberEnd: 910
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          85
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_format
        - ds_steal_cstr
        - htons
        - inet_open_passive
        - pstream_init
        - pstream_set_bound_port
        - ss_format_address
        - ss_get_port
        - ssl_init
        - xmalloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:886,14'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:891,10'
          Dst:             inet_open_passive
        - Src:             'lib/stream-ssl.c:896,12'
          Dst:             ss_get_port
        - Src:             'lib/stream-ssl.c:899,5'
          Dst:             ds_put_format
        - Src:             'lib/stream-ssl.c:900,5'
          Dst:             ss_format_address
        - Src:             'lib/stream-ssl.c:902,12'
          Dst:             xmalloc
        - Src:             'lib/stream-ssl.c:904,18'
          Dst:             ds_steal_cstr
        - Src:             'lib/stream-ssl.c:903,5'
          Dst:             pstream_init
        - Src:             'lib/stream-ssl.c:905,44'
          Dst:             htons
        - Src:             'lib/stream-ssl.c:905,5'
          Dst:             pstream_set_bound_port
    - functionName:    pssl_close
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 914
      functionLinenumberEnd: 918
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
        - pssl_pstream_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:915,33'
          Dst:             pssl_pstream_cast
        - Src:             'lib/stream-ssl.c:916,5'
          Dst:             close
    - functionName:    pssl_accept
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 922
      functionLinenumberEnd: 950
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          108
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - accept
        - close
        - ds_put_cstr
        - ds_put_format
        - ds_steal_cstr
        - new_ssl_stream
        - pssl_pstream_cast
        - set_nonblocking
        - sock_errno
        - sock_strerror
        - ss_format_address
        - ss_get_port
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:923,33'
          Dst:             pssl_pstream_cast
        - Src:             'lib/stream-ssl.c:929,14'
          Dst:             accept
        - Src:             'lib/stream-ssl.c:931,17'
          Dst:             sock_errno
        - Src:             'lib/stream-ssl.c:933,13'
          Dst:             sock_strerror
        - Src:             'lib/stream-ssl.c:933,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:938,13'
          Dst:             set_nonblocking
        - Src:             'lib/stream-ssl.c:940,9'
          Dst:             close
        - Src:             'lib/stream-ssl.c:945,5'
          Dst:             ds_put_cstr
        - Src:             'lib/stream-ssl.c:946,5'
          Dst:             ss_format_address
        - Src:             'lib/stream-ssl.c:947,38'
          Dst:             ss_get_port
        - Src:             'lib/stream-ssl.c:947,5'
          Dst:             ds_put_format
        - Src:             'lib/stream-ssl.c:948,27'
          Dst:             ds_steal_cstr
        - Src:             'lib/stream-ssl.c:948,12'
          Dst:             new_ssl_stream
    - functionName:    pssl_wait
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 954
      functionLinenumberEnd: 957
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - poll_fd_wait_at
        - pssl_pstream_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:955,33'
          Dst:             pssl_pstream_cast
        - Src:             'lib/stream-ssl.c:956,5'
          Dst:             poll_fd_wait_at
    - functionName:    accept
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sock_errno
      functionSourceFile: '/src/openvswitch/lib/socket-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.h:149,12'
          Dst:             __errno_location
    - functionName:    new_ssl_stream
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         83
      ICount:          412
      EdgeCount:       107
      CyclomaticComplexity: 26
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_check_private_key
        - SSL_ctrl
        - SSL_free
        - SSL_new
        - SSL_set_fd
        - SSL_set_msg_callback
        - SSL_set_verify
        - close
        - setsockopt_tcp_nodelay
        - ssl_protocol_cb
        - stream_init
        - vlog
        - vlog_is_enabled
        - xmalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:240,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:244,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:248,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:251,21'
          Dst:             SSL_CTX_check_private_key
        - Src:             'lib/stream-ssl.c:252,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:252,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:252,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:261,5'
          Dst:             setsockopt_tcp_nodelay
        - Src:             'lib/stream-ssl.c:264,11'
          Dst:             SSL_new
        - Src:             'lib/stream-ssl.c:266,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:266,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:266,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:270,9'
          Dst:             SSL_set_fd
        - Src:             'lib/stream-ssl.c:271,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:271,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:271,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:276,9'
          Dst:             SSL_set_verify
        - Src:             'lib/stream-ssl.c:278,25'
          Dst:             SSL_ctrl
        - Src:             'lib/stream-ssl.c:279,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:279,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:279,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:286,12'
          Dst:             xmalloc
        - Src:             'lib/stream-ssl.c:287,5'
          Dst:             stream_init
        - Src:             'lib/stream-ssl.c:297,9'
          Dst:             vlog_is_enabled
        - Src:             'lib/stream-ssl.c:298,9'
          Dst:             SSL_set_msg_callback
        - Src:             'lib/stream-ssl.c:298,9'
          Dst:             ssl_protocol_cb
        - Src:             'lib/stream-ssl.c:299,9'
          Dst:             SSL_ctrl
        - Src:             'lib/stream-ssl.c:308,9'
          Dst:             SSL_free
        - Src:             'lib/stream-ssl.c:310,5'
          Dst:             close
    - functionName:    SSL_CTX_check_private_key
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_set_fd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_set_verify
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_protocol_cb
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1582
      functionLinenumberEnd: 1611
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          130
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ds_cstr
        - ds_destroy
        - ds_init
        - ds_put_cstr
        - ds_put_format
        - ssl_alert_description_to_string
        - ssl_alert_level_to_string
        - ssl_handshake_type_to_string
        - stream_get_name
        - vlog
        - vlog_is_enabled
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1587,10'
          Dst:             vlog_is_enabled
        - Src:             'lib/stream-ssl.c:1591,5'
          Dst:             ds_init
        - Src:             'lib/stream-ssl.c:1593,9'
          Dst:             ds_put_cstr
        - Src:             'lib/stream-ssl.c:1596,23'
          Dst:             ssl_alert_level_to_string
        - Src:             'lib/stream-ssl.c:1597,23'
          Dst:             ssl_alert_description_to_string
        - Src:             'lib/stream-ssl.c:1595,9'
          Dst:             ds_put_format
        - Src:             'lib/stream-ssl.c:1600,23'
          Dst:             ssl_handshake_type_to_string
        - Src:             'lib/stream-ssl.c:1599,9'
          Dst:             ds_put_format
        - Src:             'lib/stream-ssl.c:1602,9'
          Dst:             ds_put_format
        - Src:             'lib/stream-ssl.c:1605,5'
          Dst:             stream_get_name
        - Src:             'lib/stream-ssl.c:1605,5'
          Dst:             ds_cstr
        - Src:             'lib/stream-ssl.c:1605,5'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1610,5'
          Dst:             ds_destroy
    - functionName:    SSL_set_msg_callback
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_alert_level_to_string
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1522
      functionLinenumberEnd: 1528
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          28
      EdgeCount:       8
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1523,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    ssl_alert_description_to_string
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1532
      functionLinenumberEnd: 1559
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          133
      EdgeCount:       50
      CyclomaticComplexity: 26
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1533,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    ssl_handshake_type_to_string
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1563
      functionLinenumberEnd: 1577
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       24
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1564,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    ssl_open
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          105
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - get_server_name
        - inet_open_active
        - new_ssl_stream
        - ovs_strerror
        - ssl_init
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:352,13'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:357,13'
          Dst:             inet_open_active
        - Src:             'lib/stream-ssl.c:362,31'
          Dst:             xstrdup
        - Src:             'lib/stream-ssl.c:363,31'
          Dst:             get_server_name
        - Src:             'lib/stream-ssl.c:365,31'
          Dst:             xstrdup
        - Src:             'lib/stream-ssl.c:365,16'
          Dst:             new_ssl_stream
        - Src:             'lib/stream-ssl.c:368,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:368,9'
          Dst:             vlog
    - functionName:    ssl_close
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ERR_clear_error
        - SSL_free
        - SSL_shutdown
        - close
        - ssl_clear_txbuf
        - ssl_stream_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:580,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:581,5'
          Dst:             ssl_clear_txbuf
        - Src:             'lib/stream-ssl.c:588,5'
          Dst:             SSL_shutdown
        - Src:             'lib/stream-ssl.c:593,5'
          Dst:             ERR_clear_error
        - Src:             'lib/stream-ssl.c:595,5'
          Dst:             SSL_free
        - Src:             'lib/stream-ssl.c:596,5'
          Dst:             close
    - functionName:    ssl_connect
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         46
      ICount:          281
      EdgeCount:       57
      CyclomaticComplexity: 13
      functionsReached:
        - SSL_accept
        - SSL_connect
        - SSL_get_error
        - SSL_get_servername
        - SSL_get_verify_mode
        - abort
        - check_connection_completion
        - do_ca_cert_bootstrap
        - get_peer_common_name
        - interpret_ssl_error
        - recv
        - setsockopt_tcp_nodelay
        - shutdown
        - ssl_stream_cast
        - ssl_wants_io
        - stream_get_name
        - stream_report_content
        - stream_set_peer_id
        - vlog
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:506,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/stream-ssl.c:503,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:508,18'
          Dst:             check_connection_completion
        - Src:             'lib/stream-ssl.c:513,9'
          Dst:             setsockopt_tcp_nodelay
        - Src:             'lib/stream-ssl.c:520,28'
          Dst:             recv
        - Src:             'lib/stream-ssl.c:525,22'
          Dst:             SSL_connect
        - Src:             'lib/stream-ssl.c:525,47'
          Dst:             SSL_accept
        - Src:             'lib/stream-ssl.c:527,25'
          Dst:             SSL_get_error
        - Src:             'lib/stream-ssl.c:528,31'
          Dst:             ssl_wants_io
        - Src:             'lib/stream-ssl.c:533,17'
          Dst:             interpret_ssl_error
        - Src:             'lib/stream-ssl.c:535,17'
          Dst:             shutdown
        - Src:             'lib/stream-ssl.c:537,53'
          Dst:             stream_get_name
        - Src:             'lib/stream-ssl.c:536,17'
          Dst:             stream_report_content
        - Src:             'lib/stream-ssl.c:541,20'
          Dst:             do_ca_cert_bootstrap
        - Src:             'lib/stream-ssl.c:543,25'
          Dst:             SSL_get_verify_mode
        - Src:             'lib/stream-ssl.c:554,13'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:558,38'
          Dst:             SSL_get_servername
        - Src:             'lib/stream-ssl.c:561,17'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:564,24'
          Dst:             get_peer_common_name
        - Src:             'lib/stream-ssl.c:567,17'
          Dst:             stream_set_peer_id
        - Src:             'lib/stream-ssl.c:574,5'
          Dst:             abort
    - functionName:    ssl_recv
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 681
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - SSL_get_error
        - SSL_get_state
        - SSL_read
        - interpret_ssl_error
        - ovs_ignore
        - ssl_stream_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:682,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:687,5'
          Dst:             ovs_ignore
        - Src:             'lib/stream-ssl.c:689,17'
          Dst:             SSL_get_state
        - Src:             'lib/stream-ssl.c:690,11'
          Dst:             SSL_read
        - Src:             'lib/stream-ssl.c:691,22'
          Dst:             SSL_get_state
        - Src:             'lib/stream-ssl.c:699,21'
          Dst:             SSL_get_error
        - Src:             'lib/stream-ssl.c:703,21'
          Dst:             interpret_ssl_error
    - functionName:    ssl_send
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 748
      functionLinenumberEnd: 773
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          83
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_clone_data
        - ofpbuf_use_const
        - ssl_do_tx
        - ssl_stream_cast
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:760,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/stream-ssl.c:749,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:757,9'
          Dst:             ofpbuf_use_const
        - Src:             'lib/stream-ssl.c:759,17'
          Dst:             ssl_do_tx
        - Src:             'lib/stream-ssl.c:766,27'
          Dst:             ofpbuf_clone_data
    - functionName:    ssl_run
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 783
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ssl_clear_txbuf
        - ssl_do_tx
        - ssl_stream_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:778,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:780,24'
          Dst:             ssl_do_tx
        - Src:             'lib/stream-ssl.c:781,9'
          Dst:             ssl_clear_txbuf
    - functionName:    ssl_run_wait
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 787
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - poll_fd_wait_at
        - ssl_stream_cast
        - want_to_poll_events
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:788,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:791,9'
          Dst:             want_to_poll_events
        - Src:             'lib/stream-ssl.c:791,9'
          Dst:             poll_fd_wait_at
    - functionName:    ssl_wait
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 797
      functionLinenumberEnd: 844
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          111
      EdgeCount:       41
      CyclomaticComplexity: 22
      functionsReached:
        - SSL_want
        - abort
        - poll_fd_wait_at
        - poll_immediate_wake_at
        - ssl_stream_cast
        - stream_connect
        - want_to_poll_events
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:800,5'
          Branch Sides:    []
        - Branch String:   'lib/stream-ssl.c:805,13'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/stream-ssl.c:798,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:802,13'
          Dst:             stream_connect
        - Src:             'lib/stream-ssl.c:803,13'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/stream-ssl.c:807,17'
          Dst:             poll_fd_wait_at
        - Src:             'lib/stream-ssl.c:813,17'
          Dst:             SSL_want
        - Src:             'lib/stream-ssl.c:813,17'
          Dst:             want_to_poll_events
        - Src:             'lib/stream-ssl.c:813,17'
          Dst:             poll_fd_wait_at
        - Src:             'lib/stream-ssl.c:818,17'
          Dst:             abort
        - Src:             'lib/stream-ssl.c:825,13'
          Dst:             want_to_poll_events
        - Src:             'lib/stream-ssl.c:825,13'
          Dst:             poll_fd_wait_at
        - Src:             'lib/stream-ssl.c:827,13'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/stream-ssl.c:834,13'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/stream-ssl.c:842,9'
          Dst:             abort
    - functionName:    ssl_stream_cast
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_assert_class
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:319,5'
          Dst:             stream_assert_class
    - functionName:    SSL_want
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    want_to_poll_events
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          39
      EdgeCount:       13
      CyclomaticComplexity: 7
      functionsReached:
        - abort
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:203,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/stream-ssl.c:205,9'
          Dst:             abort
        - Src:             'lib/stream-ssl.c:214,9'
          Dst:             abort
    - functionName:    stream_assert_class
      functionSourceFile: '/src/openvswitch/lib/stream-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-provider.h:43,5'
          Dst:             ovs_ignore
    - functionName:    ssl_do_tx
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 744
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          137
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - SSL_get_error
        - SSL_get_state
        - SSL_write
        - interpret_ssl_error
        - ofpbuf_pull
        - ssl_stream_cast
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:719,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:722,25'
          Dst:             SSL_get_state
        - Src:             'lib/stream-ssl.c:723,19'
          Dst:             SSL_write
        - Src:             'lib/stream-ssl.c:724,26'
          Dst:             SSL_get_state
        - Src:             'lib/stream-ssl.c:729,13'
          Dst:             ofpbuf_pull
        - Src:             'lib/stream-ssl.c:734,29'
          Dst:             SSL_get_error
        - Src:             'lib/stream-ssl.c:736,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:739,24'
          Dst:             interpret_ssl_error
    - functionName:    ssl_clear_txbuf
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 714
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_delete
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:712,5'
          Dst:             ofpbuf_delete
    - functionName:    ofpbuf_delete
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_uninit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/ofpbuf.h:174,9'
          Dst:             ofpbuf_uninit
    - functionName:    SSL_get_state
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_pull
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/ofpbuf.h:259,5'
          Dst:             ovs_ignore
    - functionName:    SSL_get_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    interpret_ssl_error
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          290
      EdgeCount:       74
      CyclomaticComplexity: 12
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - __errno_location
        - interpret_queued_ssl_error
        - ovs_strerror
        - vlog_rate_limit
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:618,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/stream-ssl.c:620,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:624,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:636,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:640,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:644,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:649,28'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:652,30'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:653,17'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:653,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:657,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:662,13'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:662,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:669,9'
          Dst:             interpret_queued_ssl_error
        - Src:             'lib/stream-ssl.c:673,9'
          Dst:             vlog_rate_limit
    - functionName:    interpret_queued_ssl_error
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:603,24'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:605,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:605,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:608,9'
          Dst:             vlog_rate_limit
    - functionName:    SSL_read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_connect
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_accept
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_wants_io
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 975
      functionLinenumberEnd: 977
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shutdown
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    do_ca_cert_bootstrap
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         81
      ICount:          408
      EdgeCount:       102
      CyclomaticComplexity: 23
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - PEM_write_X509
        - SSL_CTX_add_client_CA
        - SSL_CTX_load_verify_locations
        - SSL_CTX_set_cert_store
        - SSL_get_peer_cert_chain
        - X509_STORE_new
        - X509_check_issued
        - X509_verify_cert_error_string
        - __errno_location
        - fclose
        - fdopen
        - log_ca_cert
        - open
        - ovs_strerror
        - sk_X509_num
        - sk_X509_value
        - ssl_stream_cast
        - stream_ssl_set_ca_cert_file__
        - unlink
        - vlog
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:376,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:383,13'
          Dst:             SSL_get_peer_cert_chain
        - Src:             'lib/stream-ssl.c:384,20'
          Dst:             sk_X509_num
        - Src:             'lib/stream-ssl.c:385,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:389,33'
          Dst:             sk_X509_num
        - Src:             'lib/stream-ssl.c:389,12'
          Dst:             sk_X509_value
        - Src:             'lib/stream-ssl.c:393,13'
          Dst:             X509_check_issued
        - Src:             'lib/stream-ssl.c:395,9'
          Dst:             X509_verify_cert_error_string
        - Src:             'lib/stream-ssl.c:395,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:398,13'
          Dst:             sk_X509_num
        - Src:             'lib/stream-ssl.c:399,13'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:405,10'
          Dst:             open
        - Src:             'lib/stream-ssl.c:407,13'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:408,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:410,13'
          Dst:             stream_ssl_set_ca_cert_file__
        - Src:             'lib/stream-ssl.c:413,13'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:413,13'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:413,13'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:415,20'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:419,12'
          Dst:             fdopen
        - Src:             'lib/stream-ssl.c:421,17'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:422,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:422,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:424,9'
          Dst:             unlink
        - Src:             'lib/stream-ssl.c:428,10'
          Dst:             PEM_write_X509
        - Src:             'lib/stream-ssl.c:429,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:429,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:429,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:432,9'
          Dst:             fclose
        - Src:             'lib/stream-ssl.c:433,9'
          Dst:             unlink
        - Src:             'lib/stream-ssl.c:437,9'
          Dst:             fclose
        - Src:             'lib/stream-ssl.c:438,17'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:439,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:439,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:441,9'
          Dst:             unlink
        - Src:             'lib/stream-ssl.c:445,5'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:446,5'
          Dst:             log_ca_cert
        - Src:             'lib/stream-ssl.c:451,5'
          Dst:             SSL_CTX_add_client_CA
        - Src:             'lib/stream-ssl.c:453,33'
          Dst:             X509_STORE_new
        - Src:             'lib/stream-ssl.c:453,5'
          Dst:             SSL_CTX_set_cert_store
        - Src:             'lib/stream-ssl.c:454,9'
          Dst:             SSL_CTX_load_verify_locations
        - Src:             'lib/stream-ssl.c:455,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:455,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:455,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:459,5'
          Dst:             vlog
    - functionName:    SSL_get_verify_mode
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_get_servername
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_peer_common_name
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ASN1_STRING_get0_data
        - SSL_get_peer_certificate
        - X509_NAME_ENTRY_get_data
        - X509_NAME_get_entry
        - X509_NAME_get_index_by_NID
        - X509_free
        - X509_get_subject_name
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:468,23'
          Dst:             SSL_get_peer_certificate
        - Src:             'lib/stream-ssl.c:476,47'
          Dst:             X509_get_subject_name
        - Src:             'lib/stream-ssl.c:476,20'
          Dst:             X509_NAME_get_index_by_NID
        - Src:             'lib/stream-ssl.c:483,9'
          Dst:             X509_get_subject_name
        - Src:             'lib/stream-ssl.c:482,33'
          Dst:             X509_NAME_get_entry
        - Src:             'lib/stream-ssl.c:488,28'
          Dst:             X509_NAME_ENTRY_get_data
        - Src:             'lib/stream-ssl.c:493,40'
          Dst:             ASN1_STRING_get0_data
        - Src:             'lib/stream-ssl.c:493,17'
          Dst:             xstrdup
        - Src:             'lib/stream-ssl.c:496,5'
          Dst:             X509_free
    - functionName:    SSL_get_peer_certificate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_get_subject_name
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_NAME_get_index_by_NID
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_NAME_get_entry
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_NAME_ENTRY_get_data
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ASN1_STRING_get0_data
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_get_peer_cert_chain
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_X509_num
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_num
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_num
    - functionName:    sk_X509_value
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_value
    - functionName:    X509_check_issued
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_verify_cert_error_string
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_ssl_set_ca_cert_file__
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1469
      functionLinenumberEnd: 1504
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          176
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_load_verify_locations
        - SSL_CTX_set_cert_store
        - SSL_CTX_set_client_CA_list
        - SSL_load_client_CA_file
        - X509_STORE_new
        - __errno_location
        - stat
        - strcmp
        - update_ssl_config
        - vlog
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1472,10'
          Dst:             update_ssl_config
        - Src:             'lib/stream-ssl.c:1476,10'
          Dst:             strcmp
        - Src:             'lib/stream-ssl.c:1478,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1480,29'
          Dst:             stat
        - Src:             'lib/stream-ssl.c:1480,52'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:1483,43'
          Dst:             SSL_load_client_CA_file
        - Src:             'lib/stream-ssl.c:1487,13'
          Dst:             SSL_CTX_set_client_CA_list
        - Src:             'lib/stream-ssl.c:1491,41'
          Dst:             X509_STORE_new
        - Src:             'lib/stream-ssl.c:1491,13'
          Dst:             SSL_CTX_set_cert_store
        - Src:             'lib/stream-ssl.c:1492,17'
          Dst:             SSL_CTX_load_verify_locations
        - Src:             'lib/stream-ssl.c:1493,17'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1493,17'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1493,17'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1499,13'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1499,13'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1499,13'
          Dst:             vlog
    - functionName:    fdopen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PEM_write_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_ca_cert
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1441
      functionLinenumberEnd: 1464
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          112
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - CRYPTO_free
        - EVP_sha1
        - X509_NAME_oneline
        - X509_digest
        - X509_get_subject_name
        - ds_cstr
        - ds_destroy
        - ds_init
        - ds_put_char
        - ds_put_cstr
        - ds_put_format
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1447,5'
          Dst:             ds_init
        - Src:             'lib/stream-ssl.c:1448,28'
          Dst:             EVP_sha1
        - Src:             'lib/stream-ssl.c:1448,10'
          Dst:             X509_digest
        - Src:             'lib/stream-ssl.c:1449,9'
          Dst:             ds_put_cstr
        - Src:             'lib/stream-ssl.c:1454,17'
          Dst:             ds_put_char
        - Src:             'lib/stream-ssl.c:1456,13'
          Dst:             ds_put_format
        - Src:             'lib/stream-ssl.c:1459,33'
          Dst:             X509_get_subject_name
        - Src:             'lib/stream-ssl.c:1459,15'
          Dst:             X509_NAME_oneline
        - Src:             'lib/stream-ssl.c:1460,5'
          Dst:             ds_cstr
        - Src:             'lib/stream-ssl.c:1460,5'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1462,5'
          Dst:             CRYPTO_free
        - Src:             'lib/stream-ssl.c:1463,5'
          Dst:             ds_destroy
    - functionName:    SSL_CTX_add_client_CA
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_cert_store
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_load_verify_locations
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_sha1
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_digest
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    X509_NAME_oneline
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CRYPTO_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_ssl_config
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1108
      functionLinenumberEnd: 1137
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          161
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - get_mtime
        - ovs_strerror
        - ssl_init
        - strcmp
        - vlog_rate_limit
        - xstrdup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1112,9'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:1118,13'
          Dst:             get_mtime
        - Src:             'lib/stream-ssl.c:1120,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:1120,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:1124,13'
          Dst:             strcmp
        - Src:             'lib/stream-ssl.c:1134,29'
          Dst:             xstrdup
    - functionName:    SSL_load_client_CA_file
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_client_CA_list
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_init
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 982
      functionLinenumberEnd: 988
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - do_ssl_init
        - ovs_ignore
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:985,23'
          Dst:             do_ssl_init
        - Src:             'lib/stream-ssl.c:986,9'
          Dst:             ovs_ignore
    - functionName:    OPENSSL_sk_value
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    OPENSSL_sk_num
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_shutdown
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ERR_clear_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_server_name
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - inet_parse_host_port_tokens
        - ip_parse
        - ipv6_parse
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:332,20'
          Dst:             xstrdup
        - Src:             'lib/stream-ssl.c:335,5'
          Dst:             inet_parse_host_port_tokens
        - Src:             'lib/stream-ssl.c:339,26'
          Dst:             ip_parse
        - Src:             'lib/stream-ssl.c:339,51'
          Dst:             ipv6_parse
        - Src:             'lib/stream-ssl.c:340,35'
          Dst:             xstrdup
    - functionName:    stream_ssl_set_ca_cert_file
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1514
      functionLinenumberEnd: 1516
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_ssl_set_ca_cert_file__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1515,5'
          Dst:             stream_ssl_set_ca_cert_file__
    - functionName:    read_cert_file
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1409
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          209
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - PEM_read_X509
        - X509_free
        - __ctype_b_loc
        - __errno_location
        - fclose
        - fopen
        - getc
        - ovs_strerror
        - ungetc
        - vlog
        - x2nrealloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1364,12'
          Dst:             fopen
        - Src:             'lib/stream-ssl.c:1366,9'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:1366,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:1366,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1368,16'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:1376,16'
          Dst:             PEM_read_X509
        - Src:             'lib/stream-ssl.c:1380,13'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1380,13'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1380,13'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1383,17'
          Dst:             X509_free
        - Src:             'lib/stream-ssl.c:1388,13'
          Dst:             fclose
        - Src:             'lib/stream-ssl.c:1394,22'
          Dst:             x2nrealloc
        - Src:             'lib/stream-ssl.c:1400,17'
          Dst:             getc
        - Src:             'lib/stream-ssl.c:1401,30'
          Dst:             __ctype_b_loc
        - Src:             'lib/stream-ssl.c:1405,9'
          Dst:             ungetc
        - Src:             'lib/stream-ssl.c:1407,5'
          Dst:             fclose
    - functionName:    PEM_read_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ungetc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_ssl_set_peer_ca_cert_file
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1418
      functionLinenumberEnd: 1436
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          92
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_ctrl
        - read_cert_file
        - ssl_init
        - vlog
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1423,9'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:1427,10'
          Dst:             read_cert_file
        - Src:             'lib/stream-ssl.c:1429,17'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1430,17'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1430,17'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1430,17'
          Dst:             vlog
    - functionName:    bitmap_is_set
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bitmap_bit__
        - bitmap_unit__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/bitmap.h:91,14'
          Dst:             bitmap_unit__
        - Src:             'lib/bitmap.h:91,46'
          Dst:             bitmap_bit__
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    bitmap_set1
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bitmap_bit__
        - bitmap_unit__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/bitmap.h:97,39'
          Dst:             bitmap_bit__
        - Src:             'lib/bitmap.h:97,6'
          Dst:             bitmap_unit__
    - functionName:    stream_ssl_set_protocols
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1254
      functionLinenumberEnd: 1346
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         97
      ICount:          509
      EdgeCount:       125
      CyclomaticComplexity: 30
      functionsReached:
        - SSL_CTX_ctrl
        - bitmap_is_set
        - bitmap_set1
        - hmap_first
        - hmap_next
        - ovs_ignore
        - sset_add_and_free
        - sset_contains
        - sset_destroy
        - sset_find_and_delete
        - sset_from_delimited_string
        - sset_is_empty
        - ssl_init
        - strchr
        - strcmp
        - strlen
        - vlog
        - xmemdup0
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1255,9'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:1255,32'
          Dst:             strcmp
        - Src:             'lib/stream-ssl.c:1269,24'
          Dst:             strchr
        - Src:             'lib/stream-ssl.c:1271,15'
          Dst:             strlen
        - Src:             'lib/stream-ssl.c:1276,33'
          Dst:             xmemdup0
        - Src:             'lib/stream-ssl.c:1276,9'
          Dst:             sset_add_and_free
        - Src:             'lib/stream-ssl.c:1281,33'
          Dst:             xmemdup0
        - Src:             'lib/stream-ssl.c:1281,9'
          Dst:             sset_add_and_free
        - Src:             'lib/stream-ssl.c:1282,33'
          Dst:             xstrdup
        - Src:             'lib/stream-ssl.c:1282,9'
          Dst:             sset_add_and_free
        - Src:             'lib/stream-ssl.c:1285,9'
          Dst:             sset_from_delimited_string
        - Src:             'lib/stream-ssl.c:1288,9'
          Dst:             sset_is_empty
        - Src:             'lib/stream-ssl.c:1289,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1298,13'
          Dst:             sset_contains
        - Src:             'lib/stream-ssl.c:1302,17'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1304,13'
          Dst:             bitmap_set1
        - Src:             'lib/stream-ssl.c:1305,13'
          Dst:             sset_find_and_delete
        - Src:             'lib/stream-ssl.c:1309,10'
          Dst:             sset_is_empty
        - Src:             'lib/stream-ssl.c:1312,9'
          Dst:             hmap_first
        - Src:             'lib/stream-ssl.c:1312,9'
          Dst:             hmap_first
        - Src:             'lib/stream-ssl.c:1313,13'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1312,9'
          Dst:             hmap_next
        - Src:             'lib/stream-ssl.c:1312,9'
          Dst:             hmap_next
        - Src:             'lib/stream-ssl.c:1319,5'
          Dst:             ovs_ignore
        - Src:             'lib/stream-ssl.c:1320,5'
          Dst:             ovs_ignore
        - Src:             'lib/stream-ssl.c:1323,18'
          Dst:             bitmap_is_set
        - Src:             'lib/stream-ssl.c:1324,17'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1332,9'
          Dst:             ovs_ignore
        - Src:             'lib/stream-ssl.c:1337,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1338,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1339,5'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1342,21'
          Dst:             xstrdup
        - Src:             'lib/stream-ssl.c:1345,5'
          Dst:             sset_destroy
    - functionName:    stream_ssl_set_server_name
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1245
      functionLinenumberEnd: 1248
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nullable_xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1247,32'
          Dst:             nullable_xstrdup
    - functionName:    stream_ssl_set_ciphersuites
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1238
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          78
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_set_ciphersuites
        - ssl_init
        - strcmp
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1230,9'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:1230,32'
          Dst:             strcmp
        - Src:             'lib/stream-ssl.c:1233,9'
          Dst:             SSL_CTX_set_ciphersuites
        - Src:             'lib/stream-ssl.c:1234,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1234,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1234,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1237,24'
          Dst:             xstrdup
    - functionName:    SSL_CTX_set_ciphersuites
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_ssl_set_ciphers
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1214
      functionLinenumberEnd: 1223
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          78
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_set_cipher_list
        - ssl_init
        - strcmp
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1215,9'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:1215,32'
          Dst:             strcmp
        - Src:             'lib/stream-ssl.c:1218,9'
          Dst:             SSL_CTX_set_cipher_list
        - Src:             'lib/stream-ssl.c:1219,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1219,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1219,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1222,19'
          Dst:             xstrdup
    - functionName:    stream_ssl_set_key_and_cert
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1202
      functionLinenumberEnd: 1208
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          37
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - stream_ssl_set_certificate_file__
        - stream_ssl_set_private_key_file__
        - update_ssl_config
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1203,9'
          Dst:             update_ssl_config
        - Src:             'lib/stream-ssl.c:1204,12'
          Dst:             update_ssl_config
        - Src:             'lib/stream-ssl.c:1205,9'
          Dst:             stream_ssl_set_certificate_file__
        - Src:             'lib/stream-ssl.c:1206,9'
          Dst:             stream_ssl_set_private_key_file__
    - functionName:    stream_ssl_set_certificate_file__
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1160
      functionLinenumberEnd: 1167
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_use_certificate_file
        - vlog
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1161,9'
          Dst:             SSL_CTX_use_certificate_file
        - Src:             'lib/stream-ssl.c:1164,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1164,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1164,9'
          Dst:             vlog
    - functionName:    stream_ssl_set_private_key_file__
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1141
      functionLinenumberEnd: 1148
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_use_PrivateKey_file
        - vlog
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1142,9'
          Dst:             SSL_CTX_use_PrivateKey_file
        - Src:             'lib/stream-ssl.c:1145,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1145,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1145,9'
          Dst:             vlog
    - functionName:    SSL_CTX_use_PrivateKey_file
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_use_certificate_file
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_ssl_set_certificate_file
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1171
      functionLinenumberEnd: 1175
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - stream_ssl_set_certificate_file__
        - update_ssl_config
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1172,9'
          Dst:             update_ssl_config
        - Src:             'lib/stream-ssl.c:1173,9'
          Dst:             stream_ssl_set_certificate_file__
    - functionName:    stream_ssl_set_private_key_file
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1152
      functionLinenumberEnd: 1156
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - stream_ssl_set_private_key_file__
        - update_ssl_config
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1153,9'
          Dst:             update_ssl_config
        - Src:             'lib/stream-ssl.c:1154,9'
          Dst:             stream_ssl_set_private_key_file__
    - functionName:    stream_ssl_is_configured
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1102
      functionLinenumberEnd: 1103
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          25
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_dh4096
      functionSourceFile: '/src/openvswitch/lib/dhparams.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          69
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - BN_bin2bn
        - BN_free
        - DH_free
        - DH_new
        - my_DH_set0_pqg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dhparams.c:124,14'
          Dst:             DH_new
        - Src:             'lib/dhparams.c:129,9'
          Dst:             BN_bin2bn
        - Src:             'lib/dhparams.c:130,9'
          Dst:             BN_bin2bn
        - Src:             'lib/dhparams.c:132,17'
          Dst:             my_DH_set0_pqg
        - Src:             'lib/dhparams.c:133,9'
          Dst:             DH_free
        - Src:             'lib/dhparams.c:134,9'
          Dst:             BN_free
        - Src:             'lib/dhparams.c:135,9'
          Dst:             BN_free
    - functionName:    DH_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_bin2bn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    my_DH_set0_pqg
      functionSourceFile: '/src/openvswitch/lib/dhparams.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 14
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - DH_set0_pqg
        - ovs_ignore
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dhparams.c:13,5'
          Dst:             ovs_ignore
        - Src:             'lib/dhparams.c:14,12'
          Dst:             DH_set0_pqg
    - functionName:    DH_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    DH_set0_pqg
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_dh2048
      functionSourceFile: '/src/openvswitch/lib/dhparams.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          69
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - BN_bin2bn
        - BN_free
        - DH_free
        - DH_new
        - my_DH_set0_pqg
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dhparams.c:49,14'
          Dst:             DH_new
        - Src:             'lib/dhparams.c:54,9'
          Dst:             BN_bin2bn
        - Src:             'lib/dhparams.c:55,9'
          Dst:             BN_bin2bn
        - Src:             'lib/dhparams.c:57,17'
          Dst:             my_DH_set0_pqg
        - Src:             'lib/dhparams.c:58,9'
          Dst:             DH_free
        - Src:             'lib/dhparams.c:59,9'
          Dst:             BN_free
        - Src:             'lib/dhparams.c:60,9'
          Dst:             BN_free
    - functionName:    dns_resolve_destroy
      functionSourceFile: '/src/openvswitch/lib/dns-resolve-stub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dns_resolve
      functionSourceFile: '/src/openvswitch/lib/dns-resolve-stub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dns_resolve_init
      functionSourceFile: '/src/openvswitch/lib/dns-resolve-stub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_bindir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_dir
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             './lib/dirs.c.in:111,12'
          Dst:             get_dir
    - functionName:    get_dir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - getenv
        - ovsthread_once_done
        - ovsthread_once_start
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './lib/dirs.c.in:34,9'
          Dst:             ovsthread_once_start
        - Src:             './lib/dirs.c.in:35,20'
          Dst:             getenv
        - Src:             './lib/dirs.c.in:39,9'
          Dst:             ovsthread_once_done
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    ovs_dbdir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          62
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - getenv
        - ovsthread_once_done
        - ovsthread_once_start
        - xasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             './lib/dirs.c.in:90,9'
          Dst:             ovsthread_once_start
        - Src:             './lib/dirs.c.in:91,17'
          Dst:             getenv
        - Src:             './lib/dirs.c.in:93,32'
          Dst:             getenv
        - Src:             './lib/dirs.c.in:96,24'
          Dst:             xasprintf
        - Src:             './lib/dirs.c.in:99,9'
          Dst:             ovsthread_once_done
    - functionName:    ovs_logdir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_dir
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lib/dirs.c.in:81,12'
          Dst:             get_dir
    - functionName:    ovs_rundir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_dir
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             './lib/dirs.c.in:71,12'
          Dst:             get_dir
    - functionName:    ovs_pkgdatadir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_dir
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             './lib/dirs.c.in:61,12'
          Dst:             get_dir
    - functionName:    ovs_sysconfdir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_dir
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             './lib/dirs.c.in:51,12'
          Dst:             get_dir
    - functionName:    init_this_module_backtrace
      functionSourceFile: '/src/openvswitch/lib/backtrace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/backtrace.c:28,1'
          Dst:             vlog_insert_module
    - functionName:    read_received_backtrace
      functionSourceFile: '/src/openvswitch/lib/backtrace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          121
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - fcntl
        - ovs_strerror
        - read
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/backtrace.c:97,5'
          Dst:             vlog
        - Src:             'lib/backtrace.c:98,9'
          Dst:             fcntl
        - Src:             'lib/backtrace.c:99,9'
          Dst:             __errno_location
        - Src:             'lib/backtrace.c:99,9'
          Dst:             ovs_strerror
        - Src:             'lib/backtrace.c:99,9'
          Dst:             vlog
        - Src:             'lib/backtrace.c:104,21'
          Dst:             read
        - Src:             'lib/backtrace.c:106,9'
          Dst:             __errno_location
        - Src:             'lib/backtrace.c:106,9'
          Dst:             ovs_strerror
        - Src:             'lib/backtrace.c:106,9'
          Dst:             vlog
    - functionName:    log_received_backtrace
      functionSourceFile: '/src/openvswitch/lib/backtrace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          93
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - backtrace_format
        - ds_cstr_ro
        - ds_destroy
        - ds_put_cstr
        - read_received_backtrace
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/backtrace.c:152,9'
          Dst:             read_received_backtrace
        - Src:             'lib/backtrace.c:157,9'
          Dst:             ds_put_cstr
        - Src:             'lib/backtrace.c:158,9'
          Dst:             backtrace_format
        - Src:             'lib/backtrace.c:159,9'
          Dst:             ds_cstr_ro
        - Src:             'lib/backtrace.c:159,9'
          Dst:             vlog
        - Src:             'lib/backtrace.c:161,9'
          Dst:             ds_destroy
    - functionName:    backtrace_format
      functionSourceFile: '/src/openvswitch/lib/backtrace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - backtrace_symbols
        - ds_put_format
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/backtrace.c:43,26'
          Dst:             backtrace_symbols
        - Src:             'lib/backtrace.c:50,13'
          Dst:             ds_put_format
        - Src:             'lib/backtrace.c:53,9'
          Dst:             ds_put_format
    - functionName:    backtrace_symbols
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_backtrace_at
      functionSourceFile: '/src/openvswitch/lib/backtrace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - backtrace_capture
        - backtrace_format
        - ds_cstr_ro
        - ds_destroy
        - ds_put_cstr
        - ds_put_format
        - vlog
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/backtrace.c:80,5'
          Dst:             backtrace_capture
        - Src:             'lib/backtrace.c:82,9'
          Dst:             ds_put_format
        - Src:             'lib/backtrace.c:85,5'
          Dst:             ds_put_cstr
        - Src:             'lib/backtrace.c:86,5'
          Dst:             ds_put_cstr
        - Src:             'lib/backtrace.c:87,5'
          Dst:             backtrace_format
        - Src:             'lib/backtrace.c:88,5'
          Dst:             ds_cstr_ro
        - Src:             'lib/backtrace.c:88,5'
          Dst:             vlog
        - Src:             'lib/backtrace.c:90,5'
          Dst:             ds_destroy
    - functionName:    backtrace_capture
      functionSourceFile: '/src/openvswitch/lib/backtrace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - backtrace
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/backtrace.c:35,19'
          Dst:             backtrace
    - functionName:    backtrace
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    byteq_fast_forward
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - byteq_is_empty
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:210,16'
          Dst:             byteq_is_empty
        - Src:             'lib/byteq.c:210,5'
          Dst:             ovs_ignore
    - functionName:    byteq_is_empty
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_used
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:56,13'
          Dst:             byteq_used
    - functionName:    byteq_used
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    byteq_read
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          66
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - byteq_advance_head
        - byteq_head
        - byteq_headroom
        - byteq_is_full
        - read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:137,13'
          Dst:             byteq_is_full
        - Src:             'lib/byteq.c:138,30'
          Dst:             byteq_head
        - Src:             'lib/byteq.c:138,45'
          Dst:             byteq_headroom
        - Src:             'lib/byteq.c:138,21'
          Dst:             read
        - Src:             'lib/byteq.c:140,13'
          Dst:             byteq_advance_head
        - Src:             'lib/byteq.c:142,31'
          Dst:             __errno_location
    - functionName:    byteq_is_full
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_avail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:64,13'
          Dst:             byteq_avail
    - functionName:    byteq_head
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    byteq_headroom
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - byteq_avail
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:188,17'
          Dst:             byteq_avail
    - functionName:    byteq_advance_head
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_headroom
        - ovs_ignore
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:198,16'
          Dst:             byteq_headroom
        - Src:             'lib/byteq.c:198,5'
          Dst:             ovs_ignore
    - functionName:    byteq_avail
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_used
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:48,22'
          Dst:             byteq_used
    - functionName:    byteq_advance_tail
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_tailroom
        - ovs_ignore
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:171,16'
          Dst:             byteq_tailroom
        - Src:             'lib/byteq.c:171,5'
          Dst:             ovs_ignore
    - functionName:    byteq_tailroom
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - byteq_used
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:153,16'
          Dst:             byteq_used
    - functionName:    byteq_write
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - byteq_advance_tail
        - byteq_is_empty
        - byteq_tail
        - byteq_tailroom
        - ovs_ignore
        - write
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:118,13'
          Dst:             byteq_is_empty
        - Src:             'lib/byteq.c:119,31'
          Dst:             byteq_tail
        - Src:             'lib/byteq.c:119,46'
          Dst:             byteq_tailroom
        - Src:             'lib/byteq.c:119,21'
          Dst:             write
        - Src:             'lib/byteq.c:121,13'
          Dst:             byteq_advance_tail
        - Src:             'lib/byteq.c:123,13'
          Dst:             ovs_ignore
        - Src:             'lib/byteq.c:124,20'
          Dst:             __errno_location
    - functionName:    byteq_tail
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    byteq_get
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_is_empty
        - byteq_tail
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:106,17'
          Dst:             byteq_is_empty
        - Src:             'lib/byteq.c:106,5'
          Dst:             ovs_ignore
        - Src:             'lib/byteq.c:107,10'
          Dst:             byteq_tail
    - functionName:    byteq_put_string
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_putn
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:97,22'
          Dst:             strlen
        - Src:             'lib/byteq.c:97,5'
          Dst:             byteq_putn
    - functionName:    byteq_putn
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - byteq_advance_head
        - byteq_avail
        - byteq_head
        - byteq_headroom
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:82,16'
          Dst:             byteq_avail
        - Src:             'lib/byteq.c:82,5'
          Dst:             ovs_ignore
        - Src:             'lib/byteq.c:84,24'
          Dst:             byteq_headroom
        - Src:             'lib/byteq.c:84,24'
          Dst:             byteq_headroom
        - Src:             'lib/byteq.c:85,16'
          Dst:             byteq_head
        - Src:             'lib/byteq.c:86,9'
          Dst:             byteq_advance_head
    - functionName:    byteq_put
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_head
        - byteq_is_full
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:71,17'
          Dst:             byteq_is_full
        - Src:             'lib/byteq.c:71,5'
          Dst:             ovs_ignore
        - Src:             'lib/byteq.c:72,6'
          Dst:             byteq_head
    - functionName:    is_pow2
      functionSourceFile: '/src/openvswitch/./include/openvswitch/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    byteq_init
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - is_pow2
        - ovs_ignore
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:31,16'
          Dst:             is_pow2
        - Src:             'lib/byteq.c:31,5'
          Dst:             ovs_ignore
    - functionName:    init_this_module_command_line
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:28,1'
          Dst:             vlog_insert_module
    - functionName:    ovs_cmdl_proctitle_restore
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:388,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/command-line.c:394,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_cmdl_proctitle_set
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          114
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - snprintf
        - strcpy
        - vsnprintf
        - xmemdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:356,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/command-line.c:362,27'
          Dst:             xmemdup
        - Src:             'lib/command-line.c:366,9'
          Dst:             snprintf
        - Src:             'lib/command-line.c:368,14'
          Dst:             vsnprintf
        - Src:             'lib/command-line.c:372,9'
          Dst:             strcpy
        - Src:             'lib/command-line.c:381,5'
          Dst:             ovs_mutex_unlock
    - functionName:    strcpy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_cmdl_proctitle_init
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          139
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - assert_single_threaded_at
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - strlen
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:315,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/command-line.c:321,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/command-line.c:324,17'
          Dst:             strlen
        - Src:             'lib/command-line.c:325,15'
          Dst:             xstrdup
        - Src:             'lib/command-line.c:328,23'
          Dst:             strlen
        - Src:             'lib/command-line.c:343,19'
          Dst:             xstrdup
        - Src:             'lib/command-line.c:345,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_cmdl_run_command_read_only
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_cmdl_run_command__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:285,5'
          Dst:             ovs_cmdl_run_command__
    - functionName:    ovs_cmdl_run_command__
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          165
      EdgeCount:       26
      CyclomaticComplexity: 4
      functionsReached:
        - ferror
        - ovs_fatal
        - strcmp
        - vlog_fatal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:230,9'
          Dst:             ovs_fatal
        - Src:             'lib/command-line.c:234,14'
          Dst:             strcmp
        - Src:             'lib/command-line.c:237,17'
          Dst:             vlog_fatal
        - Src:             'lib/command-line.c:240,17'
          Dst:             vlog_fatal
        - Src:             'lib/command-line.c:244,21'
          Dst:             vlog_fatal
        - Src:             'lib/command-line.c:248,21'
          Dst:             ferror
        - Src:             'lib/command-line.c:249,21'
          Dst:             vlog_fatal
        - Src:             'lib/command-line.c:251,21'
          Dst:             ferror
        - Src:             'lib/command-line.c:252,21'
          Dst:             vlog_fatal
        - Src:             'lib/command-line.c:259,5'
          Dst:             vlog_fatal
    - functionName:    ovs_cmdl_run_command
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_cmdl_run_command__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:278,5'
          Dst:             ovs_cmdl_run_command__
    - functionName:    ovs_cmdl_print_options
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          125
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - ds_destroy
        - ds_put_format
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:212,9'
          Dst:             ds_put_format
        - Src:             'lib/command-line.c:215,13'
          Dst:             ds_put_format
        - Src:             'lib/command-line.c:218,5'
          Dst:             printf
        - Src:             'lib/command-line.c:219,5'
          Dst:             ds_destroy
    - functionName:    ovs_cmdl_print_commands
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ds_destroy
        - ds_put_cstr
        - ds_put_format
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:193,5'
          Dst:             ds_put_cstr
        - Src:             'lib/command-line.c:196,9'
          Dst:             ds_put_format
        - Src:             'lib/command-line.c:198,5'
          Dst:             printf
        - Src:             'lib/command-line.c:199,5'
          Dst:             ds_destroy
    - functionName:    find_option_by_value
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    build_short_options
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_cmdl_long_options_to_short_options
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:61,11'
          Dst:             ovs_cmdl_long_options_to_short_options
        - Src:             'lib/command-line.c:62,21'
          Dst:             xasprintf
    - functionName:    ovs_cmdl_long_options_to_short_options
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          116
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:53,12'
          Dst:             xstrdup
    - functionName:    ovs_cmdl_parse_all
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          237
      EdgeCount:       38
      CyclomaticComplexity: 7
      functionsReached:
        - abort
        - build_short_options
        - find_option_by_value
        - getopt_long
        - ovs_ignore
        - x2nrealloc
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/command-line.c:132,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/command-line.c:119,27'
          Dst:             build_short_options
        - Src:             'lib/command-line.c:131,17'
          Dst:             getopt_long
        - Src:             'lib/command-line.c:143,13'
          Dst:             abort
        - Src:             'lib/command-line.c:146,27'
          Dst:             find_option_by_value
        - Src:             'lib/command-line.c:147,25'
          Dst:             xasprintf
        - Src:             'lib/command-line.c:150,25'
          Dst:             xasprintf
        - Src:             'lib/command-line.c:152,25'
          Dst:             xasprintf
        - Src:             'lib/command-line.c:158,21'
          Dst:             xasprintf
        - Src:             'lib/command-line.c:164,22'
          Dst:             x2nrealloc
        - Src:             'lib/command-line.c:167,30'
          Dst:             find_option_by_value
        - Src:             'lib/command-line.c:169,17'
          Dst:             ovs_ignore
    - functionName:    getopt_long
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_cmdl_env_parse_all
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_ignore
        - svec_add
        - svec_parse_words
        - svec_terminate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:88,5'
          Dst:             ovs_ignore
        - Src:             'lib/command-line.c:91,5'
          Dst:             svec_add
        - Src:             'lib/command-line.c:93,9'
          Dst:             svec_parse_words
        - Src:             'lib/command-line.c:96,9'
          Dst:             svec_add
        - Src:             'lib/command-line.c:98,5'
          Dst:             svec_terminate
    - functionName:    init_this_module_cooperative_multitasking
      functionSourceFile: '/src/openvswitch/lib/cooperative-multitasking.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/cooperative-multitasking.c:27,1'
          Dst:             vlog_insert_module
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_2words
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:154,33'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,24'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,12'
          Dst:             hash_finish
    - functionName:    hash_int
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_2words
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:409,12'
          Dst:             hash_2words
    - functionName:    hmap_next_with_hash__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cooperative_multitasking_yield_at__
      functionSourceFile: '/src/openvswitch/lib/cooperative-multitasking.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          183
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - hmap_first
        - hmap_next
        - log_backtrace_at
        - time_msec
        - vlog
        - vlog_is_enabled
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/cooperative-multitasking.c:106,27'
          Dst:             time_msec
        - Src:             'lib/cooperative-multitasking.c:111,5'
          Dst:             hmap_first
        - Src:             'lib/cooperative-multitasking.c:112,19'
          Dst:             time_msec
        - Src:             'lib/cooperative-multitasking.c:117,13'
          Dst:             vlog
        - Src:             'lib/cooperative-multitasking.c:122,25'
          Dst:             vlog_is_enabled
        - Src:             'lib/cooperative-multitasking.c:123,17'
          Dst:             log_backtrace_at
        - Src:             'lib/cooperative-multitasking.c:111,5'
          Dst:             hmap_next
        - Src:             'lib/cooperative-multitasking.c:130,15'
          Dst:             time_msec
        - Src:             'lib/cooperative-multitasking.c:132,9'
          Dst:             vlog
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    cooperative_multitasking_yield_at
      functionSourceFile: '/src/openvswitch/lib/cooperative-multitasking.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          70
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - cooperative_multitasking_yield_at__
        - log_backtrace_at
        - ovsthread_once_done
        - ovsthread_once_start
        - vlog
        - vlog_is_enabled
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/cooperative-multitasking.c:144,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/cooperative-multitasking.c:144,9'
          Dst:             vlog
        - Src:             'lib/cooperative-multitasking.c:144,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/cooperative-multitasking.c:146,13'
          Dst:             vlog_is_enabled
        - Src:             'lib/cooperative-multitasking.c:147,13'
          Dst:             vlog
        - Src:             'lib/cooperative-multitasking.c:148,13'
          Dst:             log_backtrace_at
        - Src:             'lib/cooperative-multitasking.c:154,5'
          Dst:             cooperative_multitasking_yield_at__
    - functionName:    cooperative_multitasking_remove
      functionSourceFile: '/src/openvswitch/lib/cooperative-multitasking.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          83
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hash_pointer
        - hmap_first_with_hash
        - hmap_next_with_hash
        - hmap_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/cooperative-multitasking.c:93,5'
          Dst:             hash_pointer
        - Src:             'lib/cooperative-multitasking.c:93,5'
          Dst:             hmap_first_with_hash
        - Src:             'lib/cooperative-multitasking.c:96,13'
          Dst:             hmap_remove
        - Src:             'lib/cooperative-multitasking.c:93,5'
          Dst:             hmap_next_with_hash
    - functionName:    hash_pointer
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_int
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:149,12'
          Dst:             hash_int
    - functionName:    hmap_first_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:360,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hmap_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          48
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:396,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    cooperative_multitasking_set
      functionSourceFile: '/src/openvswitch/lib/cooperative-multitasking.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          154
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - hash_pointer
        - hmap_first_with_hash
        - hmap_insert_at
        - hmap_next_with_hash
        - time_msec
        - xzalloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/cooperative-multitasking.c:62,5'
          Dst:             hash_pointer
        - Src:             'lib/cooperative-multitasking.c:62,5'
          Dst:             hmap_first_with_hash
        - Src:             'lib/cooperative-multitasking.c:62,5'
          Dst:             hmap_next_with_hash
        - Src:             'lib/cooperative-multitasking.c:76,16'
          Dst:             xzalloc
        - Src:             'lib/cooperative-multitasking.c:80,48'
          Dst:             time_msec
        - Src:             'lib/cooperative-multitasking.c:83,5'
          Dst:             hash_pointer
        - Src:             'lib/cooperative-multitasking.c:83,5'
          Dst:             hmap_insert_at
    - functionName:    cooperative_multitasking_destroy
      functionSourceFile: '/src/openvswitch/lib/cooperative-multitasking.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          55
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - hmap_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/cooperative-multitasking.c:37,5'
          Dst:             hmap_first
        - Src:             'lib/cooperative-multitasking.c:37,5'
          Dst:             hmap_next
        - Src:             'lib/cooperative-multitasking.c:38,9'
          Dst:             hmap_remove
    - functionName:    init_this_module_coverage
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:29,1'
          Dst:             vlog_insert_module
    - functionName:    coverage_clear_time_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    coverage_clear_time_get
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_clear_time_get_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:38,1'
          Dst:             coverage_clear_time_get_unsafe
    - functionName:    coverage_array_sum
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:392,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/coverage.c:396,5'
          Dst:             ovs_mutex_unlock
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_2words
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:154,33'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,24'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,12'
          Dst:             hash_finish
    - functionName:    hash_string
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_bytes
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:404,26'
          Dst:             strlen
        - Src:             'lib/hash.h:404,12'
          Dst:             hash_bytes
    - functionName:    hash_int
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_2words
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:409,12'
          Dst:             hash_2words
    - functionName:    compare_coverage_counters
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          67
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:117,16'
          Dst:             strcmp
    - functionName:    coverage_read_counter
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:406,14'
          Dst:             strcmp
        - Src:             'lib/coverage.c:407,13'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/coverage.c:410,13'
          Dst:             ovs_mutex_unlock
    - functionName:    coverage_run
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         23
      ICount:          224
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - time_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:334,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/coverage.c:335,11'
          Dst:             time_msec
        - Src:             'lib/coverage.c:383,5'
          Dst:             ovs_mutex_unlock
    - functionName:    coverage_try_clear
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_clear__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:321,5'
          Dst:             coverage_clear__
    - functionName:    coverage_clear__
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          110
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - coverage_clear_time_get
        - ovs_mutex_lock_at
        - ovs_mutex_trylock_at
        - ovs_mutex_unlock
        - time_msec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:283,11'
          Dst:             time_msec
        - Src:             'lib/coverage.c:284,19'
          Dst:             coverage_clear_time_get
        - Src:             'lib/coverage.c:296,17'
          Dst:             ovs_mutex_trylock_at
        - Src:             'lib/coverage.c:300,13'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/coverage.c:307,9'
          Dst:             ovs_mutex_unlock
    - functionName:    coverage_clear
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_clear__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:315,5'
          Dst:             coverage_clear__
    - functionName:    coverage_read
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          148
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - coverage_array_sum
        - coverage_hash
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - svec_add_nocopy
        - xasprintf
        - xmalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:231,12'
          Dst:             coverage_hash
        - Src:             'lib/coverage.c:235,21'
          Dst:             xasprintf
        - Src:             'lib/coverage.c:234,5'
          Dst:             svec_add_nocopy
        - Src:             'lib/coverage.c:240,14'
          Dst:             xmalloc
        - Src:             'lib/coverage.c:241,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/coverage.c:246,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/coverage.c:258,27'
          Dst:             coverage_array_sum
        - Src:             'lib/coverage.c:259,27'
          Dst:             coverage_array_sum
        - Src:             'lib/coverage.c:254,17'
          Dst:             xasprintf
        - Src:             'lib/coverage.c:253,13'
          Dst:             svec_add_nocopy
        - Src:             'lib/coverage.c:266,28'
          Dst:             xasprintf
        - Src:             'lib/coverage.c:266,5'
          Dst:             svec_add_nocopy
    - functionName:    coverage_hash
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         20
      ICount:          146
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - compare_coverage_counters
        - hash_int
        - hash_string
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - qsort
        - xmalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:129,9'
          Dst:             xmalloc
        - Src:             'lib/coverage.c:130,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/coverage.c:134,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/coverage.c:135,5'
          Dst:             qsort
        - Src:             'lib/coverage.c:135,5'
          Dst:             compare_coverage_counters
        - Src:             'lib/coverage.c:146,16'
          Dst:             hash_int
        - Src:             'lib/coverage.c:151,20'
          Dst:             hash_string
        - Src:             'lib/coverage.c:158,12'
          Dst:             hash_int
    - functionName:    coverage_hit
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - time_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:175,9'
          Dst:             time_msec
        - Src:             'lib/coverage.c:177,22'
          Dst:             time_msec
    - functionName:    coverage_log
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         26
      ICount:          112
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - coverage_hash
        - coverage_hit
        - coverage_read
        - svec_destroy
        - svec_init
        - vlog
        - vlog_should_drop
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:200,10'
          Dst:             vlog_should_drop
        - Src:             'lib/coverage.c:201,25'
          Dst:             coverage_hash
        - Src:             'lib/coverage.c:202,13'
          Dst:             coverage_hit
        - Src:             'lib/coverage.c:203,13'
          Dst:             vlog
        - Src:             'lib/coverage.c:210,13'
          Dst:             svec_init
        - Src:             'lib/coverage.c:211,13'
          Dst:             coverage_read
        - Src:             'lib/coverage.c:213,17'
          Dst:             vlog
        - Src:             'lib/coverage.c:215,13'
          Dst:             svec_destroy
    - functionName:    coverage_unixctl_read_counter
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - coverage_read_counter
        - unixctl_command_reply
        - unixctl_command_reply_error
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:85,10'
          Dst:             coverage_read_counter
        - Src:             'lib/coverage.c:87,9'
          Dst:             unixctl_command_reply_error
        - Src:             'lib/coverage.c:91,13'
          Dst:             xasprintf
        - Src:             'lib/coverage.c:92,5'
          Dst:             unixctl_command_reply
    - functionName:    coverage_unixctl_show
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_read
        - svec_destroy
        - svec_init
        - svec_join
        - unixctl_command_reply
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:69,5'
          Dst:             svec_init
        - Src:             'lib/coverage.c:70,5'
          Dst:             coverage_read
        - Src:             'lib/coverage.c:71,13'
          Dst:             svec_join
        - Src:             'lib/coverage.c:72,5'
          Dst:             unixctl_command_reply
        - Src:             'lib/coverage.c:74,5'
          Dst:             svec_destroy
    - functionName:    coverage_init
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_unixctl_read_counter
        - coverage_unixctl_show
        - unixctl_command_register
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:99,5'
          Dst:             unixctl_command_register
        - Src:             'lib/coverage.c:99,5'
          Dst:             coverage_unixctl_show
        - Src:             'lib/coverage.c:101,5'
          Dst:             unixctl_command_register
        - Src:             'lib/coverage.c:101,5'
          Dst:             coverage_unixctl_read_counter
    - functionName:    coverage_counter_register
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - x2nrealloc
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:55,29'
          Dst:             x2nrealloc
    - functionName:    ds_clone
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          62
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_init
        - xmalloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:518,9'
          Dst:             ds_init
        - Src:             'lib/dynamic-string.c:523,19'
          Dst:             xmalloc
    - functionName:    ds_init
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_chomp
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          57
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_last
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_put_sparse_hex_dump
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_hex_dump__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:494,5'
          Dst:             ds_put_hex_dump__
    - functionName:    ds_put_hex_dump__
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          269
      EdgeCount:       61
      CyclomaticComplexity: 15
      functionsReached:
        - ds_chomp
        - ds_put_char
        - ds_put_format
        - is_all_zeros
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:439,32'
          Dst:             is_all_zeros
        - Src:             'lib/dynamic-string.c:444,9'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:447,13'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:450,13'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:455,17'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:456,13'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:458,17'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:461,17'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:464,17'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:465,13'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:467,13'
          Dst:             ds_chomp
        - Src:             'lib/dynamic-string.c:469,9'
          Dst:             ds_put_format
    - functionName:    ds_put_format
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_format_valist
      functionUses:    76
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:143,5'
          Dst:             ds_put_format_valist
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    ds_put_char__
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_uninit
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:83,6'
          Dst:             ds_put_uninit
    - functionName:    ds_put_uninit
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_reserve
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:74,5'
          Dst:             ds_reserve
    - functionName:    ds_reserve
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - xrealloc
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:64,22'
          Dst:             xrealloc
    - functionName:    ds_put_format_valist
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          142
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ds_reserve
        - ovs_ignore
        - vsnprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:156,14'
          Dst:             vsnprintf
        - Src:             'lib/dynamic-string.c:165,9'
          Dst:             ds_reserve
        - Src:             'lib/dynamic-string.c:169,18'
          Dst:             vsnprintf
        - Src:             'lib/dynamic-string.c:173,9'
          Dst:             ovs_ignore
    - functionName:    ds_put_hex_dump
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_hex_dump__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:485,5'
          Dst:             ds_put_hex_dump__
    - functionName:    ds_put_hex_with_delimiter
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ds_put_format
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:415,13'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:417,9'
          Dst:             ds_put_format
    - functionName:    ds_put_hex
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          100
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ds_put_char
        - ds_put_format
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:394,17'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:396,17'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:402,9'
          Dst:             ds_put_char
    - functionName:    ds_swap
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_destroy
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_steal_cstr
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_cstr
        - ds_init
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:363,15'
          Dst:             ds_cstr
        - Src:             'lib/dynamic-string.c:364,5'
          Dst:             ds_init
    - functionName:    ds_cstr
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_reserve
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:345,9'
          Dst:             ds_reserve
    - functionName:    ds_cstr_ro
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_cstr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:354,12'
          Dst:             ds_cstr
    - functionName:    ds_get_test_line
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          83
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ds_cstr
        - ds_get_line
        - putchar
        - puts
        - strchr
        - strspn
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:317,18'
          Dst:             ds_get_line
        - Src:             'lib/dynamic-string.c:322,13'
          Dst:             ds_cstr
        - Src:             'lib/dynamic-string.c:324,13'
          Dst:             puts
        - Src:             'lib/dynamic-string.c:328,19'
          Dst:             strchr
        - Src:             'lib/dynamic-string.c:332,15'
          Dst:             strspn
        - Src:             'lib/dynamic-string.c:333,13'
          Dst:             putchar
    - functionName:    ds_get_line
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - ds_clear
        - ds_put_char
        - getc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:247,5'
          Dst:             ds_clear
        - Src:             'lib/dynamic-string.c:249,17'
          Dst:             getc
        - Src:             'lib/dynamic-string.c:255,13'
          Dst:             ds_put_char
    - functionName:    puts
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    putchar
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_clear
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_get_preprocessed_line
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          85
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ds_cstr
        - ds_get_line
        - strchr
        - strspn
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:271,13'
          Dst:             ds_get_line
        - Src:             'lib/dynamic-string.c:272,22'
          Dst:             ds_cstr
        - Src:             'lib/dynamic-string.c:280,19'
          Dst:             strchr
        - Src:             'lib/dynamic-string.c:286,18'
          Dst:             strspn
    - functionName:    xastrftime_msec
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_init
        - ds_put_strftime_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:239,5'
          Dst:             ds_init
        - Src:             'lib/dynamic-string.c:240,5'
          Dst:             ds_put_strftime_msec
    - functionName:    ds_put_strftime_msec
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          99
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ds_reserve
        - gmtime_msec
        - localtime_msec
        - strftime_msec
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:214,9'
          Dst:             gmtime_msec
        - Src:             'lib/dynamic-string.c:216,9'
          Dst:             localtime_msec
        - Src:             'lib/dynamic-string.c:219,5'
          Dst:             ds_reserve
        - Src:             'lib/dynamic-string.c:223,23'
          Dst:             strftime_msec
        - Src:             'lib/dynamic-string.c:228,9'
          Dst:             ds_reserve
    - functionName:    ds_put_uuid
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_uninit
        - snprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:201,14'
          Dst:             ds_put_uninit
        - Src:             'lib/dynamic-string.c:201,5'
          Dst:             snprintf
    - functionName:    ds_put_printable
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          89
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ds_put_char
        - ds_put_format
        - ds_reserve
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:181,5'
          Dst:             ds_reserve
        - Src:             'lib/dynamic-string.c:185,13'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:187,13'
          Dst:             ds_put_char
    - functionName:    ds_put_and_free_cstr
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_cstr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:133,5'
          Dst:             ds_put_cstr
    - functionName:    ds_put_cstr
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_uninit
        - strlen
      functionUses:    65
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:126,20'
          Dst:             strlen
        - Src:             'lib/dynamic-string.c:127,12'
          Dst:             ds_put_uninit
    - functionName:    ds_put_buffer
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_uninit
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:120,12'
          Dst:             ds_put_uninit
    - functionName:    ds_put_char_multiple
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_uninit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:114,12'
          Dst:             ds_put_uninit
    - functionName:    ds_put_utf8
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          117
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ds_put_char
        - ds_put_utf8
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:91,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:93,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:94,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:96,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:97,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:98,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:100,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:101,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:102,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:103,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:107,9'
          Dst:             ds_put_utf8
    - functionName:    ds_truncate
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          33
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_entropy
      functionSourceFile: '/src/openvswitch/lib/entropy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/entropy.c:27,1'
          Dst:             vlog_insert_module
    - functionName:    get_entropy_or_die
      functionSourceFile: '/src/openvswitch/lib/entropy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          34
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - get_entropy
        - ovs_retval_to_string
        - vlog_fatal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/entropy.c:60,17'
          Dst:             get_entropy
        - Src:             'lib/entropy.c:62,9'
          Dst:             ovs_retval_to_string
        - Src:             'lib/entropy.c:62,9'
          Dst:             vlog_fatal
    - functionName:    get_entropy
      functionSourceFile: '/src/openvswitch/lib/entropy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          109
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - close
        - open
        - ovs_retval_to_string
        - ovs_strerror
        - read_fully
        - vlog
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/entropy.c:40,10'
          Dst:             open
        - Src:             'lib/entropy.c:42,9'
          Dst:             __errno_location
        - Src:             'lib/entropy.c:42,9'
          Dst:             ovs_strerror
        - Src:             'lib/entropy.c:42,9'
          Dst:             vlog
        - Src:             'lib/entropy.c:43,16'
          Dst:             __errno_location
        - Src:             'lib/entropy.c:43,24'
          Dst:             __errno_location
        - Src:             'lib/entropy.c:46,13'
          Dst:             read_fully
        - Src:             'lib/entropy.c:47,5'
          Dst:             close
        - Src:             'lib/entropy.c:50,9'
          Dst:             ovs_retval_to_string
        - Src:             'lib/entropy.c:50,9'
          Dst:             vlog
    - functionName:    init_this_module_fatal_signal
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:50,1'
          Dst:             vlog_insert_module
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    do_unlink_files
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          63
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - hmap_first
        - hmap_next
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:464,5'
          Dst:             hmap_first
        - Src:             'lib/fatal-signal.c:464,5'
          Dst:             hmap_first
        - Src:             'lib/fatal-signal.c:465,9'
          Dst:             unlink
        - Src:             'lib/fatal-signal.c:464,5'
          Dst:             hmap_next
        - Src:             'lib/fatal-signal.c:464,5'
          Dst:             hmap_next
    - functionName:    fatal_signal_block
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sigaddset
        - sigemptyset
        - xpthread_sigmask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:513,5'
          Dst:             sigemptyset
        - Src:             'lib/fatal-signal.c:516,9'
          Dst:             sigaddset
        - Src:             'lib/fatal-signal.c:518,5'
          Dst:             xpthread_sigmask
    - functionName:    sigemptyset
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sigaddset
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fatal_signal_destroy_wakeup_events
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:87,5'
          Dst:             close
        - Src:             'lib/fatal-signal.c:89,5'
          Dst:             close
    - functionName:    fatal_signal_fork
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - assert_single_threaded_at
        - fatal_signal_create_wakeup_events
        - fatal_signal_destroy_wakeup_events
        - raise
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:485,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/fatal-signal.c:487,5'
          Dst:             fatal_signal_destroy_wakeup_events
        - Src:             'lib/fatal-signal.c:488,5'
          Dst:             fatal_signal_create_wakeup_events
        - Src:             'lib/fatal-signal.c:501,9'
          Dst:             raise
    - functionName:    fatal_signal_create_wakeup_events
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xpipe_nonblocking
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:81,5'
          Dst:             xpipe_nonblocking
    - functionName:    raise
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fatal_signal_unlink_file_now
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          71
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - fatal_signal_init
        - fatal_signal_remove_file_to_unlink
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strerror
        - unlink
        - vlog
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:430,5'
          Dst:             fatal_signal_init
        - Src:             'lib/fatal-signal.c:432,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/fatal-signal.c:434,13'
          Dst:             unlink
        - Src:             'lib/fatal-signal.c:434,28'
          Dst:             __errno_location
        - Src:             'lib/fatal-signal.c:436,9'
          Dst:             ovs_strerror
        - Src:             'lib/fatal-signal.c:436,9'
          Dst:             vlog
        - Src:             'lib/fatal-signal.c:439,5'
          Dst:             fatal_signal_remove_file_to_unlink
        - Src:             'lib/fatal-signal.c:441,5'
          Dst:             ovs_mutex_unlock
    - functionName:    fatal_signal_init
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          76
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - assert_single_threaded_at
        - atexit
        - backtrace_capture
        - fatal_signal_atexit_handler
        - fatal_signal_create_wakeup_events
        - fatal_signal_handler
        - ovs_mutex_init_recursive
        - ovs_strerror
        - signal
        - vlog_fatal
        - xsigaction
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:106,9'
          Dst:             assert_single_threaded_at
        - Src:             'lib/fatal-signal.c:109,9'
          Dst:             ovs_mutex_init_recursive
        - Src:             'lib/fatal-signal.c:115,9'
          Dst:             backtrace_capture
        - Src:             'lib/fatal-signal.c:117,9'
          Dst:             fatal_signal_create_wakeup_events
        - Src:             'lib/fatal-signal.c:123,13'
          Dst:             xsigaction
        - Src:             'lib/fatal-signal.c:125,20'
          Dst:             signal
        - Src:             'lib/fatal-signal.c:125,20'
          Dst:             fatal_signal_handler
        - Src:             'lib/fatal-signal.c:126,17'
          Dst:             __errno_location
        - Src:             'lib/fatal-signal.c:126,17'
          Dst:             ovs_strerror
        - Src:             'lib/fatal-signal.c:126,17'
          Dst:             vlog_fatal
        - Src:             'lib/fatal-signal.c:129,9'
          Dst:             atexit
        - Src:             'lib/fatal-signal.c:129,9'
          Dst:             fatal_signal_atexit_handler
    - functionName:    fatal_signal_remove_file_to_unlink
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fatal_signal_init
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - sset_find_and_delete
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:416,5'
          Dst:             fatal_signal_init
        - Src:             'lib/fatal-signal.c:418,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/fatal-signal.c:419,5'
          Dst:             sset_find_and_delete
        - Src:             'lib/fatal-signal.c:420,5'
          Dst:             ovs_mutex_unlock
    - functionName:    fatal_signal_handler
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_ignore
        - raise
        - send_backtrace_to_monitor
        - signal
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:295,9'
          Dst:             signal
        - Src:             'lib/fatal-signal.c:296,9'
          Dst:             send_backtrace_to_monitor
        - Src:             'lib/fatal-signal.c:297,9'
          Dst:             raise
        - Src:             'lib/fatal-signal.c:299,16'
          Dst:             write
        - Src:             'lib/fatal-signal.c:299,5'
          Dst:             ovs_ignore
    - functionName:    signal
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fatal_signal_atexit_handler
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - call_hooks
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:358,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/fatal-signal.c:359,5'
          Dst:             call_hooks
        - Src:             'lib/fatal-signal.c:360,5'
          Dst:             ovs_mutex_unlock
    - functionName:    atexit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    call_hooks
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          77
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    send_backtrace_to_monitor
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - backtrace_capture
        - backtrace_symbols_fd
        - ovs_ignore
        - vlog_direct_write_to_log_file_unsafe
        - vlog_get_log_file_fd_unsafe
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:260,5'
          Dst:             backtrace_capture
        - Src:             'lib/fatal-signal.c:263,20'
          Dst:             write
        - Src:             'lib/fatal-signal.c:263,9'
          Dst:             ovs_ignore
        - Src:             'lib/fatal-signal.c:265,22'
          Dst:             vlog_get_log_file_fd_unsafe
        - Src:             'lib/fatal-signal.c:271,9'
          Dst:             vlog_direct_write_to_log_file_unsafe
        - Src:             'lib/fatal-signal.c:272,9'
          Dst:             backtrace_symbols_fd
    - functionName:    backtrace_symbols_fd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cancel_files
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sset_clear
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:455,5'
          Dst:             sset_clear
    - functionName:    unlink_files
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_unlink_files
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:449,5'
          Dst:             do_unlink_files
    - functionName:    fatal_signal_add_file_to_unlink
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cancel_files
        - fatal_signal_add_hook
        - fatal_signal_init
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - sset_add
        - unlink_files
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:399,5'
          Dst:             fatal_signal_init
        - Src:             'lib/fatal-signal.c:401,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/fatal-signal.c:404,9'
          Dst:             fatal_signal_add_hook
        - Src:             'lib/fatal-signal.c:404,9'
          Dst:             unlink_files
        - Src:             'lib/fatal-signal.c:404,9'
          Dst:             cancel_files
        - Src:             'lib/fatal-signal.c:407,5'
          Dst:             sset_add
        - Src:             'lib/fatal-signal.c:408,5'
          Dst:             ovs_mutex_unlock
    - functionName:    fatal_signal_add_hook
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          52
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fatal_signal_init
        - ovs_ignore
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:151,5'
          Dst:             fatal_signal_init
        - Src:             'lib/fatal-signal.c:153,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/fatal-signal.c:154,5'
          Dst:             ovs_ignore
        - Src:             'lib/fatal-signal.c:160,5'
          Dst:             ovs_mutex_unlock
    - functionName:    fatal_ignore_sigpipe
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - signal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:352,5'
          Dst:             signal
    - functionName:    fatal_signal_wait
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fatal_signal_init
        - poll_fd_wait_at
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:345,5'
          Dst:             fatal_signal_init
        - Src:             'lib/fatal-signal.c:346,5'
          Dst:             poll_fd_wait_at
    - functionName:    fatal_signal_run
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - abort
        - call_hooks
        - fatal_signal_init
        - fflush
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - raise
        - signal
        - signal_name
        - vlog
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:319,5'
          Dst:             fatal_signal_init
        - Src:             'lib/fatal-signal.c:325,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/fatal-signal.c:327,9'
          Dst:             signal_name
        - Src:             'lib/fatal-signal.c:327,9'
          Dst:             vlog
        - Src:             'lib/fatal-signal.c:329,9'
          Dst:             call_hooks
        - Src:             'lib/fatal-signal.c:330,9'
          Dst:             fflush
        - Src:             'lib/fatal-signal.c:334,9'
          Dst:             signal
        - Src:             'lib/fatal-signal.c:335,9'
          Dst:             raise
        - Src:             'lib/fatal-signal.c:337,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/fatal-signal.c:338,9'
          Dst:             abort
    - functionName:    unaligned_u64__
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add64
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:114,21'
          Dst:             hash_add
        - Src:             'lib/hash.h:114,12'
          Dst:             hash_add
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add_words64
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hash_add64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:439,16'
          Dst:             hash_add64
    - functionName:    hash_add_words
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hash_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:430,16'
          Dst:             hash_add
    - functionName:    unaligned_u32
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fmix64
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_rot64
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_unaligned_u64__
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unaligned_u64__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unaligned.h:87,1'
          Dst:             unaligned_u64__
    - functionName:    hash_bytes128
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          399
      EdgeCount:       38
      CyclomaticComplexity: 2
      functionsReached:
        - fmix64
        - get_unaligned_u64__
        - hash_rot64
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hash.c:297,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/hash.c:271,14'
          Dst:             get_unaligned_u64__
        - Src:             'lib/hash.c:272,14'
          Dst:             get_unaligned_u64__
        - Src:             'lib/hash.c:275,14'
          Dst:             hash_rot64
        - Src:             'lib/hash.c:279,14'
          Dst:             hash_rot64
        - Src:             'lib/hash.c:284,14'
          Dst:             hash_rot64
        - Src:             'lib/hash.c:288,14'
          Dst:             hash_rot64
        - Src:             'lib/hash.c:319,14'
          Dst:             hash_rot64
        - Src:             'lib/hash.c:347,14'
          Dst:             hash_rot64
        - Src:             'lib/hash.c:357,10'
          Dst:             fmix64
        - Src:             'lib/hash.c:358,10'
          Dst:             fmix64
    - functionName:    hash_words64_inline
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add_words64
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:136,24'
          Dst:             hash_add_words64
        - Src:             'lib/hash.h:136,12'
          Dst:             hash_finish
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_words64__
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_words64_inline
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.c:73,12'
          Dst:             hash_words64_inline
    - functionName:    hash_words_inline
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add_words
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:130,24'
          Dst:             hash_add_words
        - Src:             'lib/hash.h:130,12'
          Dst:             hash_finish
    - functionName:    hash_words__
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_words_inline
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.c:67,12'
          Dst:             hash_words_inline
    - functionName:    hash_double
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_3words
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.c:61,12'
          Dst:             hash_3words
    - functionName:    hash_3words
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.c:25,42'
          Dst:             hash_add
        - Src:             'lib/hash.c:25,33'
          Dst:             hash_add
        - Src:             'lib/hash.c:25,24'
          Dst:             hash_add
        - Src:             'lib/hash.c:25,12'
          Dst:             hash_finish
    - functionName:    get_unaligned_u32
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unaligned_u32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unaligned.h:86,1'
          Dst:             unaligned_u32
    - functionName:    hash_bytes
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - get_unaligned_u32
        - hash_add
        - hash_finish
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.c:39,25'
          Dst:             get_unaligned_u32
        - Src:             'lib/hash.c:38,16'
          Dst:             hash_add
        - Src:             'lib/hash.c:48,16'
          Dst:             hash_add
        - Src:             'lib/hash.c:51,12'
          Dst:             hash_finish
    - functionName:    init_this_module_hmap
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:26,1'
          Dst:             vlog_insert_module
    - functionName:    hmap_pathological_init_coverage
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:28,1'
          Dst:             coverage_counter_register
    - functionName:    hmap_expand_init_coverage
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:29,1'
          Dst:             coverage_counter_register
    - functionName:    hmap_shrink_init_coverage
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:30,1'
          Dst:             coverage_counter_register
    - functionName:    hmap_reserve_init_coverage
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:31,1'
          Dst:             coverage_counter_register
    - functionName:    hmap_reserve_count
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_reserve_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:31,1'
          Dst:             counter_hmap_reserve_get
    - functionName:    counter_hmap_reserve_get
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_reserve_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:31,1'
          Dst:             counter_hmap_reserve_get_unsafe
    - functionName:    counter_hmap_reserve_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_shrink_count
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_shrink_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:30,1'
          Dst:             counter_hmap_shrink_get
    - functionName:    counter_hmap_shrink_get
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_shrink_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:30,1'
          Dst:             counter_hmap_shrink_get_unsafe
    - functionName:    counter_hmap_shrink_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_expand_count
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_expand_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:29,1'
          Dst:             counter_hmap_expand_get
    - functionName:    counter_hmap_expand_get
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_expand_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:29,1'
          Dst:             counter_hmap_expand_get_unsafe
    - functionName:    counter_hmap_expand_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_pathological_count
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_pathological_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:28,1'
          Dst:             counter_hmap_pathological_get
    - functionName:    counter_hmap_pathological_get
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_pathological_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:28,1'
          Dst:             counter_hmap_pathological_get_unsafe
    - functionName:    counter_hmap_pathological_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_pathological_add
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_pathological_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:28,1'
          Dst:             counter_hmap_pathological_get
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_pow2
      functionSourceFile: '/src/openvswitch/./include/openvswitch/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_first_in_bucket
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_contains
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first_in_bucket
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:304,14'
          Dst:             hmap_first_in_bucket
    - functionName:    hmap_at_position
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          129
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    random_range
      functionSourceFile: '/src/openvswitch/lib/random.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - random_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/random.h:33,12'
          Dst:             random_uint32
    - functionName:    hmap_random_node
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          84
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - random_range
        - random_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:237,32'
          Dst:             random_uint32
        - Src:             'lib/hmap.c:250,9'
          Dst:             random_range
    - functionName:    hmap_node_moved
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          43
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_reserve_add
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_reserve_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:31,1'
          Dst:             counter_hmap_reserve_get
    - functionName:    hmap_reserve_at
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calc_mask
        - hmap_reserve_add
        - resize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:204,23'
          Dst:             calc_mask
        - Src:             'lib/hmap.c:206,9'
          Dst:             hmap_reserve_add
        - Src:             'lib/hmap.c:207,9'
          Dst:             resize
    - functionName:    calc_mask
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          47
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    resize
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          220
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - hmap_destroy
        - hmap_init
        - hmap_insert_fast
        - hmap_pathological_add
        - hmap_swap
        - is_pow2
        - ovs_ignore
        - vlog_rate_limit
        - xmalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:96,16'
          Dst:             is_pow2
        - Src:             'lib/hmap.c:96,5'
          Dst:             ovs_ignore
        - Src:             'lib/hmap.c:98,5'
          Dst:             hmap_init
        - Src:             'lib/hmap.c:100,23'
          Dst:             xmalloc
        - Src:             'lib/hmap.c:114,13'
          Dst:             hmap_insert_fast
        - Src:             'lib/hmap.c:127,5'
          Dst:             hmap_swap
        - Src:             'lib/hmap.c:128,5'
          Dst:             hmap_destroy
        - Src:             'lib/hmap.c:132,9'
          Dst:             hmap_pathological_add
        - Src:             'lib/hmap.c:133,9'
          Dst:             vlog_rate_limit
    - functionName:    hmap_init
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_swap
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_moved
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:76,5'
          Dst:             hmap_moved
        - Src:             'lib/hmap.c:77,5'
          Dst:             hmap_moved
    - functionName:    hmap_destroy
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          39
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_moved
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_shrink_add
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_shrink_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:30,1'
          Dst:             counter_hmap_shrink_get
    - functionName:    hmap_shrink_at
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calc_mask
        - hmap_shrink_add
        - resize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:187,23'
          Dst:             calc_mask
        - Src:             'lib/hmap.c:189,9'
          Dst:             hmap_shrink_add
        - Src:             'lib/hmap.c:190,9'
          Dst:             resize
    - functionName:    hmap_expand_add
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_expand_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:29,1'
          Dst:             counter_hmap_expand_get
    - functionName:    hmap_expand_at
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calc_mask
        - hmap_expand_add
        - resize
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:172,23'
          Dst:             calc_mask
        - Src:             'lib/hmap.c:174,9'
          Dst:             hmap_expand_add
        - Src:             'lib/hmap.c:175,9'
          Dst:             resize
    - functionName:    hmap_clear
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_ovs_rcu
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:31,1'
          Dst:             vlog_insert_module
    - functionName:    ovs_list_init
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsrcu_cancel_thread_exit_cb
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:422,5'
          Dst:             pthread_setspecific
    - functionName:    ovsrcu_thread_exit_cb
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_unregister__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:415,5'
          Dst:             ovsrcu_unregister__
    - functionName:    ovsrcu_unregister__
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_list_remove
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovsrcu_flush_cbset
        - seq_change
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:400,9'
          Dst:             ovsrcu_flush_cbset
        - Src:             'lib/ovs-rcu.c:403,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-rcu.c:404,5'
          Dst:             ovs_list_remove
        - Src:             'lib/ovs-rcu.c:405,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/ovs-rcu.c:409,5'
          Dst:             seq_change
    - functionName:    ovsrcu_flush_cbset
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_flush_cbset__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:393,5'
          Dst:             ovsrcu_flush_cbset__
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsrcu_flush_cbset__
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - guarded_list_push_back
        - seq_change
        - seq_change_protected
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:379,9'
          Dst:             guarded_list_push_back
        - Src:             'lib/ovs-rcu.c:383,13'
          Dst:             seq_change_protected
        - Src:             'lib/ovs-rcu.c:385,13'
          Dst:             seq_change
    - functionName:    ovs_list_pop_front
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:264,5'
          Dst:             ovs_list_remove
    - functionName:    ovs_list_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsrcu_postpone_thread
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - latch_is_set
        - latch_wait_at
        - ovs_barrier_block
        - ovsrcu_call_postponed
        - poll_block
        - pthread_detach
        - pthread_self
        - seq_read
        - seq_wait_at
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:358,20'
          Dst:             pthread_self
        - Src:             'lib/ovs-rcu.c:358,5'
          Dst:             pthread_detach
        - Src:             'lib/ovs-rcu.c:360,13'
          Dst:             latch_is_set
        - Src:             'lib/ovs-rcu.c:361,26'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:362,14'
          Dst:             ovsrcu_call_postponed
        - Src:             'lib/ovs-rcu.c:363,13'
          Dst:             seq_wait_at
        - Src:             'lib/ovs-rcu.c:364,13'
          Dst:             latch_wait_at
        - Src:             'lib/ovs-rcu.c:365,13'
          Dst:             poll_block
        - Src:             'lib/ovs-rcu.c:369,5'
          Dst:             ovs_barrier_block
    - functionName:    pthread_detach
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsrcu_call_postponed
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          93
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - guarded_list_pop_all
        - ovs_list_is_empty
        - ovs_list_pop_front
        - ovsrcu_synchronize
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:335,5'
          Dst:             guarded_list_pop_all
        - Src:             'lib/ovs-rcu.c:336,9'
          Dst:             ovs_list_is_empty
        - Src:             'lib/ovs-rcu.c:340,5'
          Dst:             ovsrcu_synchronize
        - Src:             'lib/ovs-rcu.c:342,5'
          Dst:             ovs_list_is_empty
        - Src:             'lib/ovs-rcu.c:342,5'
          Dst:             ovs_list_pop_front
    - functionName:    ovsrcu_synchronize
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         28
      ICount:          153
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strlcpy
        - ovsrcu_quiesce_end
        - ovsrcu_quiesce_start
        - poll_block
        - poll_timer_wait_until_at
        - seq_read
        - seq_wait_at
        - single_threaded
        - time_msec
        - vlog
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:199,9'
          Dst:             single_threaded
        - Src:             'lib/ovs-rcu.c:203,20'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:204,5'
          Dst:             ovsrcu_quiesce_start
        - Src:             'lib/ovs-rcu.c:205,13'
          Dst:             time_msec
        - Src:             'lib/ovs-rcu.c:208,30'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:214,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-rcu.c:217,17'
          Dst:             ovs_strlcpy
        - Src:             'lib/ovs-rcu.c:222,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/ovs-rcu.c:228,19'
          Dst:             time_msec
        - Src:             'lib/ovs-rcu.c:230,13'
          Dst:             vlog
        - Src:             'lib/ovs-rcu.c:234,9'
          Dst:             poll_timer_wait_until_at
        - Src:             'lib/ovs-rcu.c:236,9'
          Dst:             seq_wait_at
        - Src:             'lib/ovs-rcu.c:237,9'
          Dst:             poll_block
        - Src:             'lib/ovs-rcu.c:239,5'
          Dst:             ovsrcu_quiesce_end
    - functionName:    ovsrcu_quiesce_start
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsrcu_init_module
        - ovsrcu_quiesced
        - ovsrcu_unregister__
        - pthread_getspecific
        - pthread_setspecific
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:134,5'
          Dst:             ovsrcu_init_module
        - Src:             'lib/ovs-rcu.c:135,17'
          Dst:             pthread_getspecific
        - Src:             'lib/ovs-rcu.c:137,9'
          Dst:             pthread_setspecific
        - Src:             'lib/ovs-rcu.c:138,9'
          Dst:             ovsrcu_unregister__
        - Src:             'lib/ovs-rcu.c:141,5'
          Dst:             ovsrcu_quiesced
    - functionName:    ovsrcu_quiesce_end
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_perthread_get
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:108,5'
          Dst:             ovsrcu_perthread_get
    - functionName:    ovsrcu_perthread_get
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - get_subprogram_name
        - ovs_list_push_back
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strlcpy
        - ovsrcu_init_module
        - pthread_getspecific
        - pthread_setspecific
        - seq_read
        - xmalloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:79,5'
          Dst:             ovsrcu_init_module
        - Src:             'lib/ovs-rcu.c:81,17'
          Dst:             pthread_getspecific
        - Src:             'lib/ovs-rcu.c:83,28'
          Dst:             get_subprogram_name
        - Src:             'lib/ovs-rcu.c:85,21'
          Dst:             xmalloc
        - Src:             'lib/ovs-rcu.c:86,28'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:88,9'
          Dst:             ovs_strlcpy
        - Src:             'lib/ovs-rcu.c:91,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-rcu.c:92,9'
          Dst:             ovs_list_push_back
        - Src:             'lib/ovs-rcu.c:93,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/ovs-rcu.c:95,9'
          Dst:             pthread_setspecific
    - functionName:    ovsrcu_init_module
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fatal_signal_add_hook
        - guarded_list_init
        - ovs_list_init
        - ovs_mutex_init
        - ovsrcu_cancel_thread_exit_cb
        - ovsrcu_thread_exit_cb
        - ovsthread_once_done
        - ovsthread_once_start
        - seq_create
        - xpthread_key_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:429,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/ovs-rcu.c:430,24'
          Dst:             seq_create
        - Src:             'lib/ovs-rcu.c:431,9'
          Dst:             xpthread_key_create
        - Src:             'lib/ovs-rcu.c:431,9'
          Dst:             ovsrcu_thread_exit_cb
        - Src:             'lib/ovs-rcu.c:432,9'
          Dst:             fatal_signal_add_hook
        - Src:             'lib/ovs-rcu.c:432,9'
          Dst:             ovsrcu_cancel_thread_exit_cb
        - Src:             'lib/ovs-rcu.c:433,9'
          Dst:             ovs_list_init
        - Src:             'lib/ovs-rcu.c:434,9'
          Dst:             ovs_mutex_init
        - Src:             'lib/ovs-rcu.c:436,9'
          Dst:             guarded_list_init
        - Src:             'lib/ovs-rcu.c:437,30'
          Dst:             seq_create
        - Src:             'lib/ovs-rcu.c:439,9'
          Dst:             ovsthread_once_done
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    ovsrcu_quiesced
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          33
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - latch_init
        - ovs_barrier_init
        - ovs_thread_create
        - ovsrcu_call_postponed
        - ovsrcu_postpone_thread
        - ovsthread_once_done
        - ovsthread_once_start
        - single_threaded
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:114,9'
          Dst:             single_threaded
        - Src:             'lib/ovs-rcu.c:115,9'
          Dst:             ovsrcu_call_postponed
        - Src:             'lib/ovs-rcu.c:118,13'
          Dst:             ovsthread_once_start
        - Src:             'lib/ovs-rcu.c:119,13'
          Dst:             latch_init
        - Src:             'lib/ovs-rcu.c:120,13'
          Dst:             ovs_barrier_init
        - Src:             'lib/ovs-rcu.c:121,13'
          Dst:             ovs_thread_create
        - Src:             'lib/ovs-rcu.c:121,13'
          Dst:             ovsrcu_postpone_thread
        - Src:             'lib/ovs-rcu.c:122,13'
          Dst:             ovsthread_once_done
    - functionName:    ovsrcu_barrier_func
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seq_change
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:447,5'
          Dst:             seq_change
    - functionName:    ovsrcu_barrier
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          41
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ovsrcu_barrier_func
        - ovsrcu_postpone__
        - ovsrcu_synchronize
        - poll_block
        - seq_create
        - seq_destroy
        - seq_read
        - seq_wait_at
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:463,23'
          Dst:             seq_create
        - Src:             'lib/ovs-rcu.c:465,5'
          Dst:             ovsrcu_synchronize
        - Src:             'lib/ovs-rcu.c:469,22'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:470,5'
          Dst:             ovsrcu_postpone__
        - Src:             'lib/ovs-rcu.c:470,5'
          Dst:             ovsrcu_barrier_func
        - Src:             'lib/ovs-rcu.c:473,9'
          Dst:             seq_wait_at
        - Src:             'lib/ovs-rcu.c:474,9'
          Dst:             poll_block
        - Src:             'lib/ovs-rcu.c:475,23'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:477,5'
          Dst:             seq_destroy
    - functionName:    ovsrcu_postpone__
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          96
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovsrcu_perthread_get
        - x2nrealloc
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:307,42'
          Dst:             ovsrcu_perthread_get
        - Src:             'lib/ovs-rcu.c:313,36'
          Dst:             xmalloc
        - Src:             'lib/ovs-rcu.c:314,22'
          Dst:             xmalloc
        - Src:             'lib/ovs-rcu.c:320,22'
          Dst:             x2nrealloc
    - functionName:    ovsrcu_exit
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          50
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - latch_set
        - ovs_barrier_block
        - ovsrcu_call_postponed
        - ovsrcu_quiesced
        - ovsrcu_synchronize
        - single_threaded
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:258,10'
          Dst:             single_threaded
        - Src:             'lib/ovs-rcu.c:259,9'
          Dst:             ovsrcu_quiesced
        - Src:             'lib/ovs-rcu.c:260,9'
          Dst:             latch_set
        - Src:             'lib/ovs-rcu.c:261,9'
          Dst:             ovs_barrier_block
        - Src:             'lib/ovs-rcu.c:278,9'
          Dst:             ovsrcu_synchronize
        - Src:             'lib/ovs-rcu.c:279,14'
          Dst:             ovsrcu_call_postponed
    - functionName:    ovsrcu_is_quiescent
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_init_module
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:188,5'
          Dst:             ovsrcu_init_module
        - Src:             'lib/ovs-rcu.c:189,12'
          Dst:             pthread_getspecific
    - functionName:    ovsrcu_try_quiesce
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_ignore
        - ovsrcu_flush_cbset__
        - ovsrcu_perthread_get
        - ovsrcu_quiesced
        - seq_change_protected
        - seq_read
        - seq_try_lock
        - seq_unlock
        - single_threaded
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:170,17'
          Dst:             single_threaded
        - Src:             'lib/ovs-rcu.c:170,5'
          Dst:             ovs_ignore
        - Src:             'lib/ovs-rcu.c:171,17'
          Dst:             ovsrcu_perthread_get
        - Src:             'lib/ovs-rcu.c:172,10'
          Dst:             seq_try_lock
        - Src:             'lib/ovs-rcu.c:173,28'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:175,13'
          Dst:             ovsrcu_flush_cbset__
        - Src:             'lib/ovs-rcu.c:177,9'
          Dst:             seq_change_protected
        - Src:             'lib/ovs-rcu.c:178,9'
          Dst:             seq_unlock
        - Src:             'lib/ovs-rcu.c:179,9'
          Dst:             ovsrcu_quiesced
    - functionName:    ovsrcu_quiesce
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsrcu_flush_cbset
        - ovsrcu_perthread_get
        - ovsrcu_quiesced
        - seq_change
        - seq_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:154,17'
          Dst:             ovsrcu_perthread_get
        - Src:             'lib/ovs-rcu.c:155,24'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:157,9'
          Dst:             ovsrcu_flush_cbset
        - Src:             'lib/ovs-rcu.c:159,5'
          Dst:             seq_change
        - Src:             'lib/ovs-rcu.c:161,5'
          Dst:             ovsrcu_quiesced
    - functionName:    eth_addr_compare_3way
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:262,12'
          Dst:             memcmp
    - functionName:    dp_packet_l2_pad_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_tail
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:327,21'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:327,41'
          Dst:             dp_packet_size
    - functionName:    dp_packet_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 845
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __packet_data
        - dp_packet_base
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:846,12'
          Dst:             __packet_data
        - Src:             'lib/dp-packet.h:847,23'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:847,43'
          Dst:             __packet_data
    - functionName:    dp_packet_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 762
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __packet_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_base
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 751
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    raw_ctz
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          36
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_afxdp_buf
      functionSourceFile: '/src/openvswitch/lib/netdev-afxdp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_dpdk_buf
      functionSourceFile: '/src/openvswitch/lib/netdev-dpdk.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_reset_outer_offsets
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    be32_to_be16
      functionSourceFile: '/src/openvswitch/lib/byte-order.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __packet_set_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 780
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_set_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_set_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 852
      functionLinenumberEnd: 858
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __packet_set_data
        - dp_packet_base
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:854,55'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:854,9'
          Dst:             __packet_set_data
        - Src:             'lib/dp-packet.h:856,9'
          Dst:             __packet_set_data
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add64
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:114,21'
          Dst:             hash_add
        - Src:             'lib/hash.h:114,12'
          Dst:             hash_add
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_uint64_basis
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add64
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:160,24'
          Dst:             hash_add64
        - Src:             'lib/hash.h:160,12'
          Dst:             hash_finish
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    packet_sctp_complete_csum
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2331
      functionLinenumberEnd: 2355
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - crc32c
        - dp_packet_inner_l4
        - dp_packet_inner_l4_checksum_set_good
        - dp_packet_inner_l4_size
        - dp_packet_l4
        - dp_packet_l4_checksum_set_good
        - dp_packet_l4_size
        - ovs_ignore
        - put_16aligned_be32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:2337,14'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/packets.c:2338,18'
          Dst:             dp_packet_inner_l4_size
        - Src:             'lib/packets.c:2340,14'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:2341,18'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:2344,5'
          Dst:             ovs_ignore
        - Src:             'lib/packets.c:2346,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:2347,12'
          Dst:             crc32c
        - Src:             'lib/packets.c:2348,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:2351,9'
          Dst:             dp_packet_inner_l4_checksum_set_good
        - Src:             'lib/packets.c:2353,9'
          Dst:             dp_packet_l4_checksum_set_good
    - functionName:    dp_packet_inner_l4
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:531,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_inner_l4_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_inner_l4
        - dp_packet_l2_pad_size
        - dp_packet_tail
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:539,29'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:540,29'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/dp-packet.h:541,14'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_l4
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:477,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_l4_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l2_pad_size
        - dp_packet_l4
        - dp_packet_tail
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:504,25'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:504,59'
          Dst:             dp_packet_l4
        - Src:             'lib/dp-packet.h:505,11'
          Dst:             dp_packet_l2_pad_size
    - functionName:    put_16aligned_be32
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    21
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_checksum_set_good
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1365
      functionLinenumberEnd: 1368
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_checksum_set_good
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1278
      functionLinenumberEnd: 1281
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_get_inner_tcp_payload_length
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 599
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_get_inner_tcp_payload
        - dp_packet_l2_pad_size
        - dp_packet_tail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:592,31'
          Dst:             dp_packet_get_inner_tcp_payload
        - Src:             'lib/dp-packet.h:594,26'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:594,48'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_get_inner_tcp_payload
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_inner_l4
        - dp_packet_inner_l4_size
        - ntohs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:564,22'
          Dst:             dp_packet_inner_l4_size
        - Src:             'lib/dp-packet.h:567,34'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/dp-packet.h:568,23'
          Dst:             ntohs
    - functionName:    dp_packet_get_tso_segsz
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_ip_checksum_valid
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1189
      functionLinenumberEnd: 1190
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_checksum_valid
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1388
      functionLinenumberEnd: 1389
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_proto_udp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1341
      functionLinenumberEnd: 1343
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_proto_tcp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1336
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    packet_udp_tunnel_csum
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2197
      functionLinenumberEnd: 2325
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          321
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - csum_add16
        - csum_continue
        - csum_finish
        - dp_packet_get_inner_tcp_payload
        - dp_packet_get_inner_tcp_payload_length
        - dp_packet_get_tso_segsz
        - dp_packet_gso_nr_segs
        - dp_packet_inner_ip_checksum_valid
        - dp_packet_inner_l3
        - dp_packet_inner_l4
        - dp_packet_inner_l4_checksum_valid
        - dp_packet_inner_l4_proto_tcp
        - dp_packet_inner_l4_proto_udp
        - dp_packet_l3
        - dp_packet_l4
        - dp_packet_l4_checksum_set_good
        - htons
        - ovs_ignore
        - packet_csum_pseudoheader
        - packet_csum_pseudoheader6
        - recalc_csum16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:2211,16'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/packets.c:2212,16'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/packets.c:2213,10'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:2214,11'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:2216,9'
          Dst:             dp_packet_inner_l4_proto_tcp
        - Src:             'lib/packets.c:2218,25'
          Dst:             dp_packet_get_inner_tcp_payload
        - Src:             'lib/packets.c:2223,16'
          Dst:             dp_packet_inner_l4_proto_udp
        - Src:             'lib/packets.c:2236,10'
          Dst:             dp_packet_inner_l4_checksum_valid
        - Src:             'lib/packets.c:2245,22'
          Dst:             packet_csum_pseudoheader
        - Src:             'lib/packets.c:2247,51'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/packets.c:2249,22'
          Dst:             packet_csum_pseudoheader6
        - Src:             'lib/packets.c:2252,18'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2254,33'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2254,21'
          Dst:             csum_finish
        - Src:             'lib/packets.c:2264,24'
          Dst:             packet_csum_pseudoheader
        - Src:             'lib/packets.c:2266,45'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:2268,24'
          Dst:             packet_csum_pseudoheader6
        - Src:             'lib/packets.c:2271,20'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2273,25'
          Dst:             dp_packet_inner_ip_checksum_valid
        - Src:             'lib/packets.c:2279,24'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2282,20'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2283,20'
          Dst:             csum_add16
        - Src:             'lib/packets.c:2284,20'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2286,21'
          Dst:             csum_finish
        - Src:             'lib/packets.c:2287,17'
          Dst:             dp_packet_get_tso_segsz
        - Src:             'lib/packets.c:2289,32'
          Dst:             dp_packet_get_inner_tcp_payload_length
        - Src:             'lib/packets.c:2291,47'
          Dst:             dp_packet_gso_nr_segs
        - Src:             'lib/packets.c:2291,9'
          Dst:             ovs_ignore
        - Src:             'lib/packets.c:2296,54'
          Dst:             htons
        - Src:             'lib/packets.c:2297,39'
          Dst:             htons
        - Src:             'lib/packets.c:2296,25'
          Dst:             recalc_csum16
        - Src:             'lib/packets.c:2315,58'
          Dst:             htons
        - Src:             'lib/packets.c:2316,43'
          Dst:             htons
        - Src:             'lib/packets.c:2315,29'
          Dst:             recalc_csum16
        - Src:             'lib/packets.c:2320,25'
          Dst:             htons
        - Src:             'lib/packets.c:2322,5'
          Dst:             dp_packet_l4_checksum_set_good
    - functionName:    dp_packet_inner_l3
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:513,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_l3
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:463,23'
          Dst:             dp_packet_data
    - functionName:    packet_csum_pseudoheader
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2021
      functionLinenumberEnd: 2030
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          53
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - csum_add16
        - csum_add32
        - get_16aligned_be32
        - htons
        - ntohs
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:2024,35'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:2024,15'
          Dst:             csum_add32
        - Src:             'lib/packets.c:2025,35'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:2025,15'
          Dst:             csum_add32
        - Src:             'lib/packets.c:2026,35'
          Dst:             htons
        - Src:             'lib/packets.c:2026,15'
          Dst:             csum_add16
        - Src:             'lib/packets.c:2027,41'
          Dst:             ntohs
        - Src:             'lib/packets.c:2027,35'
          Dst:             htons
        - Src:             'lib/packets.c:2027,15'
          Dst:             csum_add16
    - functionName:    packet_csum_pseudoheader6
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2036
      functionLinenumberEnd: 2044
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - csum_add16
        - csum_continue
        - htons
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:2039,15'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2040,15'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2041,35'
          Dst:             htons
        - Src:             'lib/packets.c:2041,15'
          Dst:             csum_add16
        - Src:             'lib/packets.c:2042,15'
          Dst:             csum_add16
    - functionName:    csum_add16
      functionSourceFile: '/src/openvswitch/lib/csum.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_16aligned_be32
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    csum_add32
      functionSourceFile: '/src/openvswitch/lib/csum.h'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    packet_udp_complete_csum
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2140
      functionLinenumberEnd: 2186
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          144
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - csum_continue
        - csum_finish
        - dp_packet_inner_l3
        - dp_packet_inner_l4
        - dp_packet_inner_l4_checksum_set_good
        - dp_packet_inner_l4_size
        - dp_packet_l3
        - dp_packet_l4
        - dp_packet_l4_checksum_set_good
        - dp_packet_l4_size
        - htons
        - ovs_ignore
        - packet_csum_pseudoheader
        - packet_csum_upperlayer6
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:2146,15'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/packets.c:2147,18'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/packets.c:2148,18'
          Dst:             dp_packet_inner_l4_size
        - Src:             'lib/packets.c:2150,15'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:2151,18'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:2152,18'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:2155,5'
          Dst:             ovs_ignore
        - Src:             'lib/packets.c:2156,5'
          Dst:             ovs_ignore
        - Src:             'lib/packets.c:2167,51'
          Dst:             packet_csum_pseudoheader
        - Src:             'lib/packets.c:2167,37'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2167,25'
          Dst:             csum_finish
        - Src:             'lib/packets.c:2172,25'
          Dst:             packet_csum_upperlayer6
        - Src:             'lib/packets.c:2177,25'
          Dst:             htons
        - Src:             'lib/packets.c:2182,9'
          Dst:             dp_packet_inner_l4_checksum_set_good
        - Src:             'lib/packets.c:2184,9'
          Dst:             dp_packet_l4_checksum_set_good
    - functionName:    packet_csum_upperlayer6
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2054
      functionLinenumberEnd: 2064
      functionDepth:   0
      returnType:      short
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          50
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - csum_add16
        - csum_continue
        - csum_finish
        - htons
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:2057,15'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2058,15'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2059,35'
          Dst:             htons
        - Src:             'lib/packets.c:2059,15'
          Dst:             csum_add16
        - Src:             'lib/packets.c:2060,35'
          Dst:             htons
        - Src:             'lib/packets.c:2060,15'
          Dst:             csum_add16
        - Src:             'lib/packets.c:2062,15'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2064,12'
          Dst:             csum_finish
    - functionName:    packet_tcp_complete_csum
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2098
      functionLinenumberEnd: 2134
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          115
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - csum_continue
        - csum_finish
        - dp_packet_inner_l3
        - dp_packet_inner_l4
        - dp_packet_inner_l4_checksum_set_good
        - dp_packet_inner_l4_size
        - dp_packet_l3
        - dp_packet_l4
        - dp_packet_l4_checksum_set_good
        - dp_packet_l4_size
        - ovs_ignore
        - packet_csum_pseudoheader
        - packet_csum_upperlayer6
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:2104,15'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/packets.c:2105,18'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/packets.c:2106,18'
          Dst:             dp_packet_inner_l4_size
        - Src:             'lib/packets.c:2108,15'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:2109,18'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:2110,18'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:2113,5'
          Dst:             ovs_ignore
        - Src:             'lib/packets.c:2114,5'
          Dst:             ovs_ignore
        - Src:             'lib/packets.c:2120,51'
          Dst:             packet_csum_pseudoheader
        - Src:             'lib/packets.c:2120,37'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2120,25'
          Dst:             csum_finish
        - Src:             'lib/packets.c:2125,25'
          Dst:             packet_csum_upperlayer6
        - Src:             'lib/packets.c:2130,9'
          Dst:             dp_packet_inner_l4_checksum_set_good
        - Src:             'lib/packets.c:2132,9'
          Dst:             dp_packet_l4_checksum_set_good
    - functionName:    IP_ECN_set_ce
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2070
      functionLinenumberEnd: 2092
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          94
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_ip_checksum_set_partial
        - dp_packet_ip_checksum_valid
        - dp_packet_l3
        - get_16aligned_be32
        - htonl
        - htons
        - put_16aligned_be32
        - recalc_csum16
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:2072,35'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:2074,33'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:2075,33'
          Dst:             htonl
        - Src:             'lib/packets.c:2074,9'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:2077,32'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:2082,17'
          Dst:             dp_packet_ip_checksum_valid
        - Src:             'lib/packets.c:2083,17'
          Dst:             dp_packet_ip_checksum_set_partial
        - Src:             'lib/packets.c:2085,58'
          Dst:             htons
        - Src:             'lib/packets.c:2086,45'
          Dst:             htons
        - Src:             'lib/packets.c:2085,31'
          Dst:             recalc_csum16
    - functionName:    dp_packet_ip_checksum_valid
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1159
      functionLinenumberEnd: 1160
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_ip_checksum_set_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1141
      functionLinenumberEnd: 1143
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    packet_put_ra_prefix_opt
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1996
      functionLinenumberEnd: 2017
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - char
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          94
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - csum_continue
        - csum_finish
        - dp_packet_l3
        - dp_packet_l4
        - dp_packet_l4_size
        - dp_packet_put_uninit
        - htons
        - packet_csum_pseudoheader6
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1997,27'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1998,40'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1999,20'
          Dst:             htons
        - Src:             'lib/packets.c:2002,9'
          Dst:             dp_packet_put_uninit
        - Src:             'lib/packets.c:2007,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:2008,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:2009,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:2012,29'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:2014,52'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:2014,26'
          Dst:             packet_csum_pseudoheader6
        - Src:             'lib/packets.c:2015,41'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2015,29'
          Dst:             csum_finish
    - functionName:    compose_nd_ra
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1949
      functionLinenumberEnd: 1987
      functionDepth:   0
      returnType:      void
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
        - char
        - short
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          161
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - compose_ipv6
        - csum_continue
        - csum_finish
        - dp_packet_l3
        - eth_compose
        - htonl
        - packet_csum_pseudoheader6
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1955,5'
          Dst:             eth_compose
        - Src:             'lib/packets.c:1957,29'
          Dst:             compose_ipv6
        - Src:             'lib/packets.c:1980,43'
          Dst:             htonl
        - Src:             'lib/packets.c:1980,9'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1984,52'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1984,26'
          Dst:             packet_csum_pseudoheader6
        - Src:             'lib/packets.c:1985,41'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1985,29'
          Dst:             csum_finish
    - functionName:    eth_compose
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1118
      functionLinenumberEnd: 1139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          61
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_clear
        - dp_packet_prealloc_tailroom
        - dp_packet_put_uninit
        - dp_packet_put_zeros
        - dp_packet_reserve
        - dp_packet_set_l3
        - htonl
        - htons
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1123,5'
          Dst:             dp_packet_clear
        - Src:             'lib/packets.c:1127,5'
          Dst:             dp_packet_prealloc_tailroom
        - Src:             'lib/packets.c:1128,5'
          Dst:             dp_packet_reserve
        - Src:             'lib/packets.c:1129,11'
          Dst:             dp_packet_put_uninit
        - Src:             'lib/packets.c:1130,12'
          Dst:             dp_packet_put_zeros
        - Src:             'lib/packets.c:1134,21'
          Dst:             htons
        - Src:             'lib/packets.c:1136,22'
          Dst:             htonl
        - Src:             'lib/packets.c:1137,5'
          Dst:             dp_packet_set_l3
    - functionName:    compose_ipv6
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1855
      functionLinenumberEnd: 1866
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
        - char
        - int
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          63
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_l3
        - dp_packet_put_zeros
        - dp_packet_set_l4
        - htons
        - packet_set_ipv6
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1859,10'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1862,20'
          Dst:             htons
        - Src:             'lib/packets.c:1863,12'
          Dst:             dp_packet_put_zeros
        - Src:             'lib/packets.c:1864,5'
          Dst:             dp_packet_set_l4
        - Src:             'lib/packets.c:1865,5'
          Dst:             packet_set_ipv6
    - functionName:    dp_packet_set_l4
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:484,45'
          Dst:             dp_packet_data
    - functionName:    packet_set_ipv6
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1384
      functionLinenumberEnd: 1405
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          108
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_l3
        - memcmp
        - packet_rh_present
        - packet_set_ipv6_addr
        - packet_set_ipv6_flow_label
        - packet_set_ipv6_tc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1385,40'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1390,18'
          Dst:             packet_rh_present
        - Src:             'lib/packets.c:1392,9'
          Dst:             memcmp
        - Src:             'lib/packets.c:1393,9'
          Dst:             packet_set_ipv6_addr
        - Src:             'lib/packets.c:1397,9'
          Dst:             memcmp
        - Src:             'lib/packets.c:1398,9'
          Dst:             packet_set_ipv6_addr
        - Src:             'lib/packets.c:1402,5'
          Dst:             packet_set_ipv6_tc
        - Src:             'lib/packets.c:1403,5'
          Dst:             packet_set_ipv6_flow_label
    - functionName:    packet_rh_present
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1264
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          276
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - dp_packet_l3
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1191,21'
          Dst:             dp_packet_l3
    - functionName:    packet_set_ipv6_addr
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1307
      functionLinenumberEnd: 1313
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - packet_update_csum128
        - pkt_metadata_init_conn
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1309,9'
          Dst:             packet_update_csum128
        - Src:             'lib/packets.c:1312,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    packet_set_ipv6_tc
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1325
      functionLinenumberEnd: 1329
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_16aligned_be32
        - htonl
        - put_16aligned_be32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1326,26'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1327,39'
          Dst:             htonl
        - Src:             'lib/packets.c:1327,60'
          Dst:             htonl
        - Src:             'lib/packets.c:1328,5'
          Dst:             put_16aligned_be32
    - functionName:    packet_set_ipv6_flow_label
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1317
      functionLinenumberEnd: 1321
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_16aligned_be32
        - htonl
        - put_16aligned_be32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1318,26'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1319,39'
          Dst:             htonl
        - Src:             'lib/packets.c:1320,5'
          Dst:             put_16aligned_be32
    - functionName:    packet_update_csum128
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1270
      functionLinenumberEnd: 1300
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          173
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - dp_packet_l4
        - dp_packet_l4_checksum_set_partial
        - dp_packet_l4_checksum_valid
        - dp_packet_l4_size
        - htons
        - recalc_csum128
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1271,22'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1274,13'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1275,13'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1277,37'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1279,28'
          Dst:             recalc_csum128
        - Src:             'lib/packets.c:1282,13'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1283,13'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1285,37'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1288,32'
          Dst:             recalc_csum128
        - Src:             'lib/packets.c:1290,36'
          Dst:             htons
        - Src:             'lib/packets.c:1296,37'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1298,29'
          Dst:             recalc_csum128
    - functionName:    pkt_metadata_init_conn
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_checksum_valid
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1328
      functionLinenumberEnd: 1329
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_checksum_set_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1310
      functionLinenumberEnd: 1312
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_clear
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_base
        - dp_packet_reset_offload
        - dp_packet_reset_offsets
        - dp_packet_set_data
        - dp_packet_set_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:360,27'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:360,5'
          Dst:             dp_packet_set_data
        - Src:             'lib/dp-packet.h:361,5'
          Dst:             dp_packet_set_size
        - Src:             'lib/dp-packet.h:362,5'
          Dst:             dp_packet_reset_offsets
        - Src:             'lib/dp-packet.h:363,5'
          Dst:             dp_packet_reset_offload
    - functionName:    dp_packet_set_l3
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:470,45'
          Dst:             dp_packet_data
    - functionName:    dp_packet_reset_offsets
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_reset_outer_offsets
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:425,5'
          Dst:             dp_packet_reset_outer_offsets
    - functionName:    dp_packet_reset_offload
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1037
      functionLinenumberEnd: 1040
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    compose_nd_na
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1913
      functionLinenumberEnd: 1936
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          96
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - compose_ipv6
        - csum_continue
        - csum_finish
        - dp_packet_l3
        - eth_compose
        - packet_csum_pseudoheader6
        - packet_set_nd
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1918,5'
          Dst:             eth_compose
        - Src:             'lib/packets.c:1919,10'
          Dst:             compose_ipv6
        - Src:             'lib/packets.c:1924,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1930,5'
          Dst:             packet_set_nd
        - Src:             'lib/packets.c:1933,43'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1933,17'
          Dst:             packet_csum_pseudoheader6
        - Src:             'lib/packets.c:1934,41'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1934,29'
          Dst:             csum_finish
    - functionName:    packet_set_nd
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1668
      functionLinenumberEnd: 1713
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          277
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - dp_packet_l4
        - dp_packet_l4_size
        - eth_addr_equals
        - memcmp
        - packet_set_ipv6_addr
        - recalc_csum48
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1671,24'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1677,10'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1681,9'
          Dst:             memcmp
        - Src:             'lib/packets.c:1682,9'
          Dst:             packet_set_ipv6_addr
        - Src:             'lib/packets.c:1689,18'
          Dst:             eth_addr_equals
        - Src:             'lib/packets.c:1692,25'
          Dst:             recalc_csum48
        - Src:             'lib/packets.c:1699,18'
          Dst:             eth_addr_equals
        - Src:             'lib/packets.c:1702,25'
          Dst:             recalc_csum48
    - functionName:    eth_addr_equals
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - eth_addr_compare_3way
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:273,13'
          Dst:             eth_addr_compare_3way
    - functionName:    compose_nd_ns
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1874
      functionLinenumberEnd: 1905
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          113
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - compose_ipv6
        - csum_continue
        - csum_finish
        - dp_packet_l3
        - eth_compose
        - htonl
        - in6_addr_solicited_node
        - ipv6_multicast_to_ethernet
        - packet_csum_pseudoheader6
        - packet_set_nd
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1881,9'
          Dst:             in6_addr_solicited_node
        - Src:             'lib/packets.c:1882,9'
          Dst:             ipv6_multicast_to_ethernet
        - Src:             'lib/packets.c:1887,5'
          Dst:             eth_compose
        - Src:             'lib/packets.c:1888,10'
          Dst:             compose_ipv6
        - Src:             'lib/packets.c:1893,40'
          Dst:             htonl
        - Src:             'lib/packets.c:1893,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1899,5'
          Dst:             packet_set_nd
        - Src:             'lib/packets.c:1902,43'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1902,17'
          Dst:             packet_csum_pseudoheader6
        - Src:             'lib/packets.c:1904,9'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1903,29'
          Dst:             csum_finish
    - functionName:    in6_addr_solicited_node
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 599
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htons
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:603,22'
          Dst:             htons
        - Src:             'lib/packets.c:604,22'
          Dst:             htons
        - Src:             'lib/packets.c:605,22'
          Dst:             htons
    - functionName:    ipv6_multicast_to_ethernet
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          48
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    compose_arp__
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1830
      functionLinenumberEnd: 1847
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          52
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_clear
        - dp_packet_prealloc_tailroom
        - dp_packet_put_zeros
        - dp_packet_reserve
        - dp_packet_set_l3
        - htonl
        - htons
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1831,5'
          Dst:             dp_packet_clear
        - Src:             'lib/packets.c:1832,5'
          Dst:             dp_packet_prealloc_tailroom
        - Src:             'lib/packets.c:1833,5'
          Dst:             dp_packet_reserve
        - Src:             'lib/packets.c:1835,30'
          Dst:             dp_packet_put_zeros
        - Src:             'lib/packets.c:1836,21'
          Dst:             htons
        - Src:             'lib/packets.c:1838,34'
          Dst:             dp_packet_put_zeros
        - Src:             'lib/packets.c:1839,19'
          Dst:             htons
        - Src:             'lib/packets.c:1840,19'
          Dst:             htons
        - Src:             'lib/packets.c:1844,5'
          Dst:             dp_packet_set_l3
        - Src:             'lib/packets.c:1846,22'
          Dst:             htonl
    - functionName:    compose_arp
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1809
      functionLinenumberEnd: 1822
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - 'N/A'
        - bool
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          77
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - compose_arp__
        - dp_packet_eth
        - dp_packet_l3
        - htons
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1810,5'
          Dst:             compose_arp__
        - Src:             'lib/packets.c:1812,30'
          Dst:             dp_packet_eth
        - Src:             'lib/packets.c:1816,34'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1817,18'
          Dst:             htons
        - Src:             'lib/packets.c:1820,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1821,5'
          Dst:             put_16aligned_be32
    - functionName:    dp_packet_eth
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_data
        - dp_packet_is_eth
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:406,13'
          Dst:             dp_packet_is_eth
        - Src:             'lib/dp-packet.h:407,15'
          Dst:             dp_packet_data
    - functionName:    dp_packet_is_eth
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:398,30'
          Dst:             htonl
    - functionName:    packet_format_tcp_flags
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1753
      functionLinenumberEnd: 1795
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          217
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - ds_put_char
        - ds_put_cstr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1755,9'
          Dst:             ds_put_cstr
        - Src:             'lib/packets.c:1760,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:1763,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:1766,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:1769,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:1772,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:1775,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:1778,9'
          Dst:             ds_put_cstr
        - Src:             'lib/packets.c:1781,9'
          Dst:             ds_put_cstr
        - Src:             'lib/packets.c:1784,9'
          Dst:             ds_put_cstr
        - Src:             'lib/packets.c:1787,9'
          Dst:             ds_put_cstr
        - Src:             'lib/packets.c:1790,9'
          Dst:             ds_put_cstr
        - Src:             'lib/packets.c:1793,9'
          Dst:             ds_put_cstr
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    packet_tcp_flag_to_string
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1717
      functionLinenumberEnd: 1746
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       28
      CyclomaticComplexity: 15
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1718,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    packet_set_nd_ext
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1635
      functionLinenumberEnd: 1663
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          90
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - csum_continue
        - csum_finish
        - dp_packet_l3
        - dp_packet_l4
        - dp_packet_l4_size
        - packet_csum_pseudoheader6
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1638,24'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1639,41'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1647,27'
          Dst:             packet_csum_pseudoheader6
        - Src:             'lib/packets.c:1650,10'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1660,31'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1660,19'
          Dst:             csum_finish
    - functionName:    packet_set_igmp3_query
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1595
      functionLinenumberEnd: 1630
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - int
        - bool
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          193
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - dp_packet_l4
        - get_16aligned_be32
        - htons
        - put_16aligned_be32
        - recalc_csum16
        - recalc_csum32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1596,39'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1598,9'
          Dst:             htons
        - Src:             'lib/packets.c:1600,9'
          Dst:             htons
        - Src:             'lib/packets.c:1605,21'
          Dst:             recalc_csum16
        - Src:             'lib/packets.c:1609,26'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1612,9'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1613,21'
          Dst:             recalc_csum32
        - Src:             'lib/packets.c:1621,34'
          Dst:             htons
        - Src:             'lib/packets.c:1622,33'
          Dst:             htons
        - Src:             'lib/packets.c:1627,21'
          Dst:             recalc_csum16
    - functionName:    packet_is_icmpv4_info_message
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1567
      functionLinenumberEnd: 1586
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          94
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - packet_get_icmp_type
        - packet_get_ip_proto
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1570,16'
          Dst:             packet_get_ip_proto
        - Src:             'lib/packets.c:1575,17'
          Dst:             packet_get_icmp_type
    - functionName:    packet_get_ip_proto
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1550
      functionLinenumberEnd: 1562
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_eth
        - dp_packet_l3
        - htons
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1551,29'
          Dst:             dp_packet_eth
        - Src:             'lib/packets.c:1554,25'
          Dst:             htons
        - Src:             'lib/packets.c:1555,45'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1558,36'
          Dst:             dp_packet_l3
    - functionName:    packet_get_icmp_type
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1538
      functionLinenumberEnd: 1546
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_l4
        - dp_packet_l4_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1539,30'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1541,16'
          Dst:             dp_packet_l4_size
    - functionName:    packet_set_icmp_id
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1519
      functionLinenumberEnd: 1534
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_l4
        - dp_packet_l4_size
        - pkt_metadata_init_conn
        - recalc_csum16
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1520,30'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1522,16'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1530,25'
          Dst:             recalc_csum16
        - Src:             'lib/packets.c:1533,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    packet_set_icmp
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1500
      functionLinenumberEnd: 1512
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l4
        - htons
        - pkt_metadata_init_conn
        - recalc_csum16
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1501,30'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1502,24'
          Dst:             htons
        - Src:             'lib/packets.c:1503,23'
          Dst:             htons
        - Src:             'lib/packets.c:1509,25'
          Dst:             recalc_csum16
        - Src:             'lib/packets.c:1511,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    packet_set_sctp_port
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1469
      functionLinenumberEnd: 1493
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          86
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - crc32c
        - dp_packet_l4
        - dp_packet_l4_checksum_set_partial
        - dp_packet_l4_checksum_valid
        - dp_packet_l4_size
        - get_16aligned_be32
        - pkt_metadata_init_conn
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1470,30'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1472,9'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1473,9'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1478,27'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1480,20'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1481,9'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1482,28'
          Dst:             crc32c
        - Src:             'lib/packets.c:1487,20'
          Dst:             crc32c
        - Src:             'lib/packets.c:1488,9'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1492,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    packet_set_udp_port
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1443
      functionLinenumberEnd: 1462
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - dp_packet_l4
        - dp_packet_l4_checksum_set_partial
        - dp_packet_l4_checksum_valid
        - htons
        - packet_set_port
        - pkt_metadata_init_conn
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1444,29'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1446,9'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1447,9'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1448,9'
          Dst:             packet_set_port
        - Src:             'lib/packets.c:1449,9'
          Dst:             packet_set_port
        - Src:             'lib/packets.c:1453,9'
          Dst:             packet_set_port
        - Src:             'lib/packets.c:1454,9'
          Dst:             packet_set_port
        - Src:             'lib/packets.c:1457,28'
          Dst:             htons
        - Src:             'lib/packets.c:1461,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    packet_set_port
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1409
      functionLinenumberEnd: 1416
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - recalc_csum16
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1412,21'
          Dst:             recalc_csum16
    - functionName:    packet_set_tcp_port
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1423
      functionLinenumberEnd: 1436
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l4
        - dp_packet_l4_checksum_set_partial
        - dp_packet_l4_checksum_valid
        - packet_set_port
        - pkt_metadata_init_conn
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1424,29'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1427,9'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1428,9'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1433,5'
          Dst:             packet_set_port
        - Src:             'lib/packets.c:1434,5'
          Dst:             packet_set_port
        - Src:             'lib/packets.c:1435,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    packet_set_ipv4
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1338
      functionLinenumberEnd: 1374
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          165
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - dp_packet_ip_checksum_set_partial
        - dp_packet_ip_checksum_valid
        - dp_packet_l3
        - get_16aligned_be32
        - htons
        - packet_set_ipv4_addr
        - recalc_csum16
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1339,28'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1341,9'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1342,9'
          Dst:             packet_set_ipv4_addr
        - Src:             'lib/packets.c:1345,9'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1346,9'
          Dst:             packet_set_ipv4_addr
        - Src:             'lib/packets.c:1352,13'
          Dst:             dp_packet_ip_checksum_valid
        - Src:             'lib/packets.c:1353,13'
          Dst:             dp_packet_ip_checksum_set_partial
        - Src:             'lib/packets.c:1355,54'
          Dst:             htons
        - Src:             'lib/packets.c:1356,41'
          Dst:             htons
        - Src:             'lib/packets.c:1355,27'
          Dst:             recalc_csum16
        - Src:             'lib/packets.c:1365,13'
          Dst:             dp_packet_ip_checksum_valid
        - Src:             'lib/packets.c:1366,13'
          Dst:             dp_packet_ip_checksum_set_partial
        - Src:             'lib/packets.c:1368,54'
          Dst:             htons
        - Src:             'lib/packets.c:1369,41'
          Dst:             htons
        - Src:             'lib/packets.c:1368,27'
          Dst:             recalc_csum16
    - functionName:    packet_set_ipv4_addr
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1145
      functionLinenumberEnd: 1179
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          176
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - dp_packet_ip_checksum_set_partial
        - dp_packet_ip_checksum_valid
        - dp_packet_l3
        - dp_packet_l4
        - dp_packet_l4_checksum_set_partial
        - dp_packet_l4_checksum_valid
        - dp_packet_l4_size
        - get_16aligned_be32
        - htons
        - pkt_metadata_init_conn
        - put_16aligned_be32
        - recalc_csum32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1146,28'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1147,25'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1148,22'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1150,5'
          Dst:             pkt_metadata_init_conn
        - Src:             'lib/packets.c:1153,13'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1154,13'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1156,37'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1157,28'
          Dst:             recalc_csum32
        - Src:             'lib/packets.c:1160,13'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1161,13'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1163,37'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1165,32'
          Dst:             recalc_csum32
        - Src:             'lib/packets.c:1167,36'
          Dst:             htons
        - Src:             'lib/packets.c:1173,9'
          Dst:             dp_packet_ip_checksum_valid
        - Src:             'lib/packets.c:1174,9'
          Dst:             dp_packet_ip_checksum_set_partial
        - Src:             'lib/packets.c:1176,23'
          Dst:             recalc_csum32
        - Src:             'lib/packets.c:1178,5'
          Dst:             put_16aligned_be32
    - functionName:    ipv6_addr_equals
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1184
      functionLinenumberEnd: 1186
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          80
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ipv6_addr_equals_masked
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1089
      functionLinenumberEnd: 1103
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          76
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ipv6_addr_bitand
        - ipv6_addr_equals
        - ipv6_create_mask
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1095,16'
          Dst:             ipv6_addr_equals
        - Src:             'lib/packets.c:1098,12'
          Dst:             ipv6_create_mask
        - Src:             'lib/packets.c:1099,10'
          Dst:             ipv6_addr_bitand
        - Src:             'lib/packets.c:1100,10'
          Dst:             ipv6_addr_bitand
        - Src:             'lib/packets.c:1102,12'
          Dst:             ipv6_addr_equals
    - functionName:    ipv6_create_mask
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1013
      functionLinenumberEnd: 1028
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ipv6_addr_bitand
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 980
      functionLinenumberEnd: 985
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          48
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ipv6_is_zero
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1000
      functionLinenumberEnd: 1007
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ipv6_addr_bitxor
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 990
      functionLinenumberEnd: 995
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          48
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    in6_addr_get_mapped_ipv4
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1231
      functionLinenumberEnd: 1239
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - get_16aligned_be32
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:1234,9'
          Dst:             htonl
        - Src:             'lib/packets.h:1235,16'
          Dst:             get_16aligned_be32
    - functionName:    ipv6_string_mapped
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 960
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - in6_addr_get_mapped_ipv4
        - inet_ntop
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:962,10'
          Dst:             in6_addr_get_mapped_ipv4
        - Src:             'lib/packets.c:964,16'
          Dst:             inet_ntop
        - Src:             'lib/packets.c:966,16'
          Dst:             inet_ntop
    - functionName:    ipv6_mask_is_exact
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1197
      functionLinenumberEnd: 1198
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ipv6_addr_equals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:1198,12'
          Dst:             ipv6_addr_equals
    - functionName:    ipv6_format_masked
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 953
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ds_put_char
        - ds_put_format
        - ipv6_count_cidr_bits
        - ipv6_format_addr
        - ipv6_is_cidr
        - ipv6_mask_is_exact
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:943,5'
          Dst:             ipv6_format_addr
        - Src:             'lib/packets.c:944,18'
          Dst:             ipv6_mask_is_exact
        - Src:             'lib/packets.c:945,13'
          Dst:             ipv6_is_cidr
        - Src:             'lib/packets.c:946,29'
          Dst:             ipv6_count_cidr_bits
        - Src:             'lib/packets.c:947,13'
          Dst:             ds_put_format
        - Src:             'lib/packets.c:949,13'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:950,13'
          Dst:             ipv6_format_addr
    - functionName:    ipv6_format_addr
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 903
      functionLinenumberEnd: 911
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_reserve
        - inet_ntop
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:906,5'
          Dst:             ds_reserve
        - Src:             'lib/packets.c:909,5'
          Dst:             inet_ntop
        - Src:             'lib/packets.c:910,18'
          Dst:             strlen
    - functionName:    ipv6_is_cidr
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1065
      functionLinenumberEnd: 1084
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          97
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ipv6_count_cidr_bits
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1039
      functionLinenumberEnd: 1058
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ipv6_format_mapped
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 937
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          92
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ds_put_format
        - htonl
        - ipv6_format_addr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:931,9'
          Dst:             htonl
        - Src:             'lib/packets.c:932,9'
          Dst:             ds_put_format
        - Src:             'lib/packets.c:935,9'
          Dst:             ipv6_format_addr
    - functionName:    ipv6_format_addr_bracket
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 918
      functionLinenumberEnd: 926
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_char
        - ipv6_format_addr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:920,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:922,5'
          Dst:             ipv6_format_addr
        - Src:             'lib/packets.c:924,9'
          Dst:             ds_put_char
    - functionName:    ipv6_parse_cidr
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 888
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ipv6_parse_cidr_len
        - xasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:891,19'
          Dst:             ipv6_parse_cidr_len
        - Src:             'lib/packets.c:893,16'
          Dst:             xasprintf
    - functionName:    ipv6_parse_cidr_len
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 882
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ipv6_count_cidr_bits
        - ipv6_is_cidr
        - ipv6_parse_masked_len
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:872,13'
          Dst:             ipv6_parse_masked_len
        - Src:             'lib/packets.c:877,10'
          Dst:             ipv6_is_cidr
        - Src:             'lib/packets.c:878,16'
          Dst:             xasprintf
        - Src:             'lib/packets.c:880,13'
          Dst:             ipv6_count_cidr_bits
    - functionName:    ipv6_parse_masked_len
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 846
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          114
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - ipv6_create_mask
        - ipv6_parse
        - ovs_scan_len
        - xasprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:826,9'
          Dst:             ovs_scan_len
        - Src:             'lib/packets.c:827,12'
          Dst:             ipv6_parse
        - Src:             'lib/packets.c:828,13'
          Dst:             ovs_scan_len
        - Src:             'lib/packets.c:830,24'
          Dst:             xasprintf
        - Src:             'lib/packets.c:833,21'
          Dst:             ipv6_create_mask
        - Src:             'lib/packets.c:834,20'
          Dst:             ovs_scan_len
        - Src:             'lib/packets.c:835,19'
          Dst:             ipv6_parse
        - Src:             'lib/packets.c:836,25'
          Dst:             xasprintf
        - Src:             'lib/packets.c:845,12'
          Dst:             xasprintf
    - functionName:    ipv6_parse
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 809
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inet_pton
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:809,12'
          Dst:             inet_pton
    - functionName:    inet_pton
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ipv6_parse_masked
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 861
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ipv6_parse_masked_len
        - xasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:856,19'
          Dst:             ipv6_parse_masked_len
        - Src:             'lib/packets.c:858,16'
          Dst:             xasprintf
    - functionName:    ip_parse_cidr
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 794
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ip_parse_cidr_len
        - xasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:797,19'
          Dst:             ip_parse_cidr_len
        - Src:             'lib/packets.c:799,16'
          Dst:             xasprintf
    - functionName:    ip_parse_cidr_len
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ip_count_cidr_bits
        - ip_is_cidr
        - ip_parse_masked_len
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:777,13'
          Dst:             ip_parse_masked_len
        - Src:             'lib/packets.c:782,10'
          Dst:             ip_is_cidr
        - Src:             'lib/packets.c:783,16'
          Dst:             xasprintf
        - Src:             'lib/packets.c:785,13'
          Dst:             ip_count_cidr_bits
    - functionName:    ip_parse_masked_len
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 730
      functionLinenumberEnd: 749
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          123
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - be32_prefix_mask
        - ovs_scan_len
        - xasprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:733,9'
          Dst:             ovs_scan_len
        - Src:             'lib/packets.c:736,16'
          Dst:             ovs_scan_len
        - Src:             'lib/packets.c:739,20'
          Dst:             xasprintf
        - Src:             'lib/packets.c:742,17'
          Dst:             be32_prefix_mask
        - Src:             'lib/packets.c:743,16'
          Dst:             ovs_scan_len
        - Src:             'lib/packets.c:746,16'
          Dst:             xasprintf
    - functionName:    ip_is_cidr
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntohl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:665,19'
          Dst:             ntohl
    - functionName:    ip_count_cidr_bits
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ctz32
        - ntohl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:678,23'
          Dst:             ntohl
        - Src:             'lib/packets.c:678,17'
          Dst:             ctz32
    - functionName:    ctz32
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - raw_ctz
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.h:285,16'
          Dst:             raw_ctz
    - functionName:    be32_prefix_mask
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.h:415,12'
          Dst:             htonl
    - functionName:    ip_parse_masked
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ip_parse_masked_len
        - xasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:762,19'
          Dst:             ip_parse_masked_len
        - Src:             'lib/packets.c:764,16'
          Dst:             xasprintf
    - functionName:    ip_parse_port
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 710
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_scan
        - xasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:712,9'
          Dst:             ovs_scan
        - Src:             'lib/packets.c:717,12'
          Dst:             xasprintf
    - functionName:    ip_parse
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inet_pton
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:699,12'
          Dst:             inet_pton
    - functionName:    ip_format_masked
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_format
        - ip_count_cidr_bits
        - ip_is_cidr
        - ntohl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:684,30'
          Dst:             ntohl
        - Src:             'lib/packets.c:684,30'
          Dst:             ntohl
        - Src:             'lib/packets.c:684,30'
          Dst:             ntohl
        - Src:             'lib/packets.c:684,30'
          Dst:             ntohl
        - Src:             'lib/packets.c:684,5'
          Dst:             ds_put_format
        - Src:             'lib/packets.c:686,13'
          Dst:             ip_is_cidr
        - Src:             'lib/packets.c:687,37'
          Dst:             ip_count_cidr_bits
        - Src:             'lib/packets.c:687,13'
          Dst:             ds_put_format
        - Src:             'lib/packets.c:689,41'
          Dst:             ntohl
        - Src:             'lib/packets.c:689,41'
          Dst:             ntohl
        - Src:             'lib/packets.c:689,41'
          Dst:             ntohl
        - Src:             'lib/packets.c:689,41'
          Dst:             ntohl
        - Src:             'lib/packets.c:689,13'
          Dst:             ds_put_format
    - functionName:    in6_is_lla
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 649
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - htonl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:651,34'
          Dst:             htonl
    - functionName:    in6_generate_lla
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 635
      functionLinenumberEnd: 644
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          70
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htons
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:639,22'
          Dst:             htons
        - Src:             'lib/packets.c:640,22'
          Dst:             htons
        - Src:             'lib/packets.c:641,22'
          Dst:             htons
        - Src:             'lib/packets.c:642,22'
          Dst:             htons
    - functionName:    in6_generate_eui64
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 616
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          92
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htons
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:625,22'
          Dst:             htons
        - Src:             'lib/packets.c:626,22'
          Dst:             htons
        - Src:             'lib/packets.c:627,22'
          Dst:             htons
    - functionName:    eth_mask_is_exact
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htons
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:256,51'
          Dst:             htons
    - functionName:    eth_format_masked
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          102
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_format
        - eth_mask_is_exact
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:591,5'
          Dst:             ds_put_format
        - Src:             'lib/packets.c:592,18'
          Dst:             eth_mask_is_exact
        - Src:             'lib/packets.c:593,9'
          Dst:             ds_put_format
    - functionName:    dp_packet_delete
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_uninit
        - free_afxdp_buf
        - free_dpdk_buf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:274,13'
          Dst:             free_dpdk_buf
        - Src:             'lib/dp-packet.h:279,13'
          Dst:             free_afxdp_buf
        - Src:             'lib/dp-packet.h:283,9'
          Dst:             dp_packet_uninit
    - functionName:    eth_from_hex
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 566
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_delete
        - dp_packet_new_with_headroom
        - dp_packet_put_hex
        - dp_packet_size
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:570,53'
          Dst:             strlen
        - Src:             'lib/packets.c:570,25'
          Dst:             dp_packet_new_with_headroom
        - Src:             'lib/packets.c:572,9'
          Dst:             dp_packet_put_hex
        - Src:             'lib/packets.c:573,9'
          Dst:             dp_packet_delete
        - Src:             'lib/packets.c:578,9'
          Dst:             dp_packet_size
        - Src:             'lib/packets.c:579,9'
          Dst:             dp_packet_delete
    - functionName:    dp_packet_reset_packet
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1394
      functionLinenumberEnd: 1398
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_reset_offsets
        - dp_packet_set_data
        - dp_packet_set_size
        - dp_packet_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:1395,27'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.h:1395,5'
          Dst:             dp_packet_set_size
        - Src:             'lib/dp-packet.h:1396,46'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:1396,5'
          Dst:             dp_packet_set_data
        - Src:             'lib/dp-packet.h:1397,5'
          Dst:             dp_packet_reset_offsets
    - functionName:    pop_nsh
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          87
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l3
        - dp_packet_reset_packet
        - htonl
        - nsh_hdr_len
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:533,9'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/packets.c:528,46'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:532,32'
          Dst:             htonl
        - Src:             'lib/packets.c:551,18'
          Dst:             nsh_hdr_len
        - Src:             'lib/packets.c:552,9'
          Dst:             dp_packet_reset_packet
        - Src:             'lib/packets.c:553,31'
          Dst:             htonl
    - functionName:    nsh_hdr_len
      functionSourceFile: '/src/openvswitch/./include/openvswitch/nsh.h'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntohs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/nsh.h:274,14'
          Dst:             ntohs
    - functionName:    push_nsh
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 495
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached:
        - abort
        - dp_packet_reset_offsets
        - dp_packet_resize_l2
        - htonl
        - nsh_hdr_len
        - ntohl
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:500,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/packets.c:497,21'
          Dst:             nsh_hdr_len
        - Src:             'lib/packets.c:500,13'
          Dst:             ntohl
        - Src:             'lib/packets.c:514,13'
          Dst:             abort
        - Src:             'lib/packets.c:517,30'
          Dst:             dp_packet_resize_l2
        - Src:             'lib/packets.c:520,27'
          Dst:             htonl
        - Src:             'lib/packets.c:521,5'
          Dst:             dp_packet_reset_offsets
    - functionName:    dp_packet_set_l2_5
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:455,46'
          Dst:             dp_packet_data
    - functionName:    pop_mpls
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          101
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - dp_packet_data
        - dp_packet_l2_5
        - dp_packet_reset_offload
        - dp_packet_resize_l2_5
        - dp_packet_set_l2_5
        - get_16aligned_be32
        - htonl
        - htons
        - is_mpls
        - ntohs
        - set_ethertype
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:463,9'
          Dst:             is_mpls
        - Src:             'lib/packets.c:464,31'
          Dst:             dp_packet_l2_5
        - Src:             'lib/packets.c:467,9'
          Dst:             set_ethertype
        - Src:             'lib/packets.c:468,13'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:468,49'
          Dst:             htonl
        - Src:             'lib/packets.c:469,13'
          Dst:             dp_packet_set_l2_5
        - Src:             'lib/packets.c:472,24'
          Dst:             dp_packet_data
        - Src:             'lib/packets.c:472,60'
          Dst:             dp_packet_data
        - Src:             'lib/packets.c:473,9'
          Dst:             dp_packet_resize_l2_5
        - Src:             'lib/packets.c:477,9'
          Dst:             dp_packet_reset_offload
        - Src:             'lib/packets.c:481,28'
          Dst:             htons
        - Src:             'lib/packets.c:484,39'
          Dst:             htonl
        - Src:             'lib/packets.c:486,39'
          Dst:             ntohs
        - Src:             'lib/packets.c:486,39'
          Dst:             htonl
    - functionName:    is_mpls
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l2_5
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:447,23'
          Dst:             dp_packet_data
    - functionName:    set_ethertype
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_eth
        - dp_packet_l2_5
        - dp_packet_l3
        - eth_type_vlan
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:311,29'
          Dst:             dp_packet_eth
        - Src:             'lib/packets.c:317,9'
          Dst:             eth_type_vlan
        - Src:             'lib/packets.c:319,22'
          Dst:             dp_packet_l2_5
        - Src:             'lib/packets.c:321,13'
          Dst:             dp_packet_l3
    - functionName:    eth_type_vlan
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - htons
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:430,24'
          Dst:             htons
        - Src:             'lib/packets.h:431,21'
          Dst:             htons
    - functionName:    add_mpls
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 454
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          97
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_resize_l2
        - dp_packet_resize_l2_5
        - eth_type_mpls
        - htonl
        - is_mpls
        - ntohs
        - pkt_metadata_init_conn
        - put_16aligned_be32
        - set_ethertype
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:426,10'
          Dst:             eth_type_mpls
        - Src:             'lib/packets.c:431,35'
          Dst:             dp_packet_resize_l2
        - Src:             'lib/packets.c:433,9'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:435,31'
          Dst:             ntohs
        - Src:             'lib/packets.c:435,31'
          Dst:             htonl
        - Src:             'lib/packets.c:441,14'
          Dst:             is_mpls
        - Src:             'lib/packets.c:445,9'
          Dst:             set_ethertype
        - Src:             'lib/packets.c:449,18'
          Dst:             dp_packet_resize_l2_5
        - Src:             'lib/packets.c:453,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    eth_type_mpls
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - htons
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:424,24'
          Dst:             htons
        - Src:             'lib/packets.h:425,21'
          Dst:             htons
    - functionName:    push_mpls
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_resize_l2_5
        - eth_type_mpls
        - is_mpls
        - pkt_metadata_init_conn
        - set_ethertype
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:402,10'
          Dst:             eth_type_mpls
        - Src:             'lib/packets.c:406,10'
          Dst:             is_mpls
        - Src:             'lib/packets.c:411,5'
          Dst:             set_ethertype
        - Src:             'lib/packets.c:415,14'
          Dst:             dp_packet_resize_l2_5
        - Src:             'lib/packets.c:419,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    set_mpls_lse
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l2_5
        - is_mpls
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:385,9'
          Dst:             is_mpls
        - Src:             'lib/packets.c:386,31'
          Dst:             dp_packet_l2_5
        - Src:             'lib/packets.c:389,9'
          Dst:             put_16aligned_be32
    - functionName:    set_mpls_lse_values
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - char
        - char
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
        - set_mpls_lse_bos
        - set_mpls_lse_label
        - set_mpls_lse_tc
        - set_mpls_lse_ttl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:372,20'
          Dst:             htonl
        - Src:             'lib/packets.c:373,5'
          Dst:             set_mpls_lse_ttl
        - Src:             'lib/packets.c:374,5'
          Dst:             set_mpls_lse_tc
        - Src:             'lib/packets.c:375,5'
          Dst:             set_mpls_lse_bos
        - Src:             'lib/packets.c:376,5'
          Dst:             set_mpls_lse_label
    - functionName:    set_mpls_lse_ttl
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:338,14'
          Dst:             htonl
        - Src:             'lib/packets.c:339,13'
          Dst:             htonl
    - functionName:    set_mpls_lse_tc
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:346,14'
          Dst:             htonl
        - Src:             'lib/packets.c:347,13'
          Dst:             htonl
    - functionName:    set_mpls_lse_bos
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:362,14'
          Dst:             htonl
        - Src:             'lib/packets.c:363,13'
          Dst:             htonl
    - functionName:    set_mpls_lse_label
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
        - ntohl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:354,14'
          Dst:             htonl
        - Src:             'lib/packets.c:355,20'
          Dst:             ntohl
        - Src:             'lib/packets.c:355,13'
          Dst:             htonl
    - functionName:    pop_eth
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_is_eth
        - dp_packet_l2_5
        - dp_packet_l3
        - dp_packet_resize_l2
        - htonl
        - ntohs
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:287,18'
          Dst:             dp_packet_l2_5
        - Src:             'lib/packets.c:288,16'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:292,16'
          Dst:             dp_packet_is_eth
        - Src:             'lib/packets.c:292,5'
          Dst:             ovs_ignore
        - Src:             'lib/packets.c:293,5'
          Dst:             ovs_ignore
        - Src:             'lib/packets.c:303,5'
          Dst:             dp_packet_resize_l2
        - Src:             'lib/packets.c:304,27'
          Dst:             ntohs
        - Src:             'lib/packets.c:304,27'
          Dst:             htonl
    - functionName:    pt_ns_type_be
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1577
      functionLinenumberEnd: 1578
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - be32_to_be16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:1578,12'
          Dst:             be32_to_be16
    - functionName:    push_eth
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_is_eth
        - dp_packet_resize_l2
        - htonl
        - ovs_ignore
        - pt_ns_type_be
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:273,17'
          Dst:             dp_packet_is_eth
        - Src:             'lib/packets.c:273,5'
          Dst:             ovs_ignore
        - Src:             'lib/packets.c:274,10'
          Dst:             dp_packet_resize_l2
        - Src:             'lib/packets.c:277,20'
          Dst:             pt_ns_type_be
        - Src:             'lib/packets.c:278,27'
          Dst:             htonl
    - functionName:    eth_pop_vlan
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_eth
        - dp_packet_resize_l2
        - dp_packet_size
        - eth_type_vlan
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:256,35'
          Dst:             dp_packet_eth
        - Src:             'lib/packets.c:258,16'
          Dst:             dp_packet_size
        - Src:             'lib/packets.c:259,12'
          Dst:             eth_type_vlan
        - Src:             'lib/packets.c:262,9'
          Dst:             dp_packet_resize_l2
    - functionName:    eth_push_vlan
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_resize_l2
        - htons
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:243,11'
          Dst:             dp_packet_resize_l2
        - Src:             'lib/packets.c:246,27'
          Dst:             htons
    - functionName:    compose_rarp
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          80
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_clear
        - dp_packet_prealloc_tailroom
        - dp_packet_put_uninit
        - dp_packet_reserve
        - dp_packet_set_l3
        - htonl
        - htons
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:209,5'
          Dst:             dp_packet_clear
        - Src:             'lib/packets.c:210,5'
          Dst:             dp_packet_prealloc_tailroom
        - Src:             'lib/packets.c:212,5'
          Dst:             dp_packet_reserve
        - Src:             'lib/packets.c:213,11'
          Dst:             dp_packet_put_uninit
        - Src:             'lib/packets.c:216,21'
          Dst:             htons
        - Src:             'lib/packets.c:218,11'
          Dst:             dp_packet_put_uninit
        - Src:             'lib/packets.c:219,19'
          Dst:             htons
        - Src:             'lib/packets.c:220,19'
          Dst:             htons
        - Src:             'lib/packets.c:223,18'
          Dst:             htons
        - Src:             'lib/packets.c:225,38'
          Dst:             htonl
        - Src:             'lib/packets.c:225,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:227,38'
          Dst:             htonl
        - Src:             'lib/packets.c:227,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:229,5'
          Dst:             dp_packet_set_l3
        - Src:             'lib/packets.c:230,22'
          Dst:             htonl
    - functionName:    eth_addr_from_string
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_scan
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:188,9'
          Dst:             ovs_scan
    - functionName:    hmap_next_in_bucket
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_first_in_bucket
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_uint64
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_uint64_basis
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:165,12'
          Dst:             hash_uint64_basis
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    eth_addr_is_reserved
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          110
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - eth_addr_to_uint64
        - hash_uint64
        - hmap_first_in_bucket
        - hmap_init
        - hmap_insert_at
        - hmap_next_in_bucket
        - ovsthread_once_done
        - ovsthread_once_start
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:164,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/packets.c:165,9'
          Dst:             hmap_init
        - Src:             'lib/packets.c:167,13'
          Dst:             hash_uint64
        - Src:             'lib/packets.c:167,13'
          Dst:             hmap_insert_at
        - Src:             'lib/packets.c:169,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/packets.c:172,12'
          Dst:             eth_addr_to_uint64
        - Src:             'lib/packets.c:173,5'
          Dst:             hash_uint64
        - Src:             'lib/packets.c:173,5'
          Dst:             hmap_first_in_bucket
        - Src:             'lib/packets.c:173,5'
          Dst:             hmap_next_in_bucket
    - functionName:    eth_addr_to_uint64
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntohs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:83,25'
          Dst:             ntohs
        - Src:             'lib/packets.c:84,27'
          Dst:             ntohs
        - Src:             'lib/packets.c:85,15'
          Dst:             ntohs
    - functionName:    eth_addr_mark_random
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    eth_addr_from_uint64
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htons
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:91,19'
          Dst:             htons
        - Src:             'lib/packets.c:92,19'
          Dst:             htons
        - Src:             'lib/packets.c:93,19'
          Dst:             htons
    - functionName:    is_all_hex
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strspn
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:60,14'
          Dst:             strspn
    - functionName:    dpid_from_string
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          106
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - is_all_hex
        - strlen
        - strtoull
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:71,18'
          Dst:             strlen
        - Src:             'lib/packets.c:72,29'
          Dst:             is_all_hex
        - Src:             'lib/packets.c:74,22'
          Dst:             is_all_hex
        - Src:             'lib/packets.c:75,17'
          Dst:             strtoull
    - functionName:    flow_tnl_src
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - in6_addr_mapped_ipv4
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:53,26'
          Dst:             in6_addr_mapped_ipv4
    - functionName:    in6_addr_mapped_ipv4
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1215
      functionLinenumberEnd: 1220
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    flow_tnl_dst
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - in6_addr_mapped_ipv4
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:47,26'
          Dst:             in6_addr_mapped_ipv4
    - functionName:    seed_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    random_uint64
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - random_init
        - random_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/random.c:102,5'
          Dst:             random_init
        - Src:             'lib/random.c:104,9'
          Dst:             random_next
        - Src:             'lib/random.c:105,21'
          Dst:             random_next
    - functionName:    random_init
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_entropy_or_die
        - hash_bytes
        - pthread_self
        - seed_get
        - xgettimeofday
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/random.c:49,23'
          Dst:             seed_get
        - Src:             'lib/random.c:55,9'
          Dst:             xgettimeofday
        - Src:             'lib/random.c:56,9'
          Dst:             get_entropy_or_die
        - Src:             'lib/random.c:57,16'
          Dst:             pthread_self
        - Src:             'lib/random.c:60,21'
          Dst:             hash_bytes
    - functionName:    random_next
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seed_get_unsafe
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/random.c:112,23'
          Dst:             seed_get_unsafe
    - functionName:    seed_get
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seed_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/random.c:42,1'
          Dst:             seed_get_unsafe
    - functionName:    random_uint32
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - random_init
        - random_next
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/random.c:93,5'
          Dst:             random_init
        - Src:             'lib/random.c:94,12'
          Dst:             random_next
    - functionName:    random_bytes
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - random_init
        - random_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/random.c:76,5'
          Dst:             random_init
        - Src:             'lib/random.c:79,22'
          Dst:             random_next
        - Src:             'lib/random.c:84,22'
          Dst:             random_next
    - functionName:    random_set_seed
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - seed_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/random.c:67,5'
          Dst:             ovs_ignore
        - Src:             'lib/random.c:68,6'
          Dst:             seed_get
    - functionName:    hmap_next_with_hash__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:396,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hmap_first_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:360,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    compare_string_pointers
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:370,12'
          Dst:             strcmp
    - functionName:    sset_array
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          100
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - hmap_first
        - hmap_next
        - ovs_ignore
        - sset_count
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:348,16'
          Dst:             sset_count
        - Src:             'lib/sset.c:353,13'
          Dst:             xmalloc
        - Src:             'lib/sset.c:355,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:355,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:355,5'
          Dst:             hmap_next
        - Src:             'lib/sset.c:355,5'
          Dst:             hmap_next
        - Src:             'lib/sset.c:358,5'
          Dst:             ovs_ignore
    - functionName:    sset_count
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_count
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:166,12'
          Dst:             hmap_count
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_count
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sset_intersect
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          106
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - hmap_first
        - hmap_next
        - sset_contains
        - sset_delete
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:334,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:334,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:334,5'
          Dst:             hmap_next
        - Src:             'lib/sset.c:334,5'
          Dst:             hmap_next
        - Src:             'lib/sset.c:335,14'
          Dst:             sset_contains
        - Src:             'lib/sset.c:336,13'
          Dst:             sset_delete
    - functionName:    sset_contains
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sset_find
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:286,12'
          Dst:             sset_find
    - functionName:    sset_delete
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_remove
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:228,5'
          Dst:             hmap_remove
    - functionName:    hmap_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          48
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sset_find
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_name
        - sset_find__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:279,35'
          Dst:             hash_name
        - Src:             'lib/sset.c:279,12'
          Dst:             sset_find__
    - functionName:    hash_name
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_name__
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:33,30'
          Dst:             strlen
        - Src:             'lib/sset.c:33,12'
          Dst:             hash_name__
    - functionName:    sset_find__
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - hmap_first_with_hash
        - hmap_next_with_hash
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:41,5'
          Dst:             hmap_first_with_hash
        - Src:             'lib/sset.c:42,14'
          Dst:             strcmp
        - Src:             'lib/sset.c:41,5'
          Dst:             hmap_next_with_hash
    - functionName:    hash_name__
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_bytes
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:27,12'
          Dst:             hash_bytes
    - functionName:    sset_at_position
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_at_position
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:321,17'
          Dst:             hmap_at_position
    - functionName:    sset_equals
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - hmap_first
        - hmap_next
        - sset_count
        - sset_find__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:295,9'
          Dst:             sset_count
        - Src:             'lib/sset.c:295,26'
          Dst:             sset_count
        - Src:             'lib/sset.c:299,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:300,14'
          Dst:             sset_find__
        - Src:             'lib/sset.c:299,5'
          Dst:             hmap_next
    - functionName:    sset_pop
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - sset_delete
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:263,24'
          Dst:             hmap_first
        - Src:             'lib/sset.c:263,24'
          Dst:             hmap_first
        - Src:             'lib/sset.c:269,18'
          Dst:             xstrdup
        - Src:             'lib/sset.c:270,5'
          Dst:             sset_delete
    - functionName:    sset_find_and_delete_assert
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - sset_find_and_delete
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:249,16'
          Dst:             sset_find_and_delete
        - Src:             'lib/sset.c:249,5'
          Dst:             ovs_ignore
    - functionName:    sset_find_and_delete
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sset_delete
        - sset_find
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:237,30'
          Dst:             sset_find
        - Src:             'lib/sset.c:239,9'
          Dst:             sset_delete
    - functionName:    sset_add_array
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sset_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:209,9'
          Dst:             sset_add
    - functionName:    sset_add
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_name__
        - sset_add__
        - sset_find__
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:174,21'
          Dst:             strlen
        - Src:             'lib/sset.c:175,21'
          Dst:             hash_name__
        - Src:             'lib/sset.c:177,13'
          Dst:             sset_find__
        - Src:             'lib/sset.c:179,15'
          Dst:             sset_add__
    - functionName:    sset_add__
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_insert_at
        - xmalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:52,30'
          Dst:             xmalloc
        - Src:             'lib/sset.c:54,5'
          Dst:             hmap_insert_at
    - functionName:    sset_add_assert
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - sset_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:199,16'
          Dst:             sset_add
        - Src:             'lib/sset.c:199,5'
          Dst:             ovs_ignore
    - functionName:    sset_add_and_free
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sset_add
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:189,30'
          Dst:             sset_add
    - functionName:    hmap_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sset_is_empty
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_is_empty
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:159,12'
          Dst:             hmap_is_empty
    - functionName:    sset_sort
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - compare_string_pointers
        - qsort
        - sset_array
        - sset_count
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:380,26'
          Dst:             sset_array
        - Src:             'lib/sset.c:381,18'
          Dst:             sset_count
        - Src:             'lib/sset.c:381,5'
          Dst:             qsort
        - Src:             'lib/sset.c:381,5'
          Dst:             compare_string_pointers
    - functionName:    sset_join
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_cstr
        - ds_steal_cstr
        - sset_count
        - sset_sort
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:140,26'
          Dst:             sset_sort
        - Src:             'lib/sset.c:141,28'
          Dst:             sset_count
        - Src:             'lib/sset.c:143,13'
          Dst:             ds_put_cstr
        - Src:             'lib/sset.c:145,9'
          Dst:             ds_put_cstr
        - Src:             'lib/sset.c:149,5'
          Dst:             ds_put_cstr
        - Src:             'lib/sset.c:151,12'
          Dst:             ds_steal_cstr
    - functionName:    sset_from_delimited_string
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          50
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sset_add
        - sset_init
        - strtok_r
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:113,5'
          Dst:             sset_init
        - Src:             'lib/sset.c:115,15'
          Dst:             xstrdup
        - Src:             'lib/sset.c:117,18'
          Dst:             strtok_r
        - Src:             'lib/sset.c:119,9'
          Dst:             sset_add
        - Src:             'lib/sset.c:118,18'
          Dst:             strtok_r
    - functionName:    sset_init
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:62,5'
          Dst:             hmap_init
    - functionName:    sset_moved
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_moved
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:102,5'
          Dst:             hmap_moved
    - functionName:    sset_swap
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_swap
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:94,5'
          Dst:             hmap_swap
    - functionName:    sset_clone
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - hmap_reserve_at
        - sset_add__
        - sset_count
        - sset_init
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:81,5'
          Dst:             sset_init
        - Src:             'lib/sset.c:82,5'
          Dst:             sset_count
        - Src:             'lib/sset.c:82,5'
          Dst:             hmap_reserve_at
        - Src:             'lib/sset.c:84,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:85,37'
          Dst:             strlen
        - Src:             'lib/sset.c:85,9'
          Dst:             sset_add__
        - Src:             'lib/sset.c:84,5'
          Dst:             hmap_next
    - functionName:    sset_clear
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          92
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hmap_first
        - hmap_next
        - sset_delete
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:219,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:219,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:219,5'
          Dst:             hmap_next
        - Src:             'lib/sset.c:219,5'
          Dst:             hmap_next
        - Src:             'lib/sset.c:220,9'
          Dst:             sset_delete
    - functionName:    sset_destroy
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_destroy
        - sset_clear
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:70,9'
          Dst:             sset_clear
        - Src:             'lib/sset.c:71,9'
          Dst:             hmap_destroy
    - functionName:    init_this_module_stream_fd
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:34,1'
          Dst:             vlog_insert_module
    - functionName:    pstream_assert_class
      functionSourceFile: '/src/openvswitch/lib/stream-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-provider.h:146,5'
          Dst:             ovs_ignore
    - functionName:    maybe_unlink_and_free
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fatal_signal_unlink_file_now
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:276,9'
          Dst:             fatal_signal_unlink_file_now
    - functionName:    fd_pstream_cast
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstream_assert_class
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:184,5'
          Dst:             pstream_assert_class
    - functionName:    pfd_close
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
        - fd_pstream_cast
        - maybe_unlink_and_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:222,29'
          Dst:             fd_pstream_cast
        - Src:             'lib/stream-fd.c:223,5'
          Dst:             close
        - Src:             'lib/stream-fd.c:224,5'
          Dst:             maybe_unlink_and_free
    - functionName:    pfd_accept
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          107
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - accept
        - close
        - fd_pstream_cast
        - set_nonblocking
        - sock_errno
        - sock_strerror
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:231,29'
          Dst:             fd_pstream_cast
        - Src:             'lib/stream-fd.c:237,14'
          Dst:             accept
        - Src:             'lib/stream-fd.c:239,18'
          Dst:             sock_errno
        - Src:             'lib/stream-fd.c:241,13'
          Dst:             sock_strerror
        - Src:             'lib/stream-fd.c:241,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-fd.c:246,14'
          Dst:             set_nonblocking
        - Src:             'lib/stream-fd.c:248,9'
          Dst:             close
    - functionName:    pfd_wait
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fd_pstream_cast
        - poll_fd_wait_at
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:258,29'
          Dst:             fd_pstream_cast
        - Src:             'lib/stream-fd.c:259,5'
          Dst:             poll_fd_wait_at
    - functionName:    sock_errno
      functionSourceFile: '/src/openvswitch/lib/socket-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.h:149,12'
          Dst:             __errno_location
    - functionName:    stream_assert_class
      functionSourceFile: '/src/openvswitch/lib/stream-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-provider.h:43,5'
          Dst:             ovs_ignore
    - functionName:    stream_fd_cast
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_assert_class
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:77,5'
          Dst:             stream_assert_class
    - functionName:    fd_close
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
        - stream_fd_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:84,27'
          Dst:             stream_fd_cast
        - Src:             'lib/stream-fd.c:85,5'
          Dst:             close
    - functionName:    fd_connect
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - check_connection_completion
        - setsockopt_tcp_nodelay
        - stream_fd_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:92,27'
          Dst:             stream_fd_cast
        - Src:             'lib/stream-fd.c:93,18'
          Dst:             check_connection_completion
        - Src:             'lib/stream-fd.c:95,9'
          Dst:             setsockopt_tcp_nodelay
    - functionName:    fd_recv
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          82
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - recv
        - sock_errno
        - sock_strerror
        - stream_fd_cast
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:103,27'
          Dst:             stream_fd_cast
        - Src:             'lib/stream-fd.c:107,14'
          Dst:             recv
        - Src:             'lib/stream-fd.c:109,17'
          Dst:             sock_errno
        - Src:             'lib/stream-fd.c:111,13'
          Dst:             sock_strerror
        - Src:             'lib/stream-fd.c:111,13'
          Dst:             vlog_rate_limit
    - functionName:    fd_send
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - send
        - sock_errno
        - sock_strerror
        - stream_fd_cast
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:121,27'
          Dst:             stream_fd_cast
        - Src:             'lib/stream-fd.c:125,14'
          Dst:             send
        - Src:             'lib/stream-fd.c:127,17'
          Dst:             sock_errno
        - Src:             'lib/stream-fd.c:129,13'
          Dst:             sock_strerror
        - Src:             'lib/stream-fd.c:129,13'
          Dst:             vlog_rate_limit
    - functionName:    fd_wait
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached:
        - abort
        - poll_fd_wait_at
        - stream_fd_cast
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-fd.c:140,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/stream-fd.c:139,27'
          Dst:             stream_fd_cast
        - Src:             'lib/stream-fd.c:143,9'
          Dst:             poll_fd_wait_at
        - Src:             'lib/stream-fd.c:147,9'
          Dst:             poll_fd_wait_at
        - Src:             'lib/stream-fd.c:151,9'
          Dst:             abort
    - functionName:    new_fd_pstream
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstream_init
        - xmalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:210,29'
          Dst:             xmalloc
        - Src:             'lib/stream-fd.c:211,5'
          Dst:             pstream_init
    - functionName:    new_fd_stream
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_init
        - xmalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:66,9'
          Dst:             xmalloc
        - Src:             'lib/stream-fd.c:67,5'
          Dst:             stream_init
    - functionName:    init_this_module_stream_replay
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:34,1'
          Dst:             vlog_insert_module
    - functionName:    pstream_assert_class
      functionSourceFile: '/src/openvswitch/lib/stream-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-provider.h:146,5'
          Dst:             ovs_ignore
    - functionName:    replay_pstream_cast
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstream_assert_class
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:277,5'
          Dst:             pstream_assert_class
    - functionName:    pstream_replay_listen
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          129
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ovs_replay_file_close
        - ovs_replay_file_open
        - ovs_replay_lock
        - ovs_replay_read
        - ovs_replay_unlock
        - pstream_init
        - vlog_rate_limit
        - xmalloc
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:293,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:294,13'
          Dst:             ovs_replay_file_open
        - Src:             'lib/stream-replay.c:296,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:300,13'
          Dst:             ovs_replay_read
        - Src:             'lib/stream-replay.c:302,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:303,9'
          Dst:             ovs_replay_file_close
        - Src:             'lib/stream-replay.c:309,9'
          Dst:             ovs_replay_file_close
        - Src:             'lib/stream-replay.c:313,33'
          Dst:             xmalloc
        - Src:             'lib/stream-replay.c:314,56'
          Dst:             xstrdup
        - Src:             'lib/stream-replay.c:314,5'
          Dst:             pstream_init
        - Src:             'lib/stream-replay.c:319,5'
          Dst:             ovs_replay_unlock
    - functionName:    pstream_replay_close
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_replay_file_close
        - replay_pstream_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:391,33'
          Dst:             replay_pstream_cast
        - Src:             'lib/stream-replay.c:393,5'
          Dst:             ovs_replay_file_close
    - functionName:    pstream_replay_accept
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          120
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - new_replay_stream
        - ovs_ignore
        - ovs_replay_lock
        - ovs_replay_normalized_seqno
        - ovs_replay_read
        - ovs_replay_seqno
        - ovs_replay_seqno_is_read
        - ovs_replay_unlock
        - replay_pstream_cast
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:402,33'
          Dst:             replay_pstream_cast
        - Src:             'lib/stream-replay.c:403,22'
          Dst:             ovs_replay_normalized_seqno
        - Src:             'lib/stream-replay.c:407,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:408,30'
          Dst:             ovs_replay_seqno
        - Src:             'lib/stream-replay.c:408,5'
          Dst:             ovs_ignore
        - Src:             'lib/stream-replay.c:410,23'
          Dst:             ovs_replay_seqno
        - Src:             'lib/stream-replay.c:411,13'
          Dst:             ovs_replay_seqno_is_read
        - Src:             'lib/stream-replay.c:413,9'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:417,14'
          Dst:             ovs_replay_read
        - Src:             'lib/stream-replay.c:420,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:422,9'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:426,5'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:430,18'
          Dst:             new_replay_stream
    - functionName:    pstream_replay_wait
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - poll_immediate_wake_at
        - replay_pstream_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:441,33'
          Dst:             replay_pstream_cast
        - Src:             'lib/stream-replay.c:445,9'
          Dst:             poll_immediate_wake_at
    - functionName:    ovs_replay_normalized_seqno
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_replay_seqno_is_read
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.h'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    new_replay_stream
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          125
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ovs_replay_file_close
        - ovs_replay_file_open
        - ovs_replay_lock
        - ovs_replay_read
        - ovs_replay_unlock
        - stream_init
        - vlog_rate_limit
        - xmalloc
        - xstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:59,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:60,13'
          Dst:             ovs_replay_file_open
        - Src:             'lib/stream-replay.c:62,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:66,13'
          Dst:             ovs_replay_read
        - Src:             'lib/stream-replay.c:68,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:69,9'
          Dst:             ovs_replay_file_close
        - Src:             'lib/stream-replay.c:75,9'
          Dst:             ovs_replay_file_close
        - Src:             'lib/stream-replay.c:79,9'
          Dst:             xmalloc
        - Src:             'lib/stream-replay.c:80,54'
          Dst:             xstrdup
        - Src:             'lib/stream-replay.c:80,5'
          Dst:             stream_init
        - Src:             'lib/stream-replay.c:85,5'
          Dst:             ovs_replay_unlock
    - functionName:    stream_replay_open
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - new_replay_stream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:154,12'
          Dst:             new_replay_stream
    - functionName:    stream_replay_close
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_replay_file_close
        - stream_replay_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:160,31'
          Dst:             stream_replay_cast
        - Src:             'lib/stream-replay.c:161,5'
          Dst:             ovs_replay_file_close
    - functionName:    stream_replay_recv
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          117
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ovs_ignore
        - ovs_replay_lock
        - ovs_replay_normalized_seqno
        - ovs_replay_read
        - ovs_replay_seqno
        - ovs_replay_seqno_is_read
        - ovs_replay_unlock
        - stream_replay_cast
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:168,31'
          Dst:             stream_replay_cast
        - Src:             'lib/stream-replay.c:169,22'
          Dst:             ovs_replay_normalized_seqno
        - Src:             'lib/stream-replay.c:172,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:173,30'
          Dst:             ovs_replay_seqno
        - Src:             'lib/stream-replay.c:173,5'
          Dst:             ovs_ignore
        - Src:             'lib/stream-replay.c:175,23'
          Dst:             ovs_replay_seqno
        - Src:             'lib/stream-replay.c:176,13'
          Dst:             ovs_replay_seqno_is_read
        - Src:             'lib/stream-replay.c:181,13'
          Dst:             ovs_replay_read
        - Src:             'lib/stream-replay.c:183,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:188,5'
          Dst:             ovs_replay_unlock
    - functionName:    stream_replay_send
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          130
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - ovs_ignore
        - ovs_replay_lock
        - ovs_replay_normalized_seqno
        - ovs_replay_read
        - ovs_replay_seqno
        - ovs_replay_seqno_is_read
        - ovs_replay_unlock
        - stream_replay_cast
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:196,31'
          Dst:             stream_replay_cast
        - Src:             'lib/stream-replay.c:197,22'
          Dst:             ovs_replay_normalized_seqno
        - Src:             'lib/stream-replay.c:200,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:201,30'
          Dst:             ovs_replay_seqno
        - Src:             'lib/stream-replay.c:201,5'
          Dst:             ovs_ignore
        - Src:             'lib/stream-replay.c:203,23'
          Dst:             ovs_replay_seqno
        - Src:             'lib/stream-replay.c:204,12'
          Dst:             ovs_replay_seqno_is_read
        - Src:             'lib/stream-replay.c:209,13'
          Dst:             ovs_replay_read
        - Src:             'lib/stream-replay.c:211,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:214,5'
          Dst:             ovs_ignore
        - Src:             'lib/stream-replay.c:217,5'
          Dst:             ovs_replay_unlock
    - functionName:    stream_replay_wait
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          83
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - abort
        - ovs_replay_seqno_is_read
        - poll_immediate_wake_at
        - stream_replay_cast
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:225,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/stream-replay.c:224,31'
          Dst:             stream_replay_cast
        - Src:             'lib/stream-replay.c:228,9'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/stream-replay.c:232,37'
          Dst:             ovs_replay_seqno_is_read
        - Src:             'lib/stream-replay.c:234,13'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/stream-replay.c:239,36'
          Dst:             ovs_replay_seqno_is_read
        - Src:             'lib/stream-replay.c:241,13'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/stream-replay.c:246,9'
          Dst:             abort
    - functionName:    stream_replay_cast
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_assert_class
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:92,5'
          Dst:             stream_assert_class
    - functionName:    stream_assert_class
      functionSourceFile: '/src/openvswitch/lib/stream-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-provider.h:43,5'
          Dst:             ovs_ignore
    - functionName:    pstream_replay_close_wfd
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 386
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_replay_file_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:384,9'
          Dst:             ovs_replay_file_close
    - functionName:    pstream_replay_write_accept
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 378
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          131
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - ovs_replay_get_state
        - ovs_replay_write
        - strlen
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:361,17'
          Dst:             ovs_replay_get_state
        - Src:             'lib/stream-replay.c:369,15'
          Dst:             strlen
        - Src:             'lib/stream-replay.c:370,13'
          Dst:             ovs_replay_write
        - Src:             'lib/stream-replay.c:371,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:374,16'
          Dst:             ovs_replay_write
        - Src:             'lib/stream-replay.c:375,9'
          Dst:             vlog_rate_limit
    - functionName:    pstream_replay_open_wfd
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          125
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - ovs_replay_file_close
        - ovs_replay_file_open
        - ovs_replay_get_state
        - ovs_replay_lock
        - ovs_replay_unlock
        - ovs_replay_write
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:327,17'
          Dst:             ovs_replay_get_state
        - Src:             'lib/stream-replay.c:335,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:336,13'
          Dst:             ovs_replay_file_open
        - Src:             'lib/stream-replay.c:338,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:339,9'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:342,5'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:344,9'
          Dst:             ovs_replay_write
        - Src:             'lib/stream-replay.c:345,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:351,9'
          Dst:             ovs_replay_file_close
    - functionName:    stream_replay_close_wfd
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_replay_file_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:146,9'
          Dst:             ovs_replay_file_close
    - functionName:    stream_replay_write
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ovs_replay_get_state
        - ovs_replay_write
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:131,17'
          Dst:             ovs_replay_get_state
        - Src:             'lib/stream-replay.c:137,9'
          Dst:             ovs_replay_write
        - Src:             'lib/stream-replay.c:138,9'
          Dst:             vlog_rate_limit
    - functionName:    stream_replay_open_wfd
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          125
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - ovs_replay_file_close
        - ovs_replay_file_open
        - ovs_replay_get_state
        - ovs_replay_lock
        - ovs_replay_unlock
        - ovs_replay_write
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:99,17'
          Dst:             ovs_replay_get_state
        - Src:             'lib/stream-replay.c:107,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:108,13'
          Dst:             ovs_replay_file_open
        - Src:             'lib/stream-replay.c:110,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:111,9'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:114,5'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:116,9'
          Dst:             ovs_replay_write
        - Src:             'lib/stream-replay.c:117,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:122,9'
          Dst:             ovs_replay_file_close
    - functionName:    init_this_module_stream_tcp
      functionSourceFile: '/src/openvswitch/lib/stream-tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-tcp.c:36,1'
          Dst:             vlog_insert_module
    - functionName:    ptcp_accept
      functionSourceFile: '/src/openvswitch/lib/stream-tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_cstr
        - ds_put_format
        - ds_steal_cstr
        - new_tcp_stream
        - ss_format_address
        - ss_get_port
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-tcp.c:125,5'
          Dst:             ds_put_cstr
        - Src:             'lib/stream-tcp.c:126,5'
          Dst:             ss_format_address
        - Src:             'lib/stream-tcp.c:127,38'
          Dst:             ss_get_port
        - Src:             'lib/stream-tcp.c:127,5'
          Dst:             ds_put_format
        - Src:             'lib/stream-tcp.c:129,27'
          Dst:             ds_steal_cstr
        - Src:             'lib/stream-tcp.c:129,12'
          Dst:             new_tcp_stream
    - functionName:    new_tcp_stream
      functionSourceFile: '/src/openvswitch/lib/stream-tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - new_fd_stream
        - setsockopt_tcp_nodelay
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-tcp.c:45,9'
          Dst:             setsockopt_tcp_nodelay
        - Src:             'lib/stream-tcp.c:48,12'
          Dst:             new_fd_stream
    - functionName:    new_pstream
      functionSourceFile: '/src/openvswitch/lib/stream-tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          92
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ds_put_cstr
        - ds_put_format
        - ds_steal_cstr
        - htons
        - inet_open_passive
        - new_fd_pstream
        - pstream_set_bound_port
        - ptcp_accept
        - ss_format_address
        - ss_get_port
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-tcp.c:91,10'
          Dst:             inet_open_passive
        - Src:             'lib/stream-tcp.c:99,55'
          Dst:             ss_get_port
        - Src:             'lib/stream-tcp.c:99,9'
          Dst:             ds_put_format
        - Src:             'lib/stream-tcp.c:100,9'
          Dst:             ss_format_address
        - Src:             'lib/stream-tcp.c:102,9'
          Dst:             ds_put_cstr
        - Src:             'lib/stream-tcp.c:105,28'
          Dst:             ds_steal_cstr
        - Src:             'lib/stream-tcp.c:105,13'
          Dst:             new_fd_pstream
        - Src:             'lib/stream-tcp.c:105,13'
          Dst:             ptcp_accept
        - Src:             'lib/stream-tcp.c:108,49'
          Dst:             ss_get_port
        - Src:             'lib/stream-tcp.c:108,43'
          Dst:             htons
        - Src:             'lib/stream-tcp.c:108,9'
          Dst:             pstream_set_bound_port
    - functionName:    ptcp_open
      functionSourceFile: '/src/openvswitch/lib/stream-tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - new_pstream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-tcp.c:117,12'
          Dst:             new_pstream
    - functionName:    tcp_open
      functionSourceFile: '/src/openvswitch/lib/stream-tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - inet_open_active
        - new_tcp_stream
        - ovs_strerror
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-tcp.c:56,13'
          Dst:             inet_open_active
        - Src:             'lib/stream-tcp.c:58,31'
          Dst:             xstrdup
        - Src:             'lib/stream-tcp.c:58,16'
          Dst:             new_tcp_stream
        - Src:             'lib/stream-tcp.c:60,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-tcp.c:60,9'
          Dst:             vlog
    - functionName:    syslog_direct_log
      functionSourceFile: '/src/openvswitch/lib/syslog-direct.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          117
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - ds_cstr
        - ds_destroy
        - ds_put_format
        - send
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/syslog-direct.c:99,5'
          Dst:             ds_put_format
        - Src:             'lib/syslog-direct.c:100,16'
          Dst:             ds_cstr
        - Src:             'lib/syslog-direct.c:101,16'
          Dst:             strlen
        - Src:             'lib/syslog-direct.c:101,16'
          Dst:             strlen
        - Src:             'lib/syslog-direct.c:102,12'
          Dst:             send
        - Src:             'lib/syslog-direct.c:102,58'
          Dst:             __errno_location
        - Src:             'lib/syslog-direct.c:109,5'
          Dst:             ds_destroy
    - functionName:    syslog_direct_open
      functionSourceFile: '/src/openvswitch/lib/syslog-direct.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    syslog_direct_create
      functionSourceFile: '/src/openvswitch/lib/syslog-direct.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - inet_open_active
        - make_unix_socket
        - strncmp
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/syslog-direct.c:52,34'
          Dst:             xmalloc
        - Src:             'lib/syslog-direct.c:60,10'
          Dst:             strncmp
        - Src:             'lib/syslog-direct.c:61,9'
          Dst:             inet_open_active
        - Src:             'lib/syslog-direct.c:62,17'
          Dst:             strncmp
        - Src:             'lib/syslog-direct.c:63,20'
          Dst:             make_unix_socket
    - functionName:    syslog_libc_log
      functionSourceFile: '/src/openvswitch/lib/syslog-libc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - syslog
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/syslog-libc.c:75,5'
          Dst:             syslog
    - functionName:    syslog
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    syslog_libc_open
      functionSourceFile: '/src/openvswitch/lib/syslog-libc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nullable_xstrdup
        - openlog
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/syslog-libc.c:67,13'
          Dst:             nullable_xstrdup
        - Src:             'lib/syslog-libc.c:69,5'
          Dst:             openlog
    - functionName:    openlog
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    syslog_libc_create
      functionSourceFile: '/src/openvswitch/lib/syslog-libc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xmalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/syslog-libc.c:49,32'
          Dst:             xmalloc
    - functionName:    syslog_null_log
      functionSourceFile: '/src/openvswitch/lib/syslog-null.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    syslog_null_open
      functionSourceFile: '/src/openvswitch/lib/syslog-null.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    syslog_null_create
      functionSourceFile: '/src/openvswitch/lib/syslog-null.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/syslog-null.c:41,32'
          Dst:             xmalloc
    - functionName:    token_bucket_wait_at
      functionSourceFile: '/src/openvswitch/lib/token-bucket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - poll_immediate_wake_at
        - poll_timer_wait_until_at
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/token-bucket.c:92,9'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/token-bucket.c:95,9'
          Dst:             poll_timer_wait_until_at
    - functionName:    sat_add
      functionSourceFile: '/src/openvswitch/lib/sat-math.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sat_mul
      functionSourceFile: '/src/openvswitch/lib/sat-math.h'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          36
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    token_bucket_withdraw
      functionSourceFile: '/src/openvswitch/lib/token-bucket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          132
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - sat_add
        - sat_mul
        - time_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/token-bucket.c:65,29'
          Dst:             time_msec
        - Src:             'lib/token-bucket.c:70,32'
          Dst:             sat_mul
        - Src:             'lib/token-bucket.c:71,35'
          Dst:             sat_add
    - functionName:    token_bucket_set
      functionSourceFile: '/src/openvswitch/lib/token-bucket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          37
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    token_bucket_init
      functionSourceFile: '/src/openvswitch/lib/token-bucket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          24
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_daemon_unix
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:46,1'
          Dst:             vlog_insert_module
    - functionName:    lock_pidfile__
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fcntl
        - fileno
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:567,23'
          Dst:             fileno
        - Src:             'lib/daemon-unix.c:567,17'
          Dst:             fcntl
        - Src:             'lib/daemon-unix.c:567,59'
          Dst:             __errno_location
    - functionName:    fileno
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_already_running
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - read_pidfile__
        - vlog_fatal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:703,20'
          Dst:             read_pidfile__
        - Src:             'lib/daemon-unix.c:705,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:707,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:707,9'
          Dst:             vlog_fatal
    - functionName:    read_pidfile__
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         103
      ICount:          488
      EdgeCount:       134
      CyclomaticComplexity: 33
      functionsReached:
        - __errno_location
        - fclose
        - ferror
        - fgets
        - fileno
        - fopen
        - fstat
        - getpid
        - lock_pidfile
        - lock_pidfile__
        - ovs_strerror
        - stat
        - strtoul
        - unlink
        - vlog
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:590,13'
          Dst:             stat
        - Src:             'lib/daemon-unix.c:597,16'
          Dst:             getpid
        - Src:             'lib/daemon-unix.c:600,12'
          Dst:             fopen
        - Src:             'lib/daemon-unix.c:602,13'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:605,17'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:606,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:606,9'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:610,13'
          Dst:             lock_pidfile__
        - Src:             'lib/daemon-unix.c:612,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:612,9'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:625,13'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:630,17'
          Dst:             lock_pidfile
        - Src:             'lib/daemon-unix.c:633,13'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:638,13'
          Dst:             stat
        - Src:             'lib/daemon-unix.c:638,41'
          Dst:             fileno
        - Src:             'lib/daemon-unix.c:638,35'
          Dst:             fstat
        - Src:             'lib/daemon-unix.c:643,13'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:648,13'
          Dst:             unlink
        - Src:             'lib/daemon-unix.c:649,21'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:650,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:650,13'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:654,9'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:655,9'
          Dst:             fclose
        - Src:             'lib/daemon-unix.c:659,10'
          Dst:             fgets
        - Src:             'lib/daemon-unix.c:660,13'
          Dst:             ferror
        - Src:             'lib/daemon-unix.c:661,21'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:662,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:662,13'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:665,13'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:670,22'
          Dst:             strtoul
        - Src:             'lib/daemon-unix.c:675,9'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:680,5'
          Dst:             fclose
        - Src:             'lib/daemon-unix.c:685,9'
          Dst:             fclose
    - functionName:    lock_pidfile
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 577
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lock_pidfile__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:577,12'
          Dst:             lock_pidfile__
    - functionName:    strtoul
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    should_restart
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fork_and_clean_up
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          38
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fatal_signal_fork
        - lockfile_postfork
        - xfork_at
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:230,17'
          Dst:             xfork_at
        - Src:             'lib/daemon-unix.c:233,9'
          Dst:             fatal_signal_fork
        - Src:             'lib/daemon-unix.c:236,9'
          Dst:             lockfile_postfork
    - functionName:    enlarge_buffer
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 939
      functionLinenumberEnd: 949
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - xrealloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:943,16'
          Dst:             xrealloc
    - functionName:    get_sysconf_buffer_size
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 898
      functionLinenumberEnd: 931
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         21
      ICount:          111
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - ovs_strerror
        - sysconf
        - vlog_fatal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:903,5'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:904,19'
          Dst:             sysconf
        - Src:             'lib/daemon-unix.c:905,13'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:906,13'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:906,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:906,13'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:917,5'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:918,19'
          Dst:             sysconf
        - Src:             'lib/daemon-unix.c:919,13'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:920,13'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:920,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:920,13'
          Dst:             vlog_fatal
    - functionName:    daemon_set_new_user
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 964
      functionLinenumberEnd: 1066
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         60
      ICount:          333
      EdgeCount:       74
      CyclomaticComplexity: 16
      functionsReached:
        - enlarge_buffer
        - get_sysconf_buffer_size
        - geteuid
        - getgid
        - getgrnam_r
        - getpwnam_r
        - getpwuid_r
        - getuid
        - ovs_strerror
        - strchr
        - strcmp
        - strlen
        - strspn
        - vlog_fatal
        - xmalloc
        - xmemdup0
        - xstrdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:965,23'
          Dst:             strchr
        - Src:             'lib/daemon-unix.c:968,20'
          Dst:             get_sysconf_buffer_size
        - Src:             'lib/daemon-unix.c:969,11'
          Dst:             getuid
        - Src:             'lib/daemon-unix.c:970,11'
          Dst:             getgid
        - Src:             'lib/daemon-unix.c:972,9'
          Dst:             geteuid
        - Src:             'lib/daemon-unix.c:973,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:976,18'
          Dst:             strspn
        - Src:             'lib/daemon-unix.c:977,42'
          Dst:             strlen
        - Src:             'lib/daemon-unix.c:983,11'
          Dst:             xmalloc
        - Src:             'lib/daemon-unix.c:985,16'
          Dst:             xmemdup0
        - Src:             'lib/daemon-unix.c:987,21'
          Dst:             getpwnam_r
        - Src:             'lib/daemon-unix.c:988,18'
          Dst:             enlarge_buffer
        - Src:             'lib/daemon-unix.c:994,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:994,13'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:998,13'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:1002,21'
          Dst:             getpwuid_r
        - Src:             'lib/daemon-unix.c:1003,18'
          Dst:             enlarge_buffer
        - Src:             'lib/daemon-unix.c:1009,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:1009,13'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:1012,16'
          Dst:             xstrdup
        - Src:             'lib/daemon-unix.c:1021,19'
          Dst:             strspn
        - Src:             'lib/daemon-unix.c:1027,19'
          Dst:             xmalloc
        - Src:             'lib/daemon-unix.c:1028,25'
          Dst:             getgrnam_r
        - Src:             'lib/daemon-unix.c:1030,22'
          Dst:             enlarge_buffer
        - Src:             'lib/daemon-unix.c:1036,17'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:1036,17'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:1041,17'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:1049,26'
          Dst:             strcmp
        - Src:             'lib/daemon-unix.c:1055,21'
          Dst:             vlog_fatal
    - functionName:    getuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getgid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    geteuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpwnam_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpwuid_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getgrnam_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    daemon_become_new_user
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 879
      functionLinenumberEnd: 886
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - assert_single_threaded_at
        - daemon_become_new_user__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:880,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/daemon-unix.c:882,9'
          Dst:             daemon_become_new_user__
    - functionName:    daemon_become_new_user__
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 858
      functionLinenumberEnd: 865
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_change_owner_unix
        - vlog_fatal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:858,5'
          Dst:             vlog_change_owner_unix
        - Src:             'lib/daemon-unix.c:865,13'
          Dst:             vlog_fatal
    - functionName:    read_pidfile
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - read_pidfile__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:695,12'
          Dst:             read_pidfile__
    - functionName:    daemon_usage
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_rundir
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:552,9'
          Dst:             ovs_rundir
        - Src:             'lib/daemon-unix.c:543,5'
          Dst:             printf
    - functionName:    daemonize_post_detach
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          35
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chdir
        - close_standard_fds
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:534,24'
          Dst:             chdir
        - Src:             'lib/daemon-unix.c:534,13'
          Dst:             ovs_ignore
        - Src:             'lib/daemon-unix.c:536,9'
          Dst:             close_standard_fds
    - functionName:    chdir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    daemonize_complete
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - daemonize_post_detach
        - fork_notify_startup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:517,9'
          Dst:             fork_notify_startup
        - Src:             'lib/daemon-unix.c:518,9'
          Dst:             daemonize_post_detach
    - functionName:    fork_notify_startup
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_strerror
        - vlog_fatal
        - write_fully
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:314,17'
          Dst:             write_fully
        - Src:             'lib/daemon-unix.c:316,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:316,13'
          Dst:             vlog_fatal
    - functionName:    make_pidfile
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         21
      ICount:          163
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - check_already_running
        - fatal_signal_add_file_to_unlink
        - fatal_signal_remove_file_to_unlink
        - fflush
        - fileno
        - fopen
        - fprintf
        - fstat
        - ftruncate
        - getpid
        - lock_pidfile
        - ovs_strerror
        - rename
        - vlog_fatal
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:147,20'
          Dst:             getpid
        - Src:             'lib/daemon-unix.c:155,19'
          Dst:             xasprintf
        - Src:             'lib/daemon-unix.c:156,9'
          Dst:             fatal_signal_add_file_to_unlink
        - Src:             'lib/daemon-unix.c:161,19'
          Dst:             xasprintf
        - Src:             'lib/daemon-unix.c:164,12'
          Dst:             fopen
        - Src:             'lib/daemon-unix.c:166,9'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:166,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:166,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:169,13'
          Dst:             lock_pidfile
        - Src:             'lib/daemon-unix.c:174,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:174,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:181,9'
          Dst:             fatal_signal_add_file_to_unlink
        - Src:             'lib/daemon-unix.c:182,9'
          Dst:             check_already_running
        - Src:             'lib/daemon-unix.c:185,15'
          Dst:             fileno
        - Src:             'lib/daemon-unix.c:185,9'
          Dst:             fstat
        - Src:             'lib/daemon-unix.c:186,9'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:186,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:186,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:189,19'
          Dst:             fileno
        - Src:             'lib/daemon-unix.c:189,9'
          Dst:             ftruncate
        - Src:             'lib/daemon-unix.c:190,9'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:190,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:190,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:193,5'
          Dst:             fprintf
        - Src:             'lib/daemon-unix.c:194,9'
          Dst:             fflush
        - Src:             'lib/daemon-unix.c:195,9'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:195,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:195,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:198,13'
          Dst:             rename
        - Src:             'lib/daemon-unix.c:202,5'
          Dst:             fatal_signal_remove_file_to_unlink
        - Src:             'lib/daemon-unix.c:205,9'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:205,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:205,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:210,5'
          Dst:             fatal_signal_add_file_to_unlink
    - functionName:    ftruncate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rename
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    monitor_daemon
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         64
      ICount:          325
      EdgeCount:       79
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - close
        - exit
        - fork_and_wait_for_startup
        - log_received_backtrace
        - ovs_cmdl_proctitle_restore
        - ovs_cmdl_proctitle_set
        - ovs_strerror
        - process_status_msg
        - set_subprogram_name
        - setrlimit
        - should_restart
        - time
        - vlog
        - vlog_close_log_file
        - vlog_fatal
        - vlog_get_log_file
        - vlog_set_log_file
        - waitpid
        - xasprintf
        - xsleep
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:353,5'
          Dst:             set_subprogram_name
        - Src:             'lib/daemon-unix.c:354,18'
          Dst:             xstrdup
        - Src:             'lib/daemon-unix.c:360,9'
          Dst:             ovs_cmdl_proctitle_set
        - Src:             'lib/daemon-unix.c:364,30'
          Dst:             vlog_get_log_file
        - Src:             'lib/daemon-unix.c:365,13'
          Dst:             vlog_close_log_file
        - Src:             'lib/daemon-unix.c:368,26'
          Dst:             waitpid
        - Src:             'lib/daemon-unix.c:369,40'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:371,13'
          Dst:             vlog_set_log_file
        - Src:             'lib/daemon-unix.c:374,17'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:374,17'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:379,23'
          Dst:             process_status_msg
        - Src:             'lib/daemon-unix.c:380,17'
          Dst:             should_restart
        - Src:             'lib/daemon-unix.c:382,30'
          Dst:             xasprintf
        - Src:             'lib/daemon-unix.c:393,25'
          Dst:             setrlimit
        - Src:             'lib/daemon-unix.c:394,25'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:394,25'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:394,25'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:399,17'
          Dst:             log_received_backtrace
        - Src:             'lib/daemon-unix.c:400,17'
          Dst:             close
        - Src:             'lib/daemon-unix.c:404,21'
          Dst:             time
        - Src:             'lib/daemon-unix.c:405,21'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:408,38'
          Dst:             time
        - Src:             'lib/daemon-unix.c:413,25'
          Dst:             xsleep
        - Src:             'lib/daemon-unix.c:416,32'
          Dst:             time
        - Src:             'lib/daemon-unix.c:418,17'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:419,32'
          Dst:             fork_and_wait_for_startup
        - Src:             'lib/daemon-unix.c:427,17'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:430,17'
          Dst:             exit
        - Src:             'lib/daemon-unix.c:437,5'
          Dst:             ovs_cmdl_proctitle_restore
        - Src:             'lib/daemon-unix.c:438,5'
          Dst:             set_subprogram_name
    - functionName:    waitpid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setrlimit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    time
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fork_and_wait_for_startup
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          182
      EdgeCount:       42
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - abort
        - close
        - exit
        - fork_and_clean_up
        - ovs_strerror
        - process_status_msg
        - read_fully
        - vlog
        - vlog_fatal
        - waitpid
        - xpipe
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:262,5'
          Dst:             xpipe
        - Src:             'lib/daemon-unix.c:264,11'
          Dst:             fork_and_clean_up
        - Src:             'lib/daemon-unix.c:270,9'
          Dst:             close
        - Src:             'lib/daemon-unix.c:271,13'
          Dst:             read_fully
        - Src:             'lib/daemon-unix.c:276,26'
          Dst:             waitpid
        - Src:             'lib/daemon-unix.c:277,38'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:283,21'
          Dst:             exit
        - Src:             'lib/daemon-unix.c:285,40'
          Dst:             process_status_msg
        - Src:             'lib/daemon-unix.c:286,21'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:292,17'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:292,17'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:292,17'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:294,17'
          Dst:             abort
        - Src:             'lib/daemon-unix.c:300,9'
          Dst:             close
    - functionName:    daemonize_start
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          127
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - assert_single_threaded_at
        - close_standard_fds
        - daemon_become_new_user__
        - exit
        - forbid_forking
        - fork_and_wait_for_startup
        - fork_notify_startup
        - make_pidfile
        - monitor_daemon
        - setsid
        - vlog_fatal
        - vlog_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:449,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/daemon-unix.c:453,9'
          Dst:             daemon_become_new_user__
        - Src:             'lib/daemon-unix.c:460,13'
          Dst:             fork_and_wait_for_startup
        - Src:             'lib/daemon-unix.c:461,13'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:465,13'
          Dst:             exit
        - Src:             'lib/daemon-unix.c:469,9'
          Dst:             setsid
        - Src:             'lib/daemon-unix.c:476,13'
          Dst:             fork_and_wait_for_startup
        - Src:             'lib/daemon-unix.c:477,13'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:481,13'
          Dst:             fork_notify_startup
        - Src:             'lib/daemon-unix.c:483,17'
          Dst:             close_standard_fds
        - Src:             'lib/daemon-unix.c:485,13'
          Dst:             monitor_daemon
        - Src:             'lib/daemon-unix.c:490,5'
          Dst:             forbid_forking
        - Src:             'lib/daemon-unix.c:493,9'
          Dst:             make_pidfile
        - Src:             'lib/daemon-unix.c:498,5'
          Dst:             vlog_init
    - functionName:    setsid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    daemon_set_monitor
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_detach
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ignore_existing_pidfile
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_no_chdir
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    make_pidfile_name
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - abs_file_name
        - ovs_rundir
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:105,38'
          Dst:             ovs_rundir
        - Src:             'lib/daemon-unix.c:105,15'
          Dst:             xasprintf
        - Src:             'lib/daemon-unix.c:106,29'
          Dst:             ovs_rundir
        - Src:             'lib/daemon-unix.c:106,15'
          Dst:             abs_file_name
    - functionName:    init_this_module_signals
      functionSourceFile: '/src/openvswitch/lib/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/signals.c:30,1'
          Dst:             vlog_insert_module
    - functionName:    xsigaction
      functionSourceFile: '/src/openvswitch/lib/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - ovs_strerror
        - sigaction
        - signal_name
        - vlog_fatal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/signals.c:73,9'
          Dst:             sigaction
        - Src:             'lib/signals.c:76,9'
          Dst:             signal_name
        - Src:             'lib/signals.c:76,9'
          Dst:             __errno_location
        - Src:             'lib/signals.c:76,9'
          Dst:             ovs_strerror
        - Src:             'lib/signals.c:76,9'
          Dst:             vlog_fatal
    - functionName:    sigaction
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    signal_name
      functionSourceFile: '/src/openvswitch/lib/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - snprintf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/signals.c:66,5'
          Dst:             snprintf
    - functionName:    crc32c
      functionSourceFile: '/src/openvswitch/lib/crc32c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          40
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unaligned_be16
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_16aligned_be32
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    recalc_csum128
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          57
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - get_16aligned_be32
        - recalc_csum32
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/csum.c:135,34'
          Dst:             get_16aligned_be32
        - Src:             'lib/csum.c:134,20'
          Dst:             recalc_csum32
    - functionName:    recalc_csum32
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - short
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - recalc_csum16
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/csum.c:97,26'
          Dst:             recalc_csum16
        - Src:             'lib/csum.c:97,12'
          Dst:             recalc_csum16
    - functionName:    recalc_csum16
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - csum_finish
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/csum.c:88,12'
          Dst:             csum_finish
    - functionName:    csum_finish
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    recalc_csum48
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          56
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - recalc_csum16
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/csum.c:111,20'
          Dst:             recalc_csum16
    - functionName:    get_unaligned_be16
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unaligned_be16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unaligned.h:89,1'
          Dst:             unaligned_be16
    - functionName:    csum_add16
      functionSourceFile: '/src/openvswitch/lib/csum.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    csum_continue
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - csum_add16
        - get_unaligned_be16
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/csum.c:46,39'
          Dst:             get_unaligned_be16
        - Src:             'lib/csum.c:46,19'
          Dst:             csum_add16
    - functionName:    csum
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - csum_continue
        - csum_finish
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/csum.c:33,24'
          Dst:             csum_continue
        - Src:             'lib/csum.c:33,12'
          Dst:             csum_finish
    - functionName:    init_this_module_daemon
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon.c:26,1'
          Dst:             vlog_insert_module
    - functionName:    get_null_fd
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          67
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - open
        - ovs_strerror
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon.c:110,19'
          Dst:             open
        - Src:             'lib/daemon.c:112,25'
          Dst:             __errno_location
        - Src:             'lib/daemon.c:113,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon.c:113,13'
          Dst:             vlog
    - functionName:    close_standard_fds
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          59
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - dup2
        - get_null_fd
        - vlog_set_levels
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon.c:127,19'
          Dst:             get_null_fd
        - Src:             'lib/daemon.c:133,17'
          Dst:             dup2
        - Src:             'lib/daemon.c:139,5'
          Dst:             vlog_set_levels
    - functionName:    dup2
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    daemon_save_fd
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon.c:94,5'
          Dst:             ovs_ignore
    - functionName:    daemon_should_self_confine
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    daemon_disable_self_confinement
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_pidfile
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - assert_single_threaded_at
        - make_pidfile_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon.c:64,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/daemon.c:66,15'
          Dst:             make_pidfile_name
    - functionName:    daemonize
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - daemonize_complete
        - daemonize_start
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon.c:51,5'
          Dst:             daemonize_start
        - Src:             'lib/daemon.c:52,5'
          Dst:             daemonize_complete
    - functionName:    get_detach
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_ip_checksum_set_good
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1110
      functionLinenumberEnd: 1113
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_ip_checksum_set_good
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1166
      functionLinenumberEnd: 1169
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l3_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l2_pad_size
        - dp_packet_l3
        - dp_packet_tail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:493,25'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:493,59'
          Dst:             dp_packet_l3
        - Src:             'lib/dp-packet.h:494,11'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_tail
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_size
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:327,21'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:327,41'
          Dst:             dp_packet_size
    - functionName:    dp_packet_l3
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:463,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_l2_pad_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 845
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __packet_data
        - dp_packet_base
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:846,12'
          Dst:             __packet_data
        - Src:             'lib/dp-packet.h:847,23'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:847,43'
          Dst:             __packet_data
    - functionName:    __packet_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_base
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 751
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 762
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l3_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_inner_l3
        - dp_packet_l2_pad_size
        - dp_packet_tail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:521,29'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:522,29'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/dp-packet.h:523,14'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_inner_l3
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:513,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_get_allocated
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_end
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_base
        - dp_packet_get_allocated
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:335,21'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:335,41'
          Dst:             dp_packet_get_allocated
    - functionName:    __packet_set_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 780
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_flow_mark_ptr
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_rss_ptr
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_reset_outer_offsets
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_init_specific
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 744
      functionLinenumberEnd: 746
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_reset_offload
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1037
      functionLinenumberEnd: 1040
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_reset_cutlen
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pkt_metadata_init
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          34
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_reset_offsets
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_reset_outer_offsets
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:425,5'
          Dst:             dp_packet_reset_outer_offsets
    - functionName:    dp_packet_init__
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_init_specific
        - dp_packet_reset_cutlen
        - dp_packet_reset_offload
        - dp_packet_reset_offsets
        - dp_packet_set_allocated
        - dp_packet_set_tso_segsz
        - htonl
        - pkt_metadata_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:31,5'
          Dst:             dp_packet_set_allocated
        - Src:             'lib/dp-packet.c:33,5'
          Dst:             dp_packet_reset_offsets
        - Src:             'lib/dp-packet.c:34,5'
          Dst:             pkt_metadata_init
        - Src:             'lib/dp-packet.c:35,5'
          Dst:             dp_packet_reset_cutlen
        - Src:             'lib/dp-packet.c:36,5'
          Dst:             dp_packet_reset_offload
        - Src:             'lib/dp-packet.c:37,5'
          Dst:             dp_packet_set_tso_segsz
        - Src:             'lib/dp-packet.c:39,5'
          Dst:             dp_packet_init_specific
        - Src:             'lib/dp-packet.c:41,22'
          Dst:             htonl
    - functionName:    dp_packet_set_allocated
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 794
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_set_tso_segsz
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 804
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_proto_sctp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1348
      functionLinenumberEnd: 1350
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_proto_udp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1341
      functionLinenumberEnd: 1343
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_proto_tcp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1336
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_tunnel_vxlan
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1076
      functionLinenumberEnd: 1078
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_tunnel_geneve
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1062
      functionLinenumberEnd: 1064
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_proto_sctp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1255
      functionLinenumberEnd: 1257
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_proto_udp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1241
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_proto_tcp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1227
      functionLinenumberEnd: 1229
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_ip_set_header_csum
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1196
      functionLinenumberEnd: 1223
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          109
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - csum
        - dp_packet_inner_ip_checksum_set_good
        - dp_packet_inner_l3
        - dp_packet_inner_l3_size
        - dp_packet_ip_checksum_set_good
        - dp_packet_l3
        - dp_packet_l3_size
        - ovs_ignore
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:1202,14'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/dp-packet.h:1203,19'
          Dst:             dp_packet_inner_l3_size
        - Src:             'lib/dp-packet.h:1205,14'
          Dst:             dp_packet_l3
        - Src:             'lib/dp-packet.h:1206,19'
          Dst:             dp_packet_l3_size
        - Src:             'lib/dp-packet.h:1209,5'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.h:1215,23'
          Dst:             csum
        - Src:             'lib/dp-packet.h:1219,9'
          Dst:             dp_packet_inner_ip_checksum_set_good
        - Src:             'lib/dp-packet.h:1221,9'
          Dst:             dp_packet_ip_checksum_set_good
    - functionName:    dp_packet_tunnel
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1103
      functionLinenumberEnd: 1104
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_checksum_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1301
      functionLinenumberEnd: 1303
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_ip_checksum_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1133
      functionLinenumberEnd: 1135
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_checksum_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1374
      functionLinenumberEnd: 1376
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_ip_checksum_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1175
      functionLinenumberEnd: 1177
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_ol_send_prepare
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         92
      ICount:          366
      EdgeCount:       124
      CyclomaticComplexity: 34
      functionsReached:
        - dp_packet_get_tso_segsz
        - dp_packet_inner_ip_checksum_partial
        - dp_packet_inner_l4_checksum_partial
        - dp_packet_inner_l4_proto_sctp
        - dp_packet_inner_l4_proto_tcp
        - dp_packet_inner_l4_proto_udp
        - dp_packet_ip_checksum_partial
        - dp_packet_ip_set_header_csum
        - dp_packet_l4_checksum_partial
        - dp_packet_l4_proto_sctp
        - dp_packet_l4_proto_tcp
        - dp_packet_l4_proto_udp
        - dp_packet_tunnel
        - dp_packet_tunnel_geneve
        - dp_packet_tunnel_vxlan
        - ovs_ignore
        - packet_sctp_complete_csum
        - packet_tcp_complete_csum
        - packet_udp_complete_csum
        - packet_udp_tunnel_csum
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:575,10'
          Dst:             dp_packet_inner_ip_checksum_partial
        - Src:             'lib/dp-packet.c:576,13'
          Dst:             dp_packet_inner_l4_checksum_partial
        - Src:             'lib/dp-packet.c:578,14'
          Dst:             dp_packet_ip_checksum_partial
        - Src:             'lib/dp-packet.c:579,17'
          Dst:             dp_packet_l4_checksum_partial
        - Src:             'lib/dp-packet.c:584,13'
          Dst:             dp_packet_tunnel
        - Src:             'lib/dp-packet.c:584,13'
          Dst:             dp_packet_get_tso_segsz
        - Src:             'lib/dp-packet.c:589,10'
          Dst:             dp_packet_tunnel
        - Src:             'lib/dp-packet.c:590,13'
          Dst:             dp_packet_ip_checksum_partial
        - Src:             'lib/dp-packet.c:592,13'
          Dst:             dp_packet_ip_set_header_csum
        - Src:             'lib/dp-packet.c:595,13'
          Dst:             dp_packet_l4_checksum_partial
        - Src:             'lib/dp-packet.c:596,17'
          Dst:             dp_packet_l4_proto_tcp
        - Src:             'lib/dp-packet.c:598,21'
          Dst:             packet_tcp_complete_csum
        - Src:             'lib/dp-packet.c:600,24'
          Dst:             dp_packet_l4_proto_udp
        - Src:             'lib/dp-packet.c:602,21'
          Dst:             packet_udp_complete_csum
        - Src:             'lib/dp-packet.c:605,28'
          Dst:             dp_packet_l4_proto_sctp
        - Src:             'lib/dp-packet.c:605,17'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.c:607,21'
          Dst:             packet_sctp_complete_csum
        - Src:             'lib/dp-packet.c:615,9'
          Dst:             dp_packet_tunnel_geneve
        - Src:             'lib/dp-packet.c:615,39'
          Dst:             dp_packet_tunnel_vxlan
        - Src:             'lib/dp-packet.c:621,16'
          Dst:             dp_packet_l4_checksum_partial
        - Src:             'lib/dp-packet.c:623,18'
          Dst:             packet_udp_tunnel_csum
        - Src:             'lib/dp-packet.c:634,9'
          Dst:             dp_packet_inner_ip_checksum_partial
        - Src:             'lib/dp-packet.c:636,9'
          Dst:             dp_packet_ip_set_header_csum
        - Src:             'lib/dp-packet.c:639,9'
          Dst:             dp_packet_inner_l4_checksum_partial
        - Src:             'lib/dp-packet.c:640,13'
          Dst:             dp_packet_inner_l4_proto_tcp
        - Src:             'lib/dp-packet.c:642,17'
          Dst:             packet_tcp_complete_csum
        - Src:             'lib/dp-packet.c:644,20'
          Dst:             dp_packet_inner_l4_proto_udp
        - Src:             'lib/dp-packet.c:646,17'
          Dst:             packet_udp_complete_csum
        - Src:             'lib/dp-packet.c:649,24'
          Dst:             dp_packet_inner_l4_proto_sctp
        - Src:             'lib/dp-packet.c:649,13'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.c:651,17'
          Dst:             packet_sctp_complete_csum
        - Src:             'lib/dp-packet.c:656,9'
          Dst:             dp_packet_ip_checksum_partial
        - Src:             'lib/dp-packet.c:658,9'
          Dst:             dp_packet_ip_set_header_csum
        - Src:             'lib/dp-packet.c:661,9'
          Dst:             dp_packet_l4_checksum_partial
        - Src:             'lib/dp-packet.c:662,20'
          Dst:             dp_packet_l4_proto_udp
        - Src:             'lib/dp-packet.c:662,9'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.c:664,13'
          Dst:             packet_udp_complete_csum
    - functionName:    dp_packet_get_tso_segsz
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_compare_offsets
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          181
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - ds_put_format
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:551,13'
          Dst:             ds_put_format
        - Src:             'lib/dp-packet.c:552,13'
          Dst:             ds_put_format
        - Src:             'lib/dp-packet.c:558,13'
          Dst:             ds_put_format
    - functionName:    dp_packet_resize_l2
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 534
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_adjust_layer_offset
        - dp_packet_data
        - dp_packet_resize_l2_5
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:535,5'
          Dst:             dp_packet_resize_l2_5
        - Src:             'lib/dp-packet.c:536,5'
          Dst:             dp_packet_adjust_layer_offset
        - Src:             'lib/dp-packet.c:537,12'
          Dst:             dp_packet_data
    - functionName:    dp_packet_resize_l2_5
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_adjust_layer_offset
        - dp_packet_data
        - dp_packet_pull
        - dp_packet_push_uninit
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:515,9'
          Dst:             dp_packet_push_uninit
        - Src:             'lib/dp-packet.c:517,9'
          Dst:             dp_packet_pull
        - Src:             'lib/dp-packet.c:521,5'
          Dst:             dp_packet_adjust_layer_offset
        - Src:             'lib/dp-packet.c:522,5'
          Dst:             dp_packet_adjust_layer_offset
        - Src:             'lib/dp-packet.c:523,5'
          Dst:             dp_packet_adjust_layer_offset
        - Src:             'lib/dp-packet.c:524,5'
          Dst:             dp_packet_adjust_layer_offset
        - Src:             'lib/dp-packet.c:526,12'
          Dst:             dp_packet_data
    - functionName:    dp_packet_adjust_layer_offset
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_push_uninit
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_prealloc_headroom
        - dp_packet_set_data
        - dp_packet_set_size
        - dp_packet_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:449,5'
          Dst:             dp_packet_prealloc_headroom
        - Src:             'lib/dp-packet.c:450,34'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:450,5'
          Dst:             dp_packet_set_data
        - Src:             'lib/dp-packet.c:451,27'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:451,5'
          Dst:             dp_packet_set_size
        - Src:             'lib/dp-packet.c:452,12'
          Dst:             dp_packet_data
    - functionName:    dp_packet_pull
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_l2_pad_size
        - dp_packet_set_data
        - dp_packet_set_size
        - dp_packet_size
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:371,18'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:372,16'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.h:372,36'
          Dst:             dp_packet_l2_pad_size
        - Src:             'lib/dp-packet.h:372,5'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.h:373,36'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:373,5'
          Dst:             dp_packet_set_data
        - Src:             'lib/dp-packet.h:374,27'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.h:374,5'
          Dst:             dp_packet_set_size
    - functionName:    dp_packet_set_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 852
      functionLinenumberEnd: 858
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __packet_set_data
        - dp_packet_base
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:854,55'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:854,9'
          Dst:             __packet_set_data
        - Src:             'lib/dp-packet.h:856,9'
          Dst:             __packet_set_data
    - functionName:    dp_packet_set_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_prealloc_headroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_headroom
        - dp_packet_resize
        - dp_packet_tailroom
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:332,16'
          Dst:             dp_packet_headroom
        - Src:             'lib/dp-packet.c:333,44'
          Dst:             dp_packet_tailroom
        - Src:             'lib/dp-packet.c:333,9'
          Dst:             dp_packet_resize
    - functionName:    dp_packet_headroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_base
        - dp_packet_data
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:345,21'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:345,50'
          Dst:             dp_packet_base
    - functionName:    dp_packet_tailroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_end
        - dp_packet_tail
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:353,21'
          Dst:             dp_packet_end
        - Src:             'lib/dp-packet.h:353,49'
          Dst:             dp_packet_tail
    - functionName:    dp_packet_resize
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          128
      EdgeCount:       29
      CyclomaticComplexity: 15
      functionsReached:
        - abort
        - dp_packet_base
        - dp_packet_copy__
        - dp_packet_data
        - dp_packet_headroom
        - dp_packet_set_allocated
        - dp_packet_set_base
        - dp_packet_set_data
        - dp_packet_size
        - xmalloc
        - xrealloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:257,5'
          Branch Sides:    []
      Callsites:
        - Src:             'lib/dp-packet.c:255,36'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:276,9'
          Dst:             abort
        - Src:             'lib/dp-packet.c:281,29'
          Dst:             dp_packet_headroom
        - Src:             'lib/dp-packet.c:282,33'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:282,24'
          Dst:             xrealloc
        - Src:             'lib/dp-packet.c:284,24'
          Dst:             xmalloc
        - Src:             'lib/dp-packet.c:285,13'
          Dst:             dp_packet_copy__
        - Src:             'lib/dp-packet.c:286,18'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:291,9'
          Dst:             abort
        - Src:             'lib/dp-packet.c:294,9'
          Dst:             abort
        - Src:             'lib/dp-packet.c:298,20'
          Dst:             xmalloc
        - Src:             'lib/dp-packet.c:299,9'
          Dst:             dp_packet_copy__
        - Src:             'lib/dp-packet.c:303,9'
          Dst:             abort
        - Src:             'lib/dp-packet.c:306,5'
          Dst:             dp_packet_set_allocated
        - Src:             'lib/dp-packet.c:307,5'
          Dst:             dp_packet_set_base
        - Src:             'lib/dp-packet.c:310,9'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:311,9'
          Dst:             dp_packet_set_data
    - functionName:    dp_packet_copy__
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_base
        - dp_packet_headroom
        - dp_packet_size
        - dp_packet_tailroom
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:236,31'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:237,27'
          Dst:             dp_packet_headroom
        - Src:             'lib/dp-packet.c:238,27'
          Dst:             dp_packet_tailroom
        - Src:             'lib/dp-packet.c:244,28'
          Dst:             dp_packet_size
    - functionName:    dp_packet_set_base
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 756
      functionLinenumberEnd: 758
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_steal_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          87
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_base
        - dp_packet_data
        - dp_packet_set_base
        - dp_packet_set_data
        - dp_packet_size
        - ovs_ignore
        - xmemdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:484,5'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.c:485,5'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.c:487,38'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:487,59'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:488,13'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:490,21'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:490,40'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:490,13'
          Dst:             xmemdup
        - Src:             'lib/dp-packet.c:492,18'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:495,5'
          Dst:             dp_packet_set_base
        - Src:             'lib/dp-packet.c:496,5'
          Dst:             dp_packet_set_data
    - functionName:    dp_packet_push
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_push_uninit
        - nullable_memcpy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:472,17'
          Dst:             dp_packet_push_uninit
        - Src:             'lib/dp-packet.c:473,5'
          Dst:             nullable_memcpy
    - functionName:    nullable_memcpy
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_push_zeros
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_push_uninit
        - nullable_memset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:461,17'
          Dst:             dp_packet_push_uninit
        - Src:             'lib/dp-packet.c:462,5'
          Dst:             nullable_memset
    - functionName:    nullable_memset
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_reserve_with_tailroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_prealloc_tailroom
        - dp_packet_set_data
        - dp_packet_size
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:438,17'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:438,5'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.c:439,5'
          Dst:             dp_packet_prealloc_tailroom
        - Src:             'lib/dp-packet.c:440,34'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:440,5'
          Dst:             dp_packet_set_data
    - functionName:    dp_packet_prealloc_tailroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - dp_packet_base
        - dp_packet_headroom
        - dp_packet_resize
        - dp_packet_tailroom
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:321,19'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:321,49'
          Dst:             dp_packet_tailroom
        - Src:             'lib/dp-packet.c:322,29'
          Dst:             dp_packet_headroom
        - Src:             'lib/dp-packet.c:322,9'
          Dst:             dp_packet_resize
    - functionName:    dp_packet_put_hex
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_put
        - dp_packet_size
        - hexits_value
        - strspn
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:402,27'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:407,14'
          Dst:             strspn
        - Src:             'lib/dp-packet.c:408,16'
          Dst:             hexits_value
        - Src:             'lib/dp-packet.c:411,22'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:416,9'
          Dst:             dp_packet_put
    - functionName:    dp_packet_put
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_put_uninit
        - nullable_memcpy
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:389,17'
          Dst:             dp_packet_put_uninit
        - Src:             'lib/dp-packet.c:390,5'
          Dst:             nullable_memcpy
    - functionName:    dp_packet_put_uninit
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_prealloc_tailroom
        - dp_packet_set_size
        - dp_packet_size
        - dp_packet_tail
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:366,5'
          Dst:             dp_packet_prealloc_tailroom
        - Src:             'lib/dp-packet.c:367,9'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.c:368,27'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:368,5'
          Dst:             dp_packet_set_size
    - functionName:    dp_packet_put_zeros
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_put_uninit
        - nullable_memset
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:378,17'
          Dst:             dp_packet_put_uninit
        - Src:             'lib/dp-packet.c:379,5'
          Dst:             nullable_memset
    - functionName:    dp_packet_shift
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          90
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_data
        - dp_packet_headroom
        - dp_packet_set_data
        - dp_packet_size
        - dp_packet_tailroom
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:344,37'
          Dst:             dp_packet_tailroom
        - Src:             'lib/dp-packet.c:345,40'
          Dst:             dp_packet_headroom
        - Src:             'lib/dp-packet.c:344,5'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.c:349,31'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:352,9'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.c:354,31'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:355,9'
          Dst:             dp_packet_set_data
    - functionName:    dp_packet_clone_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_clone_data_with_headroom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:218,12'
          Dst:             dp_packet_clone_data_with_headroom
    - functionName:    dp_packet_clone_data_with_headroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_new_with_headroom
        - dp_packet_put
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:227,27'
          Dst:             dp_packet_new_with_headroom
        - Src:             'lib/dp-packet.c:228,5'
          Dst:             dp_packet_put
    - functionName:    dp_packet_new_with_headroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_new
        - dp_packet_reserve
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:165,27'
          Dst:             dp_packet_new
        - Src:             'lib/dp-packet.c:166,5'
          Dst:             dp_packet_reserve
    - functionName:    dp_packet_new
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_init
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:154,27'
          Dst:             xmalloc
        - Src:             'lib/dp-packet.c:156,5'
          Dst:             dp_packet_init
    - functionName:    dp_packet_reserve
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_prealloc_tailroom
        - dp_packet_set_data
        - dp_packet_size
        - ovs_ignore
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:426,17'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:426,5'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.c:427,5'
          Dst:             dp_packet_prealloc_tailroom
        - Src:             'lib/dp-packet.c:428,34'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:428,5'
          Dst:             dp_packet_set_data
    - functionName:    dp_packet_init
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_use
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:128,29'
          Dst:             xmalloc
        - Src:             'lib/dp-packet.c:128,5'
          Dst:             dp_packet_use
    - functionName:    dp_packet_use
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_use__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:62,5'
          Dst:             dp_packet_use__
    - functionName:    dp_packet_use__
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_init__
        - dp_packet_set_base
        - dp_packet_set_data
        - dp_packet_set_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:48,5'
          Dst:             dp_packet_set_base
        - Src:             'lib/dp-packet.c:49,5'
          Dst:             dp_packet_set_data
        - Src:             'lib/dp-packet.c:50,5'
          Dst:             dp_packet_set_size
        - Src:             'lib/dp-packet.c:52,5'
          Dst:             dp_packet_init__
    - functionName:    dp_packet_set_flow_mark
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 1058
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_flow_mark_ptr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:1056,6'
          Dst:             dp_packet_flow_mark_ptr
    - functionName:    dp_packet_has_flow_mark
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1044
      functionLinenumberEnd: 1051
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_flow_mark_ptr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:1046,18'
          Dst:             dp_packet_flow_mark_ptr
    - functionName:    dp_packet_get_rss_hash
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1018
      functionLinenumberEnd: 1019
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_rss_ptr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:1019,13'
          Dst:             dp_packet_rss_ptr
    - functionName:    dp_packet_set_rss_hash
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1024
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_rss_ptr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:1025,6'
          Dst:             dp_packet_rss_ptr
    - functionName:    dp_packet_rss_valid
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1032
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_clone_with_headroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          70
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_clone_data_with_headroom
        - dp_packet_data
        - dp_packet_get_rss_hash
        - dp_packet_get_tso_segsz
        - dp_packet_has_flow_mark
        - dp_packet_rss_valid
        - dp_packet_set_flow_mark
        - dp_packet_set_rss_hash
        - dp_packet_set_tso_segsz
        - dp_packet_size
        - ovs_ignore
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:186,27'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:190,5'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.c:193,53'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:192,18'
          Dst:             dp_packet_clone_data_with_headroom
        - Src:             'lib/dp-packet.c:201,41'
          Dst:             dp_packet_get_tso_segsz
        - Src:             'lib/dp-packet.c:201,5'
          Dst:             dp_packet_set_tso_segsz
        - Src:             'lib/dp-packet.c:203,9'
          Dst:             dp_packet_rss_valid
        - Src:             'lib/dp-packet.c:204,44'
          Dst:             dp_packet_get_rss_hash
        - Src:             'lib/dp-packet.c:204,9'
          Dst:             dp_packet_set_rss_hash
        - Src:             'lib/dp-packet.c:206,9'
          Dst:             dp_packet_has_flow_mark
        - Src:             'lib/dp-packet.c:207,9'
          Dst:             dp_packet_set_flow_mark
    - functionName:    dp_packet_clone
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_clone_with_headroom
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:176,5'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet.c:177,12'
          Dst:             dp_packet_clone_with_headroom
    - functionName:    free_afxdp_buf
      functionSourceFile: '/src/openvswitch/lib/netdev-afxdp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_dpdk_buf
      functionSourceFile: '/src/openvswitch/lib/netdev-dpdk.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_uninit
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          67
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - dp_packet_base
        - free_afxdp_buf
        - free_dpdk_buf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:137,18'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:139,13'
          Dst:             free_dpdk_buf
        - Src:             'lib/dp-packet.c:141,13'
          Dst:             free_afxdp_buf
    - functionName:    dp_packet_init_dpdk
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_use_const
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_set_size
        - dp_packet_use__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:111,5'
          Dst:             dp_packet_use__
        - Src:             'lib/dp-packet.c:112,5'
          Dst:             dp_packet_set_size
    - functionName:    dp_packet_use_stub
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_use__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:98,5'
          Dst:             dp_packet_use__
    - functionName:    init_this_module_dp_packet_gso
      functionSourceFile: '/src/openvswitch/lib/dp-packet-gso.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet-gso.c:26,1'
          Dst:             vlog_insert_module
    - functionName:    put_16aligned_be32
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_16aligned_be32
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_checksum_set_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1310
      functionLinenumberEnd: 1312
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_checksum_set_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1382
      functionLinenumberEnd: 1384
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_ip_checksum_set_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1141
      functionLinenumberEnd: 1143
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l3_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l2_pad_size
        - dp_packet_l3
        - dp_packet_tail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:493,25'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:493,59'
          Dst:             dp_packet_l3
        - Src:             'lib/dp-packet.h:494,11'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_tail
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_size
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:327,21'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:327,41'
          Dst:             dp_packet_size
    - functionName:    dp_packet_l3
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:463,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_l2_pad_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 845
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __packet_data
        - dp_packet_base
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:846,12'
          Dst:             __packet_data
        - Src:             'lib/dp-packet.h:847,23'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:847,43'
          Dst:             __packet_data
    - functionName:    __packet_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_base
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 751
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 762
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_ip_checksum_set_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1183
      functionLinenumberEnd: 1185
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l3_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_inner_l3
        - dp_packet_l2_pad_size
        - dp_packet_tail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:521,29'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:522,29'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/dp-packet.h:523,14'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_inner_l3
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:513,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_flow_mark_ptr
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_rss_ptr
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_headroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_base
        - dp_packet_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:345,21'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:345,50'
          Dst:             dp_packet_base
    - functionName:    dp_packet_is_eth
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:398,30'
          Dst:             htonl
    - functionName:    free_afxdp_buf
      functionSourceFile: '/src/openvswitch/lib/netdev-afxdp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_dpdk_buf
      functionSourceFile: '/src/openvswitch/lib/netdev-dpdk.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_delete
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_uninit
        - free_afxdp_buf
        - free_dpdk_buf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:274,13'
          Dst:             free_dpdk_buf
        - Src:             'lib/dp-packet.h:279,13'
          Dst:             free_afxdp_buf
        - Src:             'lib/dp-packet.h:283,9'
          Dst:             dp_packet_uninit
    - functionName:    dp_packet_batch_add__
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 878
      functionLinenumberEnd: 884
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_delete
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:882,9'
          Dst:             dp_packet_delete
    - functionName:    dp_packet_batch_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 895
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_set_tso_segsz
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 804
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_set_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_gso_update_segment
      functionSourceFile: '/src/openvswitch/lib/dp-packet-gso.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - short
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          322
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - csum
        - dp_packet_get_tso_segsz
        - dp_packet_inner_ip_checksum_set_partial
        - dp_packet_inner_l3
        - dp_packet_inner_l3_size
        - dp_packet_inner_l4
        - dp_packet_inner_l4_checksum_set_partial
        - dp_packet_ip_checksum_set_partial
        - dp_packet_l3
        - dp_packet_l3_size
        - dp_packet_l4
        - dp_packet_l4_checksum_set_partial
        - dp_packet_l4_size
        - get_16aligned_be32
        - htonl
        - htons
        - ntohl
        - ntohs
        - put_16aligned_be32
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet-gso.c:110,19'
          Dst:             dp_packet_l4
        - Src:             'lib/dp-packet-gso.c:111,34'
          Dst:             dp_packet_l4_size
        - Src:             'lib/dp-packet-gso.c:111,28'
          Dst:             htons
        - Src:             'lib/dp-packet-gso.c:116,18'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/dp-packet-gso.c:118,40'
          Dst:             dp_packet_inner_l3_size
        - Src:             'lib/dp-packet-gso.c:118,34'
          Dst:             htons
        - Src:             'lib/dp-packet-gso.c:119,35'
          Dst:             ntohs
        - Src:             'lib/dp-packet-gso.c:119,29'
          Dst:             htons
        - Src:             'lib/dp-packet-gso.c:121,13'
          Dst:             dp_packet_inner_ip_checksum_set_partial
        - Src:             'lib/dp-packet-gso.c:125,23'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/dp-packet-gso.c:127,25'
          Dst:             dp_packet_inner_l3_size
        - Src:             'lib/dp-packet-gso.c:127,19'
          Dst:             htons
        - Src:             'lib/dp-packet-gso.c:132,14'
          Dst:             dp_packet_l3
        - Src:             'lib/dp-packet-gso.c:134,36'
          Dst:             dp_packet_l3_size
        - Src:             'lib/dp-packet-gso.c:134,30'
          Dst:             htons
        - Src:             'lib/dp-packet-gso.c:135,31'
          Dst:             ntohs
        - Src:             'lib/dp-packet-gso.c:135,25'
          Dst:             htons
        - Src:             'lib/dp-packet-gso.c:137,9'
          Dst:             dp_packet_ip_checksum_set_partial
        - Src:             'lib/dp-packet-gso.c:139,49'
          Dst:             dp_packet_l3
        - Src:             'lib/dp-packet-gso.c:142,21'
          Dst:             dp_packet_l3_size
        - Src:             'lib/dp-packet-gso.c:142,15'
          Dst:             htons
        - Src:             'lib/dp-packet-gso.c:147,19'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/dp-packet-gso.c:148,9'
          Dst:             dp_packet_inner_l4_checksum_set_partial
        - Src:             'lib/dp-packet-gso.c:150,19'
          Dst:             dp_packet_l4
        - Src:             'lib/dp-packet-gso.c:151,9'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/dp-packet-gso.c:153,21'
          Dst:             get_16aligned_be32
        - Src:             'lib/dp-packet-gso.c:153,15'
          Dst:             ntohl
        - Src:             'lib/dp-packet-gso.c:155,43'
          Dst:             htonl
        - Src:             'lib/dp-packet-gso.c:155,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/dp-packet-gso.c:157,35'
          Dst:             dp_packet_get_tso_segsz
        - Src:             'lib/dp-packet-gso.c:158,31'
          Dst:             ntohs
        - Src:             'lib/dp-packet-gso.c:160,30'
          Dst:             ntohs
        - Src:             'lib/dp-packet-gso.c:162,28'
          Dst:             htons
        - Src:             'lib/dp-packet-gso.c:168,16'
          Dst:             dp_packet_l4
        - Src:             'lib/dp-packet-gso.c:170,27'
          Dst:             htons
        - Src:             'lib/dp-packet-gso.c:173,36'
          Dst:             dp_packet_l4_size
        - Src:             'lib/dp-packet-gso.c:173,25'
          Dst:             csum
    - functionName:    dp_packet_l4
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:477,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_l4_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l2_pad_size
        - dp_packet_l4
        - dp_packet_tail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:504,25'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:504,59'
          Dst:             dp_packet_l4
        - Src:             'lib/dp-packet.h:505,11'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_inner_l4
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:531,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_get_tso_segsz
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_gso_seg_new
      functionSourceFile: '/src/openvswitch/lib/dp-packet-gso.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          104
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_flow_mark_ptr
        - dp_packet_headroom
        - dp_packet_new_with_headroom
        - dp_packet_put
        - dp_packet_rss_ptr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet-gso.c:40,57'
          Dst:             dp_packet_headroom
        - Src:             'lib/dp-packet-gso.c:39,29'
          Dst:             dp_packet_new_with_headroom
        - Src:             'lib/dp-packet-gso.c:43,24'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet-gso.c:43,5'
          Dst:             dp_packet_put
        - Src:             'lib/dp-packet-gso.c:44,33'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet-gso.c:44,5'
          Dst:             dp_packet_put
        - Src:             'lib/dp-packet-gso.c:55,32'
          Dst:             dp_packet_rss_ptr
        - Src:             'lib/dp-packet-gso.c:55,6'
          Dst:             dp_packet_rss_ptr
        - Src:             'lib/dp-packet-gso.c:57,38'
          Dst:             dp_packet_flow_mark_ptr
        - Src:             'lib/dp-packet-gso.c:57,6'
          Dst:             dp_packet_flow_mark_ptr
    - functionName:    dp_packet_eth
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_data
        - dp_packet_is_eth
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:406,13'
          Dst:             dp_packet_is_eth
        - Src:             'lib/dp-packet.h:407,15'
          Dst:             dp_packet_data
    - functionName:    dp_packet_batch_add
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 889
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_batch_add__
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:890,5'
          Dst:             dp_packet_batch_add__
    - functionName:    dp_packet_batch_is_full
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 931
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_batch_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:931,12'
          Dst:             dp_packet_batch_size
    - functionName:    dp_packet_tunnel_gre
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1092
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_get_tcp_payload
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 547
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_l4
        - dp_packet_l4_size
        - ntohs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:548,22'
          Dst:             dp_packet_l4_size
        - Src:             'lib/dp-packet.h:551,34'
          Dst:             dp_packet_l4
        - Src:             'lib/dp-packet.h:552,23'
          Dst:             ntohs
    - functionName:    dp_packet_inner_l4_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_inner_l4
        - dp_packet_l2_pad_size
        - dp_packet_tail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:539,29'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:540,29'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/dp-packet.h:541,14'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_get_inner_tcp_payload
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_inner_l4
        - dp_packet_inner_l4_size
        - ntohs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:564,22'
          Dst:             dp_packet_inner_l4_size
        - Src:             'lib/dp-packet.h:567,34'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/dp-packet.h:568,23'
          Dst:             ntohs
    - functionName:    dp_packet_gso_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet-gso.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_gso__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet-gso.c:288,5'
          Dst:             dp_packet_gso__
    - functionName:    dp_packet_gso__
      functionSourceFile: '/src/openvswitch/lib/dp-packet-gso.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          307
      EdgeCount:       52
      CyclomaticComplexity: 14
      functionsReached:
        - dp_packet_batch_add
        - dp_packet_batch_is_full
        - dp_packet_eth
        - dp_packet_get_inner_tcp_payload
        - dp_packet_get_inner_tcp_payload_length
        - dp_packet_get_tcp_payload
        - dp_packet_get_tcp_payload_length
        - dp_packet_get_tso_segsz
        - dp_packet_gso_nr_segs
        - dp_packet_gso_partial_nr_segs
        - dp_packet_gso_seg_new
        - dp_packet_gso_update_segment
        - dp_packet_set_size
        - dp_packet_set_tso_segsz
        - dp_packet_tunnel
        - dp_packet_tunnel_geneve
        - dp_packet_tunnel_gre
        - dp_packet_tunnel_vxlan
        - ovs_ignore
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet-gso.c:191,17'
          Dst:             dp_packet_get_tso_segsz
        - Src:             'lib/dp-packet-gso.c:192,5'
          Dst:             ovs_ignore
        - Src:             'lib/dp-packet-gso.c:193,14'
          Dst:             dp_packet_gso_nr_segs
        - Src:             'lib/dp-packet-gso.c:194,15'
          Dst:             dp_packet_tunnel_vxlan
        - Src:             'lib/dp-packet-gso.c:194,44'
          Dst:             dp_packet_tunnel_geneve
        - Src:             'lib/dp-packet-gso.c:195,15'
          Dst:             dp_packet_tunnel_gre
        - Src:             'lib/dp-packet-gso.c:199,9'
          Dst:             dp_packet_batch_is_full
        - Src:             'lib/dp-packet-gso.c:202,5'
          Dst:             dp_packet_batch_add
        - Src:             'lib/dp-packet-gso.c:208,9'
          Dst:             dp_packet_tunnel
        - Src:             'lib/dp-packet-gso.c:209,28'
          Dst:             dp_packet_get_inner_tcp_payload
        - Src:             'lib/dp-packet-gso.c:210,30'
          Dst:             dp_packet_eth
        - Src:             'lib/dp-packet-gso.c:211,20'
          Dst:             dp_packet_get_inner_tcp_payload_length
        - Src:             'lib/dp-packet-gso.c:213,28'
          Dst:             dp_packet_get_tcp_payload
        - Src:             'lib/dp-packet-gso.c:214,30'
          Dst:             dp_packet_eth
        - Src:             'lib/dp-packet-gso.c:215,20'
          Dst:             dp_packet_get_tcp_payload_length
        - Src:             'lib/dp-packet-gso.c:219,13'
          Dst:             dp_packet_gso_partial_nr_segs
        - Src:             'lib/dp-packet-gso.c:226,15'
          Dst:             dp_packet_gso_seg_new
        - Src:             'lib/dp-packet-gso.c:228,9'
          Dst:             dp_packet_gso_update_segment
        - Src:             'lib/dp-packet-gso.c:231,13'
          Dst:             dp_packet_batch_is_full
        - Src:             'lib/dp-packet-gso.c:234,9'
          Dst:             dp_packet_batch_add
        - Src:             'lib/dp-packet-gso.c:239,11'
          Dst:             dp_packet_gso_seg_new
        - Src:             'lib/dp-packet-gso.c:241,5'
          Dst:             dp_packet_gso_update_segment
        - Src:             'lib/dp-packet-gso.c:244,9'
          Dst:             dp_packet_batch_is_full
        - Src:             'lib/dp-packet-gso.c:247,5'
          Dst:             dp_packet_batch_add
        - Src:             'lib/dp-packet-gso.c:251,13'
          Dst:             dp_packet_gso_partial_nr_segs
        - Src:             'lib/dp-packet-gso.c:252,13'
          Dst:             dp_packet_set_size
        - Src:             'lib/dp-packet-gso.c:255,17'
          Dst:             dp_packet_set_tso_segsz
        - Src:             'lib/dp-packet-gso.c:260,9'
          Dst:             dp_packet_set_size
        - Src:             'lib/dp-packet-gso.c:261,9'
          Dst:             dp_packet_set_tso_segsz
        - Src:             'lib/dp-packet-gso.c:263,5'
          Dst:             dp_packet_gso_update_segment
    - functionName:    dp_packet_gso_nr_segs
      functionSourceFile: '/src/openvswitch/lib/dp-packet-gso.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_get_inner_tcp_payload_length
        - dp_packet_get_tcp_payload_length
        - dp_packet_get_tso_segsz
        - dp_packet_tunnel
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet-gso.c:68,22'
          Dst:             dp_packet_get_tso_segsz
        - Src:             'lib/dp-packet-gso.c:71,9'
          Dst:             dp_packet_tunnel
        - Src:             'lib/dp-packet-gso.c:72,23'
          Dst:             dp_packet_get_inner_tcp_payload_length
        - Src:             'lib/dp-packet-gso.c:74,23'
          Dst:             dp_packet_get_tcp_payload_length
    - functionName:    dp_packet_tunnel_vxlan
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1076
      functionLinenumberEnd: 1078
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_tunnel_geneve
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1062
      functionLinenumberEnd: 1064
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_tunnel
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1103
      functionLinenumberEnd: 1104
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_get_inner_tcp_payload_length
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 599
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_get_inner_tcp_payload
        - dp_packet_l2_pad_size
        - dp_packet_tail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:592,31'
          Dst:             dp_packet_get_inner_tcp_payload
        - Src:             'lib/dp-packet.h:594,26'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:594,48'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_get_tcp_payload_length
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 587
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_get_tcp_payload
        - dp_packet_l2_pad_size
        - dp_packet_tail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:580,31'
          Dst:             dp_packet_get_tcp_payload
        - Src:             'lib/dp-packet.h:582,26'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:582,48'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_gso_partial_nr_segs
      functionSourceFile: '/src/openvswitch/lib/dp-packet-gso.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          62
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - dp_packet_get_inner_tcp_payload_length
        - dp_packet_get_tso_segsz
        - dp_packet_gso_nr_segs
        - dp_packet_l4_checksum_partial
        - dp_packet_tunnel_geneve
        - dp_packet_tunnel_vxlan
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet-gso.c:87,10'
          Dst:             dp_packet_tunnel_geneve
        - Src:             'lib/dp-packet-gso.c:87,40'
          Dst:             dp_packet_tunnel_vxlan
        - Src:             'lib/dp-packet-gso.c:88,12'
          Dst:             dp_packet_l4_checksum_partial
        - Src:             'lib/dp-packet-gso.c:89,12'
          Dst:             dp_packet_get_inner_tcp_payload_length
        - Src:             'lib/dp-packet-gso.c:90,15'
          Dst:             dp_packet_gso_nr_segs
        - Src:             'lib/dp-packet-gso.c:90,42'
          Dst:             dp_packet_get_tso_segsz
    - functionName:    dp_packet_l4_checksum_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1301
      functionLinenumberEnd: 1303
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_gso
      functionSourceFile: '/src/openvswitch/lib/dp-packet-gso.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_gso__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet-gso.c:276,5'
          Dst:             dp_packet_gso__
    - functionName:    ovs_list_moved
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_list_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:231,9'
          Dst:             ovs_list_init
    - functionName:    ovs_list_init
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_move
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_moved
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:244,5'
          Dst:             ovs_list_moved
    - functionName:    guarded_list_pop_all
      functionSourceFile: '/src/openvswitch/lib/guarded-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_init
        - ovs_list_move
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/guarded-list.c:88,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/guarded-list.c:89,5'
          Dst:             ovs_list_move
        - Src:             'lib/guarded-list.c:92,5'
          Dst:             ovs_list_init
        - Src:             'lib/guarded-list.c:94,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_list_pop_front
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:264,5'
          Dst:             ovs_list_remove
    - functionName:    guarded_list_pop_front
      functionSourceFile: '/src/openvswitch/lib/guarded-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_list_pop_front
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/guarded-list.c:73,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/guarded-list.c:75,16'
          Dst:             ovs_list_pop_front
        - Src:             'lib/guarded-list.c:78,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    guarded_list_push_back
      functionSourceFile: '/src/openvswitch/lib/guarded-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_list_push_back
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/guarded-list.c:58,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/guarded-list.c:60,9'
          Dst:             ovs_list_push_back
        - Src:             'lib/guarded-list.c:63,5'
          Dst:             ovs_mutex_unlock
    - functionName:    guarded_list_is_empty
      functionSourceFile: '/src/openvswitch/lib/guarded-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/guarded-list.c:40,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/guarded-list.c:42,5'
          Dst:             ovs_mutex_unlock
    - functionName:    guarded_list_destroy
      functionSourceFile: '/src/openvswitch/lib/guarded-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/guarded-list.c:32,5'
          Dst:             ovs_mutex_destroy
    - functionName:    guarded_list_init
      functionSourceFile: '/src/openvswitch/lib/guarded-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_init
        - ovs_mutex_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/guarded-list.c:24,5'
          Dst:             ovs_mutex_init
        - Src:             'lib/guarded-list.c:25,5'
          Dst:             ovs_list_init
    - functionName:    init_this_module_lockfile
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:35,1'
          Dst:             vlog_insert_module
    - functionName:    lockfile_lock_init_coverage
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:37,1'
          Dst:             coverage_counter_register
    - functionName:    lockfile_error_init_coverage
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:38,1'
          Dst:             coverage_counter_register
    - functionName:    lockfile_unlock_init_coverage
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:39,1'
          Dst:             coverage_counter_register
    - functionName:    lockfile_unlock_count
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_unlock_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:39,1'
          Dst:             counter_lockfile_unlock_get
    - functionName:    counter_lockfile_unlock_get
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_unlock_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:39,1'
          Dst:             counter_lockfile_unlock_get_unsafe
    - functionName:    counter_lockfile_unlock_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lockfile_error_count
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_error_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:38,1'
          Dst:             counter_lockfile_error_get
    - functionName:    counter_lockfile_error_get
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_error_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:38,1'
          Dst:             counter_lockfile_error_get_unsafe
    - functionName:    counter_lockfile_error_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lockfile_lock_count
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_lock_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:37,1'
          Dst:             counter_lockfile_lock_get
    - functionName:    counter_lockfile_lock_get
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_lock_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:37,1'
          Dst:             counter_lockfile_lock_get_unsafe
    - functionName:    counter_lockfile_lock_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    hmap_next_with_hash__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:396,12'
          Dst:             hmap_next_with_hash__
    - functionName:    lockfile_hash
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_bytes
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:179,23'
          Dst:             hash_bytes
        - Src:             'lib/lockfile.c:178,12'
          Dst:             hash_bytes
    - functionName:    hmap_first_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:360,12'
          Dst:             hmap_next_with_hash__
    - functionName:    lockfile_register
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          84
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_insert_at
        - lockfile_find
        - lockfile_hash
        - lockfile_unhash
        - vlog
        - xmalloc
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:212,16'
          Dst:             lockfile_find
        - Src:             'lib/lockfile.c:214,9'
          Dst:             vlog
        - Src:             'lib/lockfile.c:215,9'
          Dst:             lockfile_unhash
        - Src:             'lib/lockfile.c:218,16'
          Dst:             xmalloc
        - Src:             'lib/lockfile.c:219,22'
          Dst:             xstrdup
        - Src:             'lib/lockfile.c:223,5'
          Dst:             lockfile_hash
        - Src:             'lib/lockfile.c:223,5'
          Dst:             hmap_insert_at
    - functionName:    lockfile_find
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          86
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hmap_first_with_hash
        - hmap_next_with_hash
        - lockfile_hash
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:187,5'
          Dst:             lockfile_hash
        - Src:             'lib/lockfile.c:187,5'
          Dst:             hmap_first_with_hash
        - Src:             'lib/lockfile.c:187,5'
          Dst:             hmap_next_with_hash
    - functionName:    lockfile_unhash
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - close
        - hmap_remove
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:200,9'
          Dst:             close
        - Src:             'lib/lockfile.c:202,9'
          Dst:             hmap_remove
    - functionName:    hmap_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          48
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    lockfile_postfork
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         18
      ICount:          86
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - hmap_first
        - hmap_next
        - lockfile_unhash
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:165,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/lockfile.c:166,5'
          Dst:             hmap_first
        - Src:             'lib/lockfile.c:168,13'
          Dst:             vlog
        - Src:             'lib/lockfile.c:169,13'
          Dst:             lockfile_unhash
        - Src:             'lib/lockfile.c:166,5'
          Dst:             hmap_next
        - Src:             'lib/lockfile.c:172,5'
          Dst:             ovs_mutex_unlock
    - functionName:    lockfile_unlock_add
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_unlock_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:39,1'
          Dst:             counter_lockfile_unlock_get
    - functionName:    lockfile_do_unlock
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lockfile_unhash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:231,5'
          Dst:             lockfile_unhash
    - functionName:    lockfile_unlock
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lockfile_do_unlock
        - lockfile_unlock_add
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:147,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/lockfile.c:148,9'
          Dst:             lockfile_do_unlock
        - Src:             'lib/lockfile.c:149,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/lockfile.c:151,9'
          Dst:             lockfile_unlock_add
    - functionName:    lockfile_error_add
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_error_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:38,1'
          Dst:             counter_lockfile_error_get
    - functionName:    lockfile_try_lock
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          240
      EdgeCount:       53
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - close
        - fcntl
        - fstat
        - getpid
        - lockfile_find
        - lockfile_register
        - open
        - ovs_strerror
        - stat
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:247,10'
          Dst:             stat
        - Src:             'lib/lockfile.c:248,13'
          Dst:             lockfile_find
        - Src:             'lib/lockfile.c:249,21'
          Dst:             getpid
        - Src:             'lib/lockfile.c:252,16'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:253,9'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:253,9'
          Dst:             ovs_strerror
        - Src:             'lib/lockfile.c:253,9'
          Dst:             vlog
        - Src:             'lib/lockfile.c:255,16'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:259,10'
          Dst:             open
        - Src:             'lib/lockfile.c:261,9'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:261,9'
          Dst:             ovs_strerror
        - Src:             'lib/lockfile.c:261,9'
          Dst:             vlog
        - Src:             'lib/lockfile.c:263,16'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:267,9'
          Dst:             fstat
        - Src:             'lib/lockfile.c:268,9'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:268,9'
          Dst:             ovs_strerror
        - Src:             'lib/lockfile.c:268,9'
          Dst:             vlog
        - Src:             'lib/lockfile.c:270,9'
          Dst:             close
        - Src:             'lib/lockfile.c:271,16'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:281,13'
          Dst:             fcntl
        - Src:             'lib/lockfile.c:281,44'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:284,22'
          Dst:             lockfile_register
        - Src:             'lib/lockfile.c:286,14'
          Dst:             fcntl
        - Src:             'lib/lockfile.c:289,9'
          Dst:             close
    - functionName:    lockfile_lock_add
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_lock_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:37,1'
          Dst:             counter_lockfile_lock_get
    - functionName:    lockfile_lock
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          140
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - getpid
        - lockfile_error_add
        - lockfile_lock_add
        - lockfile_name
        - lockfile_try_lock
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strerror
        - vlog
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:112,5'
          Dst:             lockfile_lock_add
        - Src:             'lib/lockfile.c:114,17'
          Dst:             lockfile_name
        - Src:             'lib/lockfile.c:116,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/lockfile.c:117,13'
          Dst:             lockfile_try_lock
        - Src:             'lib/lockfile.c:118,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/lockfile.c:121,9'
          Dst:             lockfile_error_add
        - Src:             'lib/lockfile.c:125,20'
          Dst:             getpid
        - Src:             'lib/lockfile.c:126,13'
          Dst:             vlog
        - Src:             'lib/lockfile.c:129,13'
          Dst:             vlog
        - Src:             'lib/lockfile.c:132,13'
          Dst:             ovs_strerror
        - Src:             'lib/lockfile.c:132,13'
          Dst:             vlog
    - functionName:    lockfile_name
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - follow_symlinks
        - strrchr
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:82,16'
          Dst:             follow_symlinks
        - Src:             'lib/lockfile.c:83,13'
          Dst:             strrchr
        - Src:             'lib/lockfile.c:86,19'
          Dst:             xasprintf
        - Src:             'lib/lockfile.c:88,19'
          Dst:             xasprintf
    - functionName:    init_this_module_process
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:40,1'
          Dst:             vlog_insert_module
    - functionName:    process_start_init_coverage
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:42,1'
          Dst:             coverage_counter_register
    - functionName:    process_start_count
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_process_start_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:42,1'
          Dst:             counter_process_start_get
    - functionName:    counter_process_start_get
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_process_start_get_unsafe
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:42,1'
          Dst:             counter_process_start_get_unsafe
    - functionName:    counter_process_start_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ticks_to_ms
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:376,5'
          Dst:             ovs_ignore
    - functionName:    rlim_is_finite
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    process_search_path
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          97
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - getenv
        - stat
        - strchr
        - strtok_r
        - xasprintf
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:588,9'
          Dst:             strchr
        - Src:             'lib/process.c:588,31'
          Dst:             getenv
        - Src:             'lib/process.c:589,16'
          Dst:             stat
        - Src:             'lib/process.c:589,38'
          Dst:             xstrdup
        - Src:             'lib/process.c:592,20'
          Dst:             getenv
        - Src:             'lib/process.c:592,12'
          Dst:             xstrdup
        - Src:             'lib/process.c:593,16'
          Dst:             strtok_r
        - Src:             'lib/process.c:595,22'
          Dst:             xasprintf
        - Src:             'lib/process.c:596,13'
          Dst:             stat
        - Src:             'lib/process.c:594,16'
          Dst:             strtok_r
    - functionName:    process_wait
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - poll_fd_wait_at
        - poll_immediate_wake_at
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:575,9'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/process.c:577,9'
          Dst:             poll_fd_wait_at
    - functionName:    ovs_list_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_run
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         36
      ICount:          165
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - ovs_list_is_empty
        - ovs_strerror
        - read
        - vlog
        - waitpid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:547,10'
          Dst:             ovs_list_is_empty
        - Src:             'lib/process.c:547,47'
          Dst:             read
        - Src:             'lib/process.c:554,30'
          Dst:             waitpid
        - Src:             'lib/process.c:555,42'
          Dst:             __errno_location
        - Src:             'lib/process.c:560,21'
          Dst:             __errno_location
        - Src:             'lib/process.c:560,21'
          Dst:             ovs_strerror
        - Src:             'lib/process.c:560,21'
          Dst:             vlog
    - functionName:    process_status_msg
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ds_cstr
        - ds_put_cstr
        - ds_put_format
        - signal_name
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:521,9'
          Dst:             ds_put_format
        - Src:             'lib/process.c:526,23'
          Dst:             signal_name
        - Src:             'lib/process.c:525,9'
          Dst:             ds_put_format
        - Src:             'lib/process.c:531,23'
          Dst:             signal_name
        - Src:             'lib/process.c:530,9'
          Dst:             ds_put_format
        - Src:             'lib/process.c:533,9'
          Dst:             ds_put_format
        - Src:             'lib/process.c:536,9'
          Dst:             ds_put_cstr
        - Src:             'lib/process.c:538,12'
          Dst:             ds_cstr
    - functionName:    get_raw_process_info
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          136
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - __isoc99_fscanf
        - fclose
        - fopen
        - get_boot_time
        - get_page_size
        - ovs_ignore
        - ovs_strerror
        - ovsthread_once_done
        - ovsthread_once_start
        - sprintf
        - ticks_to_ms
        - time_wall_msec
        - vlog
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:400,5'
          Dst:             ovs_ignore
        - Src:             'lib/process.c:402,5'
          Dst:             sprintf
        - Src:             'lib/process.c:403,14'
          Dst:             fopen
        - Src:             'lib/process.c:405,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/process.c:405,9'
          Dst:             __errno_location
        - Src:             'lib/process.c:405,9'
          Dst:             ovs_strerror
        - Src:             'lib/process.c:405,9'
          Dst:             vlog
        - Src:             'lib/process.c:405,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/process.c:410,9'
          Dst:             __isoc99_fscanf
        - Src:             'lib/process.c:461,5'
          Dst:             fclose
        - Src:             'lib/process.c:463,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/process.c:463,9'
          Dst:             vlog
        - Src:             'lib/process.c:463,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/process.c:467,18'
          Dst:             get_boot_time
        - Src:             'lib/process.c:467,36'
          Dst:             ticks_to_ms
        - Src:             'lib/process.c:470,23'
          Dst:             get_page_size
        - Src:             'lib/process.c:471,19'
          Dst:             time_wall_msec
        - Src:             'lib/process.c:472,20'
          Dst:             ticks_to_ms
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    __isoc99_fscanf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_process_info
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          115
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - count_crashes
        - get_raw_process_info
        - ovs_ignore
        - ovs_strlcpy
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:483,5'
          Dst:             ovs_ignore
        - Src:             'lib/process.c:484,10'
          Dst:             get_raw_process_info
        - Src:             'lib/process.c:488,5'
          Dst:             ovs_strlcpy
        - Src:             'lib/process.c:500,14'
          Dst:             get_raw_process_info
        - Src:             'lib/process.c:503,14'
          Dst:             strcmp
        - Src:             'lib/process.c:505,30'
          Dst:             count_crashes
    - functionName:    count_crashes
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          121
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - fclose
        - feof
        - fgets
        - fopen
        - ovs_ignore
        - ovs_scan
        - ovs_strerror
        - ovsthread_once_done
        - ovsthread_once_start
        - sprintf
        - strchr
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:344,5'
          Dst:             ovs_ignore
        - Src:             'lib/process.c:346,5'
          Dst:             sprintf
        - Src:             'lib/process.c:347,14'
          Dst:             fopen
        - Src:             'lib/process.c:349,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/process.c:349,9'
          Dst:             __errno_location
        - Src:             'lib/process.c:349,9'
          Dst:             ovs_strerror
        - Src:             'lib/process.c:349,9'
          Dst:             vlog
        - Src:             'lib/process.c:349,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/process.c:353,10'
          Dst:             fgets
        - Src:             'lib/process.c:354,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/process.c:354,9'
          Dst:             feof
        - Src:             'lib/process.c:354,9'
          Dst:             __errno_location
        - Src:             'lib/process.c:354,9'
          Dst:             ovs_strerror
        - Src:             'lib/process.c:354,9'
          Dst:             vlog
        - Src:             'lib/process.c:354,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/process.c:359,13'
          Dst:             strchr
        - Src:             'lib/process.c:362,13'
          Dst:             ovs_scan
        - Src:             'lib/process.c:368,5'
          Dst:             fclose
    - functionName:    process_status
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:331,5'
          Dst:             ovs_ignore
    - functionName:    process_exited
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_name
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_pid
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_kill
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - kill
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:299,16'
          Dst:             kill
        - Src:             'lib/process.c:300,15'
          Dst:             __errno_location
    - functionName:    kill
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_destroy
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_list_remove
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:287,9'
          Dst:             ovs_list_remove
    - functionName:    get_max_fds
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         17
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - getrlimit
        - rlim_is_finite
        - vlog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:215,14'
          Dst:             getrlimit
        - Src:             'lib/process.c:215,46'
          Dst:             rlim_is_finite
        - Src:             'lib/process.c:218,13'
          Dst:             vlog
    - functionName:    getrlimit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_register
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_list_push_back
        - strrchr
        - xstrdup
        - xzalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:174,9'
          Dst:             xzalloc
        - Src:             'lib/process.c:176,13'
          Dst:             strrchr
        - Src:             'lib/process.c:177,15'
          Dst:             xstrdup
        - Src:             'lib/process.c:180,5'
          Dst:             ovs_list_push_back
    - functionName:    process_prestart
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          95
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - process_escape_args
        - process_init
        - process_search_path
        - vlog
        - vlog_is_enabled
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:145,5'
          Dst:             process_init
        - Src:             'lib/process.c:148,9'
          Dst:             vlog_is_enabled
        - Src:             'lib/process.c:149,22'
          Dst:             process_escape_args
        - Src:             'lib/process.c:150,9'
          Dst:             vlog
        - Src:             'lib/process.c:156,14'
          Dst:             process_search_path
        - Src:             'lib/process.c:158,9'
          Dst:             vlog
    - functionName:    process_init
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - assert_single_threaded_at
        - sigemptyset
        - xpipe_nonblocking
        - xsigaction
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:93,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/process.c:100,5'
          Dst:             xpipe_nonblocking
        - Src:             'lib/process.c:105,5'
          Dst:             sigemptyset
        - Src:             'lib/process.c:107,5'
          Dst:             xsigaction
    - functionName:    process_escape_args
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          118
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - ds_cstr
        - ds_put_char
        - ds_put_cstr
        - strcspn
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:119,13'
          Dst:             ds_put_char
        - Src:             'lib/process.c:121,17'
          Dst:             strcspn
        - Src:             'lib/process.c:122,13'
          Dst:             ds_put_char
        - Src:             'lib/process.c:125,21'
          Dst:             ds_put_char
        - Src:             'lib/process.c:127,17'
          Dst:             ds_put_char
        - Src:             'lib/process.c:129,13'
          Dst:             ds_put_char
        - Src:             'lib/process.c:131,13'
          Dst:             ds_put_cstr
        - Src:             'lib/process.c:134,12'
          Dst:             ds_cstr
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    sigchld_handler
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_ignore
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:609,16'
          Dst:             write
        - Src:             'lib/process.c:609,5'
          Dst:             ovs_ignore
    - functionName:    process_start_add
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_process_start_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:42,1'
          Dst:             counter_process_start_get
    - functionName:    process_start
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          135
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - _exit
        - assert_single_threaded_at
        - close
        - execvp
        - fatal_signal_block
        - fatal_signal_fork
        - fork
        - fprintf
        - get_max_fds
        - ovs_strerror
        - process_prestart
        - process_register
        - process_start_add
        - vlog
        - xpthread_sigmask
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:245,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/process.c:248,5'
          Dst:             process_start_add
        - Src:             'lib/process.c:249,13'
          Dst:             process_prestart
        - Src:             'lib/process.c:254,5'
          Dst:             fatal_signal_block
        - Src:             'lib/process.c:255,11'
          Dst:             fork
        - Src:             'lib/process.c:257,9'
          Dst:             __errno_location
        - Src:             'lib/process.c:257,9'
          Dst:             ovs_strerror
        - Src:             'lib/process.c:257,9'
          Dst:             vlog
        - Src:             'lib/process.c:258,17'
          Dst:             __errno_location
        - Src:             'lib/process.c:261,15'
          Dst:             process_register
        - Src:             'lib/process.c:265,22'
          Dst:             get_max_fds
        - Src:             'lib/process.c:268,9'
          Dst:             fatal_signal_fork
        - Src:             'lib/process.c:270,13'
          Dst:             close
        - Src:             'lib/process.c:272,9'
          Dst:             xpthread_sigmask
        - Src:             'lib/process.c:273,9'
          Dst:             execvp
        - Src:             'lib/process.c:275,39'
          Dst:             __errno_location
        - Src:             'lib/process.c:275,26'
          Dst:             ovs_strerror
        - Src:             'lib/process.c:274,9'
          Dst:             fprintf
        - Src:             'lib/process.c:276,9'
          Dst:             _exit
        - Src:             'lib/process.c:278,5'
          Dst:             xpthread_sigmask
    - functionName:    execvp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _exit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
...
